简单概述
本部分是学习课程多易教育-Java基础篇当中的一个简单实例,这里做了一个实例相关的笔记进行记录。
任务目标
实现一个随机点名器,这个点名器需要又如下的功能:
- 其能够添加一定量的学生
- 能够根据指定的学号查找到学生
- 能够随机对学生进行点名
任务分析与实现
学生类
如果要实现一个随机点名器的功能,那么最开始我们要定义一个学生类,用于存放学生的一些信息,这里我们只需要简单的设置学生的id以及学生的姓名两个属性,对于这个随机点名器就够用了。
package com.doit.demo03;
public class Student {
// 学生的id
String sid = new String();
// 学生的姓名
String name = new String();
}
功能分析与实现
添加一定量学生
对于添加一定量学生,我们首先要知道其是一个对象数组,然后对对象数组的元素进行赋值来添加学生。
// 添加学生功能
public static void addStudent(Student[] arr) {
Scanner sc = new Scanner(System.in);
// 进行学生的添加
for (int i = 0; i < arr.length; i++) {
Student s = new Student();
System.out.println("请输入学生的学号:");
s.sid = sc.next();
System.out.println("请输入学生的姓名:");
s.name = sc.next();
arr[i] = s;
}
}
根据指定学号查找学生
当我们添加学生后,我们可以使用指定的学号来对学生进行查找,我们通过遍历整个对象数组,将每个学生对象当中的学生id取出进行匹配,如果匹配成功就将学生对象的信息描述出来,如果没有就输出没有找到学生对象。
public static void findStudent(Student arr[]) {
System.out.println("请输入学生的学号");
Scanner sc = new Scanner(System.in);
String findSid = sc.nextLine();
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
String StudentSid = arr[i].sid;
if (Objects.equals(StudentSid, findSid)) {
System.out.println("找到了id为:" + findSid + "的学生,他的名字叫:" + arr[i].name);
flag = true;
}
}
if (!flag) {
System.out.println("没有找到id为:" + findSid + "的学生");
}
}
注意:由于这里我们定义的是一个String
类型,因此在进行两者比较时我们不能直接使用==
进行比较,而是需要使用Objects.equals()
来进行比较。
随机点名
随机点名的实现只需要我们对Random
对象做好随机范围的限制,然后当我们随机之后,就可以将随机到的对象输出。
public static void ranStudent(Student arr[]) {
Random r = new Random();
int index = r.nextInt(arr.length);
System.out.println("请学号为:" + arr[index].sid + ", 姓名为:" + arr[index].name + "的学生,来回答这个问题.");
}
遍历学生
这一部分就比较容易实现,只需要将对象数组当中所有的元素遍历出来就可以实现此功能。
public static void printStudent(Student arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.println("学号为:" + arr[i].sid + "姓名为:" + arr[i].name);
}
}
附录
整体代码
Student.class
package com.doit.demo03;
public class Student {
// 学生的id
String sid = new String();
// 学生的姓名
String name = new String();
}
Test.class
package com.doit.demo03;
import com.doit.demo03.Student;
import java.util.Objects;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("欢迎使用随机点名器");
System.out.println("请先添加学生");
// 设定学生的添加数量
System.out.println("请问要添加多少个学生");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
Student[] arr = new Student[num];
addStudent(arr);
init(arr);
}
public static void init(Student arr[]) {
while (true) {
System.out.println("请选择以下的功能使用");
System.out.println("1.查找学生 2.随机点名 3.遍历学生 0.退出点名器");
// 获取对应的功能
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 1:
findStudent(arr);
break;
case 2:
ranStudent(arr);
break;
case 3:
printStudent(arr);
break;
case 0:
System.out.println("正在退出请稍后");
return;
default:
System.out.println("没有这个数字的功能,请重新输入");
}
}
}
// 添加学生功能
public static void addStudent(Student[] arr) {
Scanner sc = new Scanner(System.in);
// 进行学生的添加
for (int i = 0; i < arr.length; i++) {
Student s = new Student();
System.out.println("请输入学生的学号:");
s.sid = sc.next();
System.out.println("请输入学生的姓名:");
s.name = sc.next();
arr[i] = s;
}
}
// 查找学生功能
public static void findStudent(Student arr[]) {
System.out.println("请输入学生的学号");
Scanner sc = new Scanner(System.in);
String findSid = sc.nextLine();
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
String StudentSid = arr[i].sid;
if (Objects.equals(StudentSid, findSid)) {
System.out.println("找到了id为:" + findSid + "的学生,他的名字叫:" + arr[i].name);
flag = true;
}
}
if (!flag) {
System.out.println("没有找到id为:" + findSid + "的学生");
}
}
public static void printStudent(Student arr[]){
for (int i = 0; i < arr.length; i++) {
System.out.println("学号为:" + arr[i].sid + "姓名为:" + arr[i].name);
}
}
// 随机点名功能
public static void ranStudent(Student arr[]) {
Random r = new Random();
int index = r.nextInt(arr.length);
System.out.println("请学号为:" + arr[index].sid + ", 姓名为:" + arr[index].name + "的学生,来回答这个问题.");
}
}
关于我
我的Github: PorterZhang2021
我的博客地址:PorterZhang