编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能如下:
(1)创建学生信息并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的籍贯信息;
(3)按学号或姓名查询成绩;
(4)按籍贯查询并输出该籍贯的所有学生;
(5)能添加、删除和修改学生的籍贯信息(可选项);
学生贯籍信息记录簿设计
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- 「已注销」 2023-04-11 15:03关注
引用new bing作答:
以下是一个 Java 实现的学生籍贯信息记录簿,实现了上述功能:import java.io.*; import java.util.*; class Student implements Serializable { private int id; private String name; private String address; public Student(int id, String name, String address) { this.id = id; this.name = name; this.address = address; } public int getId() { return id; } public String getName() { return name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String toString() { return "ID: " + id + "\tName: " + name + "\tAddress: " + address; } } public class StudentRecord { private static ArrayList<Student> students = new ArrayList<Student>(); private static Scanner scanner = new Scanner(System.in); private static void save() { try { FileOutputStream fileOut = new FileOutputStream("students.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(students); out.close(); fileOut.close(); System.out.println("Student records saved to file students.ser"); } catch (IOException e) { e.printStackTrace(); } } private static void load() { try { FileInputStream fileIn = new FileInputStream("students.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); students = (ArrayList<Student>) in.readObject(); in.close(); fileIn.close(); System.out.println("Student records loaded from file students.ser"); } catch (IOException e) { System.out.println("No saved student records found"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } private static void addStudent() { System.out.println("Enter student ID:"); int id = scanner.nextInt(); scanner.nextLine(); System.out.println("Enter student name:"); String name = scanner.nextLine(); System.out.println("Enter student address:"); String address = scanner.nextLine(); students.add(new Student(id, name, address)); save(); } private static void deleteStudent() { System.out.println("Enter student ID:"); int id = scanner.nextInt(); scanner.nextLine(); for (Student student : students) { if (student.getId() == id) { students.remove(student); System.out.println("Student with ID " + id + " deleted"); save(); return; } } System.out.println("No student with ID " + id + " found"); } private static void modifyStudent() { System.out.println("Enter student ID:"); int id = scanner.nextInt(); scanner.nextLine(); for (Student student : students) { if (student.getId() == id) { System.out.println("Enter new student address:"); String address = scanner.nextLine(); student.setAddress(address); System.out.println("Student with ID " + id + " modified"); save(); return; } } System.out.println("No student with ID " + id + " found"); } private static void displayAllStudents() { for (Student student : students) { System.out.println(student); } } private static void displayStudentsByLocation() { System.out.println("Enter location:"); String location = scanner.nextLine(); boolean found = false; for (Student student : students) { if (student.getAddress().equalsIgnoreCase(location)) { System.out.println(student); found = true; } } if (!found) { System.out.println("No students found in " + location); } } private static void searchStudent() { System.out.println("Enter student ID or name:"); String input = scanner.nextLine(); boolean found = false; for (Student student : students) { if (student.getId() == Integer.parseInt(input) || student.getName().equalsIgnoreCase(input)) { System.out.println(student); found = true; } } if (!found) { System.out.println("No student found with ID or name " + input); } } public static void main(String[] args) { load(); while (true) { System.out.println("\nWhat would you like to do?"); System.out.println("1. Add a student"); System.out.println("2. Delete a student"); System.out.println("3. Modify a student"); System.out.println("4. Display all students"); System.out.println("5. Display students by location"); System.out.println("6. Search for a student"); System.out.println("0. Exit"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: addStudent(); break; case 2: deleteStudent(); break; case 3: modifyStudent(); break; case 4: displayAllStudents(); break; case 5: displayStudentsByLocation(); break; case 6: searchStudent(); break; case 0: System.exit(0); default: System.out.println("Invalid choice"); } } } }
该程序使用了一个
Student
类来表示每个学生,包含学号、姓名和籍贯。使用ArrayList
来存储所有学生的信息,并使用序列化将其保存到磁盘文件中。在主方法中,使用一个
while
循环来处理用户的不同操作选择。用户可以选择添加、删除、修改学生信息,或者查询所有学生信息或者按照籍贯查询学生信息。还可以搜索学生信息,通过输入学号或姓名来查找相应的学生。该程序实现了一个基本的学生籍贯信息记录簿,可以根据需要进行扩展和改进。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 Revit2020下载问题
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
- ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数