//用IO流实现学员信息的增删改查 public class Student_CRUD { //把管理员的信息添加到集合中 static List<Administrator>getList=new ArrayList<>(); //把学生的对象添加到集合中 static List<Students>list=new ArrayList<>(); //static List<Administrator>list1=new ArrayList<>(); //输学生的信息 static Scanner input=new Scanner(System.in); public static void main(String[] args) { Administrator(); } public static void Administrator(){ System.out.println("==========学生信息管理系统============"); System.out.println("1.注册 2.登录 3.忘记密码"); int temp=input.nextInt(); if(temp==1){ //管理员的注册 ZhuCe(); }else if(temp==2){ //管理员的登录 LoginAutor(); }else if(temp==3){ //管理员忘记密码 }else{ System.out.println("你的输入有误,请重新输入!!!"); Administrator(); } } public static void ZhuCe(){ System.out.println("请输入管理员的id"); int id=input.nextInt(); System.out.println("请输入管理员的账号"); String name=input.next(); //判断管理员的账号开头不能是数字 if (!Character.isDigit(name.charAt(0))) { }else { System.out.println("不能以数字开头,必须是英文和数字组成"); System.out.println("请重新注册"); ZhuCe(); } System.out.println("请输入管理员的密码"); String pwd=input.next(); String newdata = String.valueOf(pwd); //必须到6到12位之间组成 if (newdata.length() >= 6 && newdata.length()<= 12) { }else { System.out.println("长度必须在6-12位"); System.out.println("请重新注册"); ZhuCe(); } //将管理员对象保存到集合中 getList.add(new Administrator(id,name,pwd)); //在将集合保存到文件中 try(ObjectOutputStream fw=new ObjectOutputStream(new FileOutputStream("F:\\aaa\\a.txt"));){ fw.writeObject(getList); System.out.println("管理员注册成功!!!!"); //注册成功就跳转到登录的页面 LoginAutor(); }catch(FileNotFoundException ce){ ce.printStackTrace(); }catch (IOException ce){ ce.printStackTrace(); } } //管理员的登录页面 public static void LoginAutor() { System.out.println("==========学生信息管理系统============"); System.out.println("请管理员登录"); System.out.println("请输入管理员的id"); int id1 = input.nextInt(); System.out.println("请输入管理员的账号"); String name11 = input.next(); System.out.println("请输入管理员的密码"); String pwd1 = input.next(); //如果index=-1 就证明没有该管理的信息 int index = -1; for (int i = 0; i < getList.size(); i++) { //如果三个条件都符合就证明登录成功 if (getList.get(i).getId()== id1&&getList.get(i).getName()==name11&&getList.get(i).getPwd()==pwd1) { index = i; break; } //如果等等-1就证明没有该管理员的信息 if(index==-1){ // LoginAutor(); // break; }else{ System.out.println("欢迎进行学生信息管理系统"); } } //在将集合重新保存到文件中 try (ObjectOutputStream fw = new ObjectOutputStream(new FileOutputStream("F:\\aaa\\a.txt"))) { fw.writeObject(list); fw.close(); System.out.println("登录成功!!!!"); dis(); } catch (IOException ce) { ce.printStackTrace(); } try(ObjectInputStream fr=new ObjectInputStream(new FileInputStream("F:\\aaa\\a.txt"))){ getList=(List<Administrator>)fr.readObject(); System.out.print("管理员的信息:"); System.out.println(getList); }catch(IOException ce){ ce.printStackTrace(); }catch(ClassNotFoundException ce){ ce.printStackTrace(); } } public static void dis(){ System.out.println(" =========欢迎使用学生信息管理系统======== "); System.out.println(" ==========高校学院管理系统========== "); System.out.println(" 1、 添加学生信息 "); System.out.println(" 2、 查询学生信息 "); System.out.println(" 3、 修改学生信息 "); System.out.println(" 4、 删除学生信息 "); System.out.println(" 5、 展示所有的学员信息"); System.out.println(" 6、 退出 "); while (true) { String in = input.next(); switch (in) { case "1": //添加学员的信息 addStudent(); break; case "2": //查找学员的信息 findStudent(list); break; case "3": //修改学员的信息 changeStudent(); break; case "4": //删除学员的信息 delStudent(); break; case "5": //展示学员的信息 showStudent(); break; case "6": System.out.println("退出程序成功"); break; default: System.out.println("输入错误,请选择1-6!"); dis(); //回调方法 } } } //添加学员信息的方法 public static void addStudent(){ System.out.println("请输入学员的id"); int id=input.nextInt(); System.out.println("请输入学员的姓名"); String name=input.next(); System.out.println("请输入学员的班级"); String clzz=input.next(); //把学员的信息添加到集合中 list.add(new Students(id,name,clzz)); //再将集合保存到文件中 try(ObjectOutputStream fw=new ObjectOutputStream(new FileOutputStream("F:\\aaa\\a.txt"));){ fw.writeObject(list); fw.close(); System.out.println("学员的信息添加成功√"); }catch (IOException ce){ ce.printStackTrace(); } dis(); } //查找学员信息的方法 public static void findStudent(List<Students>list){ try(ObjectInputStream fr=new ObjectInputStream(new FileInputStream("F:\\aaa\\a.txt"));){ list=(List<Students>)fr.readObject(); System.out.println(list); }catch (IOException ce){ ce.printStackTrace(); }catch (ClassNotFoundException ce){ } } //修改学员的信息 public static void changeStudent(){ System.out.println("请输入要修改的学号"); int id=input.nextInt(); //表示该学生不存在 int index=-1; for(int i=0;i<list.size();i++){ //判断如果学生对象的学号等于学号说明找到了 if(list.get(i).getId()==id){ index=i; break; } } if(index==-1) { System.out.println("没有找到该学生信息,请重新输入"); }else { // System.out.println("请输入id"); // int ID = input.nextInt(); System.out.println("请输入姓名:"); String nameNew = input.next(); System.out.println("请输入班级"); String clasz = input.next(); //给学生的对象重新赋值,根据下标重新赋值 Students students = list.get(index); //students.setId(ID); students.setName(nameNew); students.setClazz(clasz); //把下标和对象再次添加到集合 list.add(index, students); //再将集合重新保存到文件中 try (ObjectOutputStream fw = new ObjectOutputStream(new FileOutputStream("F:\\aaa\\a.txt"));) { //写入文件中 fw.writeObject(list); fw.close(); System.out.println("学员的信息修改成功√"); } catch (IOException ce) { ce.printStackTrace(); } } } //删除学员的信息 public static void delStudent(){ System.out.println("请输入要删除的学员的id"); int id=input.nextInt(); //如果等于-1,就证明没有找到该学员 int index=-1; for(int i=0;i<list.size();i++){ //如果输出的id和原有的id相等就证明找到了 if(list.get(i).getId()==id){ index=i; break; } } if(index==-1){ System.out.println("Sorry,没有该学员的信息"); }else{ //根据学员的id删除该学员的信息 list.remove(index); //将该集合重新写入到文件夹中 try(ObjectOutputStream fw=new ObjectOutputStream(new FileOutputStream("F:\\aaa\\a.txt"))){ fw.writeObject(list); fw.close(); System.out.println("学员的信息删除成功√"); }catch (IOException ce){ ce.printStackTrace(); } } } //查询所有的信息 public static void showStudent(){ try(ObjectInputStream fr=new ObjectInputStream(new FileInputStream("F:\\aaa\\a.txt"));){ list=(List<Students>)fr.readObject(); System.out.println(list); }catch (IOException ce){ ce.printStackTrace(); }catch (ClassNotFoundException ce){ } } }