import java.sql.SQLOutput; import java.util.ArrayList; import java.util.Scanner; public class StudentManger { public static void main(String[] args) { ArrayList<Student> array = new ArrayList<>(); 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 退出"); Scanner sc=new Scanner(System.in); System.out.println("请输入你的选择:"); String ch = sc.nextLine(); switch (ch) { case "1": addStudent(array); break; case "2": removeStudent(array); break; case "3": updateStudent(array); break; case "4": findAllStudent(array); break; case "5": System.out.println("谢谢使用"); System.exit(0); default: System.out.println("输入错误,请重新输入"); break; } } } //添加学生 public static void addStudent(ArrayList<Student> list){ Scanner sc = new Scanner(System.in); //定义成员变量,能够在类中使用 String sid; //为了让程序能够回到这里,使用循环实现 while (true) { System.out.println("请输入学生学号"); sid = sc.nextLine(); //验证学号是否被占用 boolean flag = isUsed(list, sid); if (flag) { System.out.println("你输入的学号已经被使用,请重新输入"); }else{ break; } } //录入学生信息 System.out.println("请输入学生姓名"); String name=sc.nextLine(); System.out.println("请输入学生年龄"); String age=sc.nextLine(); System.out.println("请输入学生居住地"); String address=sc.nextLine(); //赋值给学生 Student s = new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //添加到集合 list.add(s); //提示成功 System.out.println("添加成功"); } //判断学号是否被使用 public static boolean isUsed(ArrayList<Student> list,String sid){ //如果与集合中的某一个学生学号相同,返回true,如果都不相同,返回flase boolean flag=false; for (int i = 0; i < list.size(); i++) { if (list.get(i).getSid().equals(sid)){ flag=true; break; } } return flag; } //删除学生 public static void removeStudent(ArrayList<Student > list){ Scanner sc=new Scanner(System.in); System.out.println("请输入你要删除的学生的学号"); String sid= sc.nextLine(); //判断学号是否存在 int index=-1; for (int i = 0; i < list.size(); i++) { if(list.get(i).getSid().equals(sid)){ //先记录要删除的索引 index=i; break; } } if (index==-1){ System.out.println("该信息不存在,请重新输入"); }else{ list.remove(index); //提示删除成功 System.out.println("删除学生成功"); } } //查看学生 public static void findAllStudent(ArrayList<Student> list){ //判断集合中是否有数据 if (list.size()==0) { System.out.println("无学生信息,请先添加学生信息再查询"); //为了让程序不在往下执行,利用return结束 return; } System.out.println("学号\t\t\t姓名\t年龄\t\t居住地"); for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t"+s.getAddress()); } } //修改学生信息 public static void updateStudent(ArrayList<Student> list){ Scanner sc=new Scanner(System.in); System.out.println("请输入你要修改的学生的学号"); String sid= sc.nextLine(); //判断学号是否存在 int index=-1; for (int i = 0; i < list.size(); i++) { if(list.get(i).getSid().equals(sid)){ //先记录要删除的索引 index=i; break; } } if (index==-1){ System.out.println("该信息不存在,请重新输入"); }else{ //键盘录入要修改的学生信息 System.out.println("请输入学生新姓名"); String name= sc.nextLine(); System.out.println("请输入学生新年龄"); String age= sc.nextLine(); System.out.println("请输入学生新居住地"); String address= sc.nextLine(); //赋值给学生 Student s = new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //遍历集合修改对应的学生信息 for (int i = 0; i < list.size(); i++) { if (list.get(i).getSid().equals(sid)){ list.set(i,s); break; } } //提示修改成功 System.out.println("修改学生信息成功"); } } }