用java写一个简单的随机点名系统
该系统总共有5个功能:
注:在你输入0退出系统之前,它会在1秒延时后继续显示菜单;延时时间以及初始化的学生姓名都可以自行修改
(在文末我会将这几个功能的运行截图展示出来)
大概抽象出三个类:
MyUtils.java 工具类,主要写了对数组的增删打印等功能和生成随机数等方法。当然你也可以自己调用系统自己包里的方法。
StudentCrm.java 主类,主要是写对具体某学生的一些操作以及菜单的显示。
Student.java 学生类,学生的基本信息,也就是姓名咯。
import java.util.Random;
public class MyUtils {
//向数组中增加一个元素
public static String[] addArr(String[] arr, String num) {
String[] temp = new String[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
temp[i] = arr[i];
}
temp[arr.length] = num;
return temp;
}
//向数组中删除一个元素
public static String[] delArr(String[] arr, String str) {
String[] a = new String[arr.length-1];
for (int i = 0; i < arr.length-1; i++) {
if (arr[i].equals(str)) {
a[i] = arr[i+1];
}else{
a[i] = arr[i];
}
}
return a;
}
//获取一个num以内的随机数
public static int getRandom(int num){
Random random = new Random();
return random.nextInt(num);
}
// 打印数组
public static String printArrays(String[] arr) {
String str = "[";// 字符串开头
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
str += arr[i] + "]";
} else {
str += arr[i] + ", ";
}
}
return str;
}
}
import java.util.Scanner;
public class StudentCrm {
static boolean flag = false;//当flag为false的时候菜单显示不延时,反之延时
public static void main(String[] args) throws InterruptedException {
Student stu = new Student();
String msg = "请输入您想执行的操作:";
label:while(true){
menu();//调用菜单方法,显示菜单
Scanner scanner = new Scanner(System.in);
System.out.print(msg);
switch (scanner.nextInt()){
case 0:
System.out.println("退出系统");
break label;
case 1:
addStudent(stu);//增加学生
break;
case 2:
delStudent(stu);//删除学生
break;
case 3:
randStudent(stu);//随机打印一个学生
break ;
case 4:
printAll(stu);//打印所有的学生
break ;
default:
msg = "您输入有误,请重新输入:";
}
}
}
public static void addStudent(Student stu){
System.out.print("请输入您想增加的学生姓名:");
Scanner scanner = new Scanner(System.in);
String[] arr = MyUtils.addArr(stu.getName() ,scanner.next());
stu.setName(arr);
if(arr != null){
System.out.println("学生添加成功!");
}else {
System.out.println("学生添加失败!");
}
}
public static void delStudent(Student stu){
System.out.print("请输入您想删除的学生姓名:");
Scanner scanner = new Scanner(System.in);
String[] arr = MyUtils.delArr(stu.getName(),scanner.next());
stu.setName(arr);
if(arr != null){
System.out.println("学生删除成功!");
}else {
System.out.println("学生删除失败!");
}
}
public static void randStudent(Student stu){
int i = MyUtils.getRandom(stu.getName().length);
System.out.println("随机到的同学为:"+stu.getName()[i]);
}
public static void printAll(Student stu){
System.out.println("全部学生为:\n"+MyUtils.printArrays(stu.getName()));
}
public static void menu() throws InterruptedException {
if(flag){
Thread.sleep(1000);//当不是第一次显示菜单时,延时1秒钟
}
flag = true;
System.out.println("*********菜单**********");
System.out.println("(请输入对应功能前的序号)");
System.out.println("\t0.退出系统");
System.out.println("\t1.增加学生");
System.out.println("\t2.删除学生");
System.out.println("\t3.随机点名");
System.out.println("\t4.打印全部同学姓名");
System.out.println("***********************");
}
}
public class Student {
private String[] name = {"同学1","同学2","同学3","同学4","同学5","同学6","同学7","同学8","同学9",
"同学10","同学11","同学12","同学13","同学14"};
public String[] getName() {
return name;
}
public void setName(String[] name) {
this.name = name;
}
}
运行截图: