1、7.3 实现一个简单的学生管理系统,能支持学生数据(Student)的显示、增加、修改和删除等操作, 学生信息包括学号、姓名、性别、专业等。具体要求如下:学生数据按对象序列化写入 student.dat 文件程序启动后,从 student.dat 文件读取学生对象存入 ArrayList 中;增加学生数据时将学生对象 Student 存入 ArrayList,按保存后再写入 student.dat;删除学生必须输入学生的学号;修改学生必须输入学号,然后输入姓名、性别和专业进行修改;保存时将当前 ArrayList 中的所有学生对象写入 student.dat;退出前也要将当前 ArrayLis
2、t 中的所有学生对象写入 student.dat;设计一个操作菜单,包括“增加” 、 “修改” 、 “删除” 、 “显示” 、 “保存” 、 “退出”等 6 个选项。import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;import java.io.File;import java.util.ArrayList;import java.
3、util.List;import java.util.Scanner;class Student implements Serializable int id;String name;String sex;String zuanYe;public Student() id = 0;name = “wu“;sex = “男“;zuanYe = “English“;public Student(int id, String name, String sex, String zuanYe) this.id = id;this.name = name;this.sex = sex;this.zuanY
4、e = zuanYe;public void output() System.out.print(“学号:“ + id);System.out.print(“,姓名:“ + name);System.out.print(“,性别:“ + sex);System.out.println(“,专业:“ + zuanYe);public class StuInfoSystem List list = new ArrayList();public void addList() / 将学生信息添加到 ArrayList 数组中去int id;String name, sex, zuanYe;Scanne
5、r sc = new Scanner(System.in);System.out.println(“请输入学生信息:“);System.out.println(“学号:“);id = sc.nextInt();System.out.println(“姓名:“);name = sc.next();System.out.println(“性别:“);sex = sc.next();System.out.println(“专业:“);zuanYe = sc.next();Student s = new Student(id, name, sex, zuanYe);/s.Output();list.a
6、dd(s);public void addFile() / 将 ArrayList 数组中的信息保存到文件try ObjectOutputStream f = new ObjectOutputStream(new FileOutputStream(“student.txt“);for (int n = 0; n 0 /输出学生信息list.add(s); f.close(); catch (Exception e) System.err.println(e.getMessage();public void outStudent(int id) / 输出某个学生的信息boolean m_bool
7、ean = false;for (int i = 0; i 0)for (int i = 0; i list.size(); i+) Student s = (Student) list.get(i);s.output();elseSystem.out.println(“没有任何学生信息!“);void changeStudent(int id) / 修改学生信息Scanner sc = new Scanner(System.in);String stuInfo=“;boolean m_boolean = false;for (int i = 0; i list.size(); i+) Stu
8、dent s = (Student) list.get(i);if (s.id = id) System.out.println(“请输入修改的姓名:“);if(!(stuInfo=sc.next().trim().equals(“)s.name = stuInfo;System.out.println(“请输入修改的性别:“);if(!(stuInfo=sc.next().trim().equals(“)s.sex = stuInfo;System.out.println(“请输入修改的专业:“);if(!(stuInfo=sc.next().trim().equals(“)s.zuanYe
9、 = stuInfo;list.set(i, s);System.out.println(“修改成功。“);m_boolean = true;break;if (!m_boolean) System.out.println(“没有该同学。“);void moveStudent(int id) / 删除某个学生信息boolean m_boolean = false;for (int i = 0; i list.size(); i+) Student s = (Student) list.get(i);if (s.id = id) list.remove(i);System.out.println
10、(“删除成功。“);m_boolean = true;break;if (!m_boolean) System.out.println(“没有该同学。“);public static void main(String args) int select, id;boolean flag = true;String name, zuanYe;String sex;Scanner sc = new Scanner(System.in);StuInfoSystem t = new StuInfoSystem();t.inputList();System.out.println(“请选择 1-6 的菜单
11、“);while (flag) System.out.println(“1.增加学生 2.修改学生信息 3.删除学生 4.查询学生信息 5.显示所有学生信息 6.保存修改 7.退出系统“);tryselect = Integer.parseInt(sc.next();switch (select) case 1:t.addList();break;case 2:System.out.println(“请输入要修改学生的 ID:“);id = sc.nextInt();t.changeStudent(id);break;case 3:System.out.println(“请输入要删除学生的 I
12、D:“);id = sc.nextInt();t.moveStudent(id);break;case 4:System.out.println(“请输入要查看学生的 ID:“);id = sc.nextInt();t.outStudent(id);break;case 5:t.outAllStudent();break;case 6:t.addFile();System.out.println(“信息保存成功“);break;case 7:System.out.println(“系统退出“);flag = false;break;default:System.out.println(“您输入的菜单选项有误,请重新输入!“); catch(Exception e)System.out.println(“您输入的菜单选项有误,请重新输入!“);