王震_202229001048
案例一:学生信息管理系统
- 运行、读懂并改变学生管理系统。为StudentsManagementSystemProject添加菜单,有4个功能:
- 添加学生(提示输入姓名后创建)
- 显示所有学生(使用良好的格式显示)
- 查询学生(输入姓名后查询学生)
- 退出
程序要求使用Scanner从控制台获取输入。功能1、2、3尝试使用方法简化main方法中的代码。
1 为StudentsManagementSystemProject添加菜单
ArrayList<Student> list = new ArrayList<>();
StudentManagementSystem sms = new StudentManagementSystem();
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
// Prompt user for input
System.out.println("Enter 1 to add a student");
System.out.println("Enter 2 to show all students");
System.out.println("Enter 3 to search for a student by name");
System.out.println("Enter 4 to exit");
// Get user input
int choice = scanner.nextInt();
// Process user input
switch (choice) {
case 1:
// Add a student
addStudent(scanner, sms);
break;
case 2:
// show all students
showAllStudents(scanner, sms);
break;
case 3:
// search for a student by name
searchStudentByName(scanner, sms);
break;
case 4:
System.out.println("System Over!");
System.exit(0);
break;
}
}
1.1 添加学生(提示输入姓名后创建)
private static void addStudent (Scanner scanner, StudentManagementSystem sms){
System.out.println("Enter student name:");
String name = scanner.next();
System.out.println("Enter student age:");
int age = scanner.nextInt();
System.out.println("Enter student gender:");
String gender = scanner.next();
System.out.println("Enter student ID:");
String id = scanner.next();
System.out.println("Enter student major:");
String major = scanner.next();
System.out.println("Enter student GPA:");
double gpa = scanner.nextDouble();
Student student = new Student(name, age, gender, id, major, gpa);
sms.addStudent(student);
System.out.println("Student added successfully!\n");
}
1.2 显示所有学生(使用良好的格式显示)
private static void showAllStudents(Scanner scanner, StudentManagementSystem sms) {
List<Student> studentList = sms.getStudents();
if (studentList.size() == 0) {
System.out.println("The System Data is empty Now!");
}else {
for (Student studentItem : studentList) {
System.out.println(studentItem.toString());
}
}
}
1.3 查询学生(输入姓名后查询学生)
private static void searchStudentByName (Scanner scanner, StudentManagementSystem sms){
System.out.println("Enter student name to search:");
String searchName = scanner.next();
List<Student> searchResults = sms.searchByName(searchName);
if (searchResults.isEmpty()) {
System.out.println("No students found!");
} else {
System.out.println("Search results:");
for (Student s : searchResults) {
System.out.println(s);
}
}
}
1.4 退出
case 4:
System.out.println("System Over!");
System.exit(0);
break;
项目原始代码中,当我们在控制台输入“1”时,通过switch语句跳转到的case 1中代码如下:
case 1:
// Add a student
System.out.println("Enter student name:");
String name = scanner.next();
System.out.println("Enter student age:");
int age = scanner.nextInt();
System.out.println("Enter student gender:");
String gender = scanner.next();
System.out.println("Enter student ID:");
String id = scanner.next();
System.out.println("Enter student major:");
String major = scanner.next();
System.out.println("Enter student GPA:");
double gpa = scanner.nextDouble();
Student student = new Student(name, age, gender, id, major, gpa);
sms.addStudent(student);
System.out.println("Student added successfully!\n");
break;
这使得Main方法变得过于冗长,我选择使用建立方法来对Main方法中的代码进行简化