通过数组实现点名---------对数组进行增删操作
程序员文章站
2024-03-02 16:04:04
...
通过数组实现随机点名
Student类定义数组,通过getStudents()、setStudents(String[] students)方法将变动之后的数组进行修改
StudentUtil工具类,实现了对数组的添加、删除、和遍历
SuiJiDianMing类,主要业务实现
Student类
public class Student {
private String[] students = { "学生1", "学生2", "学生3", "学生4", "学生5", "学生6" };
public String[] getStudents() {
return students;
}
public void setStudents(String[] students) {
this.students = students;
}
}
StudentUtil类
public class StudentUtil {
/**
*
* @param strings 需要遍历的数组
*/
public static void println(String[] strings) {
for (int i = 0; i < strings.length; i++) {
System.out.print(strings[i] + "\t");
}
System.out.println();
}
/**
* @param studens 需要在那个数组里面添加数据
* @param name 添加学生的姓名
* @return 将学生姓名添加到新的数组里面并返回该数组
*/
public static String[] addStudent(String[] studens, String name) {
// 将之前数组的数据赋值到新的数组里面
String[] strings = new String[studens.length + 1];
for (int i = 0; i < studens.length; i++) {
strings[i] = studens[i];
}
// 将添加的学生姓名加入到新数组里面
strings[strings.length - 1] = name;
return strings;
}
/**
* @param students 传入需要删除的数组
* @param name 需要删除的名字
* @return 如果名字不存在返回students,
*/
public static String[] dellStudent(String[] students, String name) {
boolean isok = false;
int temp = -1;
String[] string = new String[students.length - 1];
for (int i = 0; i < students.length; i++) {
if (students[i].equals(name)) {
isok = true;
temp = i;
break;
}
}
if (!isok) {
return students;
}
for (int i = 0; i < string.length; i++) {
if (temp > i && temp != i) {
string[i] = students[i];
} else {
string[i] = students[i + 1];
}
}
return string;
}
}
SuiJiDianMing类
import java.util.Random;
import java.util.Scanner;
public class SuiJiDianMing {
public static Scanner scanner = new Scanner(System.in);
public static boolean isOk = true;
public static void main(String[] args) throws InterruptedException {
Student student = new Student();
while (true) {
menu();
isOk = false;
System.out.print("输入你想执行的操作:");
String c = scanner.next();
switch (c) {
case "0":
System.out.println("退出系统");
System.exit(0);
break;
case "1":
addStu(student);
break;
case "2":
dellStu(student);
break;
case "3":
dianMing(student);
break;
case "4":
StudentUtil.println(student.getStudents());
break;
default:
System.out.println("输入错误,请重新输入");
continue;
}
}
}
public static void dianMing(Student student) {
System.out.println(student.getStudents()[new Random().nextInt(student.getStudents().length)]);
}
public static void dellStu(Student student) {
System.out.println("请输入需要删除学生的姓名:");
String name = scanner.next();
String[] students = student.getStudents();
if (StudentUtil.dellStudent(students, name).length != students.length) {
System.out.println("删除成功");
student.setStudents(StudentUtil.dellStudent(students, name));
} else {
System.out.println("删除失败");
}
}
public static void addStu(Student student) {
System.out.println("请输入需要添加学生的姓名:");
String name = scanner.next();
String[] students = student.getStudents();
if (StudentUtil.addStudent(students, name).length != students.length) {
System.out.println("添加成功");
student.setStudents(StudentUtil.addStudent(students, name));
} else {
System.out.println("添加失败");
}
}
public static void menu() throws InterruptedException {
if (!isOk) {
Thread.sleep(1000);
}
System.out.println("******菜单*********");
System.out.println("请输入对应功能前序号");
System.out.println("0、退出程序");
System.out.println("1、增加学生");
System.out.println("2、删除学生");
System.out.println("3、随机点名");
System.out.println("4、打印全部学生");
System.out.println("****************");
}
}
运行截图如下
上一篇: Java基础之IO流(字符流)
下一篇: vue-通过数组实现文字字体变色