【Java】StudentManagementSystem

Osinghong2周前 (09-29)成果展示75
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("无效选择,请重新输入。");
           }
       }
   }
}


打赏
分享给朋友:

相关文章

【JS】水果查询7个月前 (03-17)
【JS】3.17课后练习7个月前 (03-17)
【JS】For语句7个月前 (03-17)
【JS】For语句进阶7个月前 (03-24)
【JS】While循环7个月前 (03-24)
【JS】筛选数组7个月前 (03-31)