【Java】StudentManagementSystem
package week03;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class StudentManagementSystem {
// 原有的Student类保持不变
class Student {
private String id;
private String name;
private String className;
public Student(String id,String name ,String className){
this.id = id;
this.name = name;
this.className = className;
}
public String getId(){return id;}
public void setId(String id){this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getClassName(){return className;}
public void setClassName(String className){this.className = className;}
@Override
public String toString() {
return "学号:" + id + "\t姓名:" + name + "\t班级" + className;
}
}
// 原有的数组实现保持不变
private Student[] students;
private int count;
private static final int MAX_SIZE = 100;
public StudentManagementSystem(){
students = new Student[MAX_SIZE];
count = 0;
}
public boolean addStudent(Student student){
if(count >= MAX_SIZE){
System.out.println("系统已满,无法添加新学生!");
return false;
}
for(int i=0; i<count ; i++){
if(students[i].getId().equals(student.getId())){
System.out.println("该学号已存在,添加失败!");
return false;
}
}
students[count] = student;
count++; // 添加缺失的count++语句
return true;
}
// 新增的List实现作为额外的功能
private List<Student> studentList = new ArrayList<>();
public void addStudentToList(String id, String name, String className) {
studentList.add(new Student(id, name, className));
}
public void removeStudentFromList(String id) {
studentList.removeIf(s -> s.getId().equals(id));
}
public Student findStudentInList(String id) {
for (Student s : studentList) {
if (s.getId().equals(id)) {
return s;
}
}
return null;
}
public void listStudentsFromList() {
if (studentList.isEmpty()) {
System.out.println("暂无学生信息。");
} else {
for (Student s : studentList) {
System.out.println(s);
}
}
}
// 原有的数组系统功能
public void listStudentsFromArray() {
if (count == 0) {
System.out.println("暂无学生信息。");
} else {
for (int i = 0; i < count; i++) {
System.out.println(students[i]);
}
}
}
// 主程序,整合两种实现
public static void main(String[] args) {
StudentManagementSystem sms = new StudentManagementSystem();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("\n=== 学生管理系统 ===");
System.out.println("1. 使用数组系统添加学生");
System.out.println("2. 使用列表系统添加学生");
System.out.println("3. 从列表系统删除学生");
System.out.println("4. 从列表系统查找学生");
System.out.println("5. 显示数组系统所有学生");
System.out.println("6. 显示列表系统所有学生");
System.out.println("7. 退出");
System.out.print("请选择操作:");
int choice = scanner.nextInt();
scanner.nextLine(); // 吸收换行符
switch (choice) {
case 1:
System.out.print("输入学号:");
String id1 = scanner.nextLine();
System.out.print("输入姓名:");
String name1 = scanner.nextLine();
System.out.print("输入班级:");
String className1 = scanner.nextLine();
Student student = sms.new Student(id1, name1, className1);
if (sms.addStudent(student)) {
System.out.println("添加成功!");
}
break;
case 2:
System.out.print("输入学号:");
String id2 = scanner.nextLine();
System.out.print("输入姓名:");
String name2 = scanner.nextLine();
System.out.print("输入班级:");
String className2 = scanner.nextLine();
sms.addStudentToList(id2, name2, className2);
System.out.println("添加成功!");
break;
case 3:
System.out.print("输入要删除的学号:");
String delId = scanner.nextLine();
sms.removeStudentFromList(delId);
System.out.println("删除成功(如存在)!");
break;
case 4:
System.out.print("输入要查找的学号:");
String findId = scanner.nextLine();
Student s = sms.findStudentInList(findId);
if (s != null) {
System.out.println(s);
} else {
System.out.println("未找到该学生。");
}
break;
case 5:
System.out.println("=== 数组系统学生列表 ===");
sms.listStudentsFromArray();
break;
case 6:
System.out.println("=== 列表系统学生列表 ===");
sms.listStudentsFromList();
break;
case 7:
System.out.println("退出系统。");
scanner.close();
return;
default:
System.out.println("无效选择,请重新输入。");
}
}
}
}
打赏

网站运行不易·求打赏QAQ