目录
一.文件要求
(上图来自黑马程序员B站视频)
二.代码示范
注意: 在写代码时要边写边测,不要等到最后全部写完再一起测试,同时在根据文件需求来写,不要只凭自己的主观想法
package Demo; public class Student { private int id; private String name; private int age; private String address;//地址 public Student() { } public Student(int id, String name, int age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
package Demo; import java.util.ArrayList; import java.util.Scanner; public class StudentSystem { public static void main(String[] args) { ArrayList<Student> list = new ArrayList<>(); loop: 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:退出"); System.out.println("请输入你的选择:"); Scanner sc = new Scanner(System.in); String choose = sc.next(); switch (choose) { case "1" -> addStudent(list); case "2" -> deleteStudent(list); case "3" -> updateStudent(list); case "4" -> queryStudent(list); case "5" -> { System.out.println("退出"); break loop;//跳出loop这个循环 //System.exit(0);//停止虚拟机运行 } default -> System.out.println("找不到相关选项"); } } } //添加学生 public static void addStudent(ArrayList<Student> list) { //创建学生对象 Student s = new Student(); Scanner sc = new Scanner(System.in); while (true) { System.out.println("请输入学生id:"); int id = sc.nextInt(); boolean flag = func(list, id); if (flag) { System.out.println("id已经存在,请重新录入"); } else { s.setId(id); break; } } System.out.println("请输入学生姓名:"); String name = sc.next(); s.setName(name); System.out.println("请输入学生年龄:"); int age = sc.nextInt(); s.setAge(age); System.out.println("请输入学生的家庭地址:"); String address = sc.next(); s.setAddress(address); //将对象添加到集合里 list.add(s); //添加成功提示 System.out.println("学生信息添加成功"); } //删除学生 public static void deleteStudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的id"); int id = sc.nextInt(); int index = getIndex(list, id); if (index >= 0) { list.remove(index); System.out.println("id为" + id + "的学生信息删除成功"); } else { System.out.println("id不存在,删除失败"); } } //修改学生 public static void updateStudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生id"); int id = sc.nextInt(); int index = getIndex(list,id); if(index == -1){ System.out.println("学生id为"+id+"的学生不存在,修改失败"); return; } System.out.println("请输入要修改的学生姓名:"); String newName = sc.next(); list.get(index).setName(newName); System.out.println("请输入要修改的学生年龄:"); int newAge = sc.nextInt(); list.get(index).setAge(newAge); System.out.println("请输入要修改的学生家庭地址:"); String newAddress = sc.next(); list.get(index).setAddress(newAddress); System.out.println("修改成功"); } //查询学生 public static void queryStudent(ArrayList<Student> list) { //如果没有学生信息,提示 if (list.size() == 0) { System.out.println("当前没有学生信息,请添加后再查询"); return; } //打印表头信息 System.out.println("id\t姓名\t年龄\t家庭地址"); //遍历,打印数据 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getId() + "\t" + list.get(i).getName() + "\t" + list.get(i).getAge() + "\t" + list.get(i).getAddress()); } } //判断学生id是否存在 public static boolean func(ArrayList<Student> list, int id) { /*for (int i = 0; i < list.size(); i++) { if(list.get(i).getId() == id){ return true; } } //不存在返回false return false;*/ return getIndex(list, id) >= 0; } //返回索引的方法 public static int getIndex(ArrayList<Student> list, int id) { for (int i = 0; i < list.size(); i++) { if (list.get(i).getId() == id) { return i; } } return -1; } }
三.结果展示
在测试代码时,要将所有的功能都测一遍