[案例]学生管理系统
在一所学校中,对学生人员流动的管理是很麻烦的,本案例要求编写一个学生管理系统,实现对学生信息的添加、删除、修改和查询功能。每个功能的具体要求如下:
系统的首页:用于显示系统所有的操作,并根据用户在控制台的输入选择需要使用的功能。
查询功能:用户选择该功能后,在控制台打印所有学生的信息。
添加功能:用户选择该功能后,要求用户在控制台输入学生学号、姓名、年龄和居住地的基本信息。在输入学号时,判断学号是否被占用,如果被占用则添加失败,并给出相应提示;反之则提示添加成功。
删除功能:用户选择该功能后,提示用户在控制台输入需要删除学生的学号,如果用户输入的学号存在则提示删除成功,反之则提示删除失败。
修改功能:用户选择该功能后,提示用户在控制台输入需要修改的学生学号、姓名、年龄和居住地学生信息,并使用输入的学生学号判断是否有此人,如果有则修改原有的学生信息,反正则提示需要修改的学生信息不存在。
退出功能:用户选择该功能后,程序正常关闭。
本案例要求使用list集合存储自定义的对象,使用list集合的中常用方法实现相关的操作。
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManagementSystem {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("欢迎使用学生管理系统,请选择您需要使用的功能:");
System.out.println("1. 查询所有学生信息");
System.out.println("2. 添加新学生");
System.out.println("3. 删除指定学生");
System.out.println("4. 修改指定学生");
System.out.println("5. 退出系统");
int choice = scanner.nextInt();
switch (choice) {
case 1:
queryAllStudents(students);
break;
case 2:
addNewStudent(students, scanner);
break;
case 3:
deleteStudent(students, scanner);
break;
case 4:
modifyStudent(students, scanner);
break;
case 5:
System.out.println("感谢您使用本系统!");
return;
default:
System.out.println("无效选项,请重新输入!");
}
}
}
private static void queryAllStudents(ArrayList<Student> students) {
if (students.isEmpty()) {
System.out.println("当前没有任何学生信息!");
} else {
for (Student student : students) {
System.out.println(student);
}
}
}
private static void addNewStudent(ArrayList<Student> students, Scanner scanner) {
System.out.print("请输入新学生的学号:");
String id = scanner.next();
for (Student student : students) {
if (student.getId().equals(id)) {
System.out.println("该学号已经被占用,请重新输入!");
return;
}
}
System.out.print("请输入新学生的姓名:");
String name = scanner.next();
System.out.print("请输入新学生的年龄:");
int age = scanner.nextInt();
System.out.print("请输入新学生的居住地:");
String address = scanner.next();
Student newStudent = new Student(id, name, age, address);
students.add(newStudent);
System.out.println("添加成功!");
}
private static void deleteStudent(ArrayList<Student> students, Scanner scanner) {
System.out.print("请输入需要删除的学生的学号:");
String id = scanner.next();
boolean found = false;
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
if (student.getId().equals(id)) {
students.remove(i);
found = true;
break;
}
}
if (found) {
System.out.println("删除成功!");
} else {
System.out.println("该学号不存在,请重新输入!");
}
}
private static void modifyStudent(ArrayList<Student> students, Scanner scanner) {
System.out.print("请输入需要修改的学生的学号:");
String id = scanner.next();
boolean found = false;
for (Student student : students) {
if (student.getId().equals(id)) {
System.out.print("请输入新的学生姓名:");
String name = scanner.next();
System.out.print("请输入新的学生年龄:");
int age = scanner.nextInt();
System.out.print("请输入新的学生居住地:");
String address = scanner.next();
student.setName(name);
student.setAge(age);
student.setAddress(address);
found = true;
break;
}
}
if (found) {
System.out.println("修改成功!");
} else {
System.out.println("该学号不存在,请重新输入!");
}
}
}
class Student {
private String id;
private String name;
private int age;
private String address;
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "学号:" + id + ",姓名:" + name + ",年龄:" + age + ",居住地:" + address;
}
}