根据题目要求生成大纲
总结:
1.在书写时,考虑到了书写时id可是是abc... 类型是String,但在根据id获取集合中元素时 list.get() ,get()里面是int类型。 2.在书写还有一点功能并不完全,
2.1查找时是打印所有学生信息,并不能根据输入关键信息打印相应学生
2.2修改时,是所有信息都要修改,并没有实现,只修改某一个或几个信息。
代码:
public class Studenttext { public static void main(String[] args) { ArrayList<Student> list=new ArrayList<>(); Scanner sc=new Scanner(System.in); int number; boolean flag=true; while (flag) { System.out.println("请选择你要的功能:1.添加,2.删除,3.修改,4.查找,5.退出"); number=sc.nextInt(); switch (number){ case 1 -> add(list); case 2->delete(list); case 3->adapt(list); case 4-> reaserach(list); default -> flag=false; } } } //添加 public static void add( ArrayList<Student> list){ Scanner sc=new Scanner(System.in); Student s=new Student(); System.out.println("请输入学生id"); String sid=sc.next(); boolean result = contains(list, sid); if (result) { System.out.println("该id已经存在"); } s.setId(sid); System.out.println("请输入学生姓名"); String name=sc.next(); s.setName(name); System.out.println("请输入学生年龄"); int age=sc.nextInt(); s.setage(age); System.out.println("请输入学生家庭住址"); String adress=sc.next(); s.setAdress(adress); list.add(s); System.out.println("已经添加成功"); //进行id唯一 } //删除 public static void delete( ArrayList<Student> list){ Scanner sc=new Scanner(System.in); System.out.println("请输入要删除的id"); String sid=sc.next(); int id=getindex(list,sid); if (id>=0) { //true就存在 list.remove(id); System.out.println(list.size()); System.out.println("删除成功"); }else { //不存在 System.out.println("id不存在"); } }//修改 public static void adapt( ArrayList<Student> list){ Scanner sc=new Scanner(System.in); System.out.println("请输入要修改的id"); String id=sc.next(); int index=getindex(list,id); if (index>=0) { Student s=list.get(index); System.out.println("请输入新的名字"); String Newname=sc.next(); s.setName(Newname); System.out.println("请输入新的年龄"); int Newage=sc.nextInt(); s.setage(Newage); System.out.println("请输入新的家庭住址"); String Newadress=sc.next(); s.setAdress(Newadress); System.out.println("修改成功"); }else { System.out.println(id+"不存在 ,更新失败"); } }//查找 public static void reaserach( ArrayList<Student> list){ if (list.size()!=0) { //返回true就代表存在 System.out.println("---------代军的学生管理系统------------"); System.out.println("id\tname\tage\tadress"); for (int i = 0; i < list.size(); i++) { Student s = list.get(i); System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getage()+"\t"+s.getAdress()); } }else { //如果不存在,提示当前无学生信息,请添加后在查询 System.out.println("当前无学生信息,请添加后在查询"); } } //进行id唯一,不存在返回flase public static boolean contains(ArrayList<Student> list,String id){ return getindex(list,id)>=0; } //查找id的学生,根据id查找 //不存在返回-1 public static int getindex(ArrayList<Student> list,String id){ for (int i = 0; i < list.size(); i++) { String sut_id=list.get(i).getId(); //存在就返回true if (sut_id.equals(id)) { return i; } }return -1; } }