学生管理系统:采取控制台的方式去书写学生管理系统。
点击查看业务需求
图片展示
Student:
JavaBean
StudentSystem:
主业务逻辑
Admin_Log - Word_Game
优化:
Student – JavaBean
package com.adminlog.studentsystem; public class Student { // id name age address private String id; private String name; private int age; private String address; public Student() { } public Student(String id, String name, int age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } public String getId() { return id; } public void setId(String 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; } }
StudentSystem – 业务逻辑
package com.adminlog.studentsystem; 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("----------欢迎来到Admin_Log学生管理系统----------"); 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); String choose = sc.next(); switch (choose) { case "1" -> addStudent(list); case "2" -> delStudent(list); case "3" -> updateStudent(list); case "4" -> queryStudent(list); case "5" -> { System.out.println("退出"); //break 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); String id = null; while (true) { System.out.println("请输入学生的ID:"); id = sc.next(); boolean flag = contains(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); // Student s = new Student(id,name,age,address); list.add(s); // 提示用户 // ArrayList集合 返回的结果始终是true System.out.println("学生信息添加成功!"); } //删除学生 public static void delStudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.println("请输入要删除的ID:"); String id = sc.next(); // 查询ID在集合中的索引 int index = getIndex(list, id); // 对 index 进行判断 // 如果 -1 表示不存在,结束方法,回到初始菜单 if (index >= 0) { // 如果大于等于0,表示存在,直接删除 list.remove(index); System.out.println("ID为:" + id + "的学生删除成功!"); } else { System.out.println(id + "的ID不存在,删除失败!"); } } //修改学生 public static void updateStudent(ArrayList<Student> list) { Scanner sc = new Scanner(System.in); System.out.println("请输入要修改的学生ID:"); String id = sc.next(); int index = getIndex(list, id); if (index == -1) { // 表示不存在,回到主菜单 System.out.println("要修改ID:" + id + "不存在!"); return; } // 执行到这里表示ID存在,进行修改操作 // 获取要求改的学生对象 Student stu = list.get(index); // 输入其他信息并修改 System.out.println("请输入要修改的学生姓名:"); String newName = sc.next(); stu.setName(newName); System.out.println("请输入要修改的学生年龄:"); int newAge = sc.nextInt(); stu.setAge(newAge); System.out.println("请输入要修改的学生家庭住址:"); String newAddress = sc.next(); stu.setAddress(newAddress); System.out.println("学生信息修改成功!"); } //查询学生 public static void queryStudent(ArrayList<Student> list) { // 打印表头 System.out.println("\tID\t\t姓名\t年龄\t家庭住址"); if (list.size() == 0) { System.out.println("当前无学生信息,请添加后再查询"); return; } // 如果执行到这里,说明列表里有学生信息,遍历学生信息 for (int i = 0; i < list.size(); i++) { Student stu = list.get(i); System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t\t" + stu.getAddress()); } } // 判断ID唯一性 public static boolean contains(ArrayList<Student> list, String id) { // 循环遍历集合得到每一个学生对象 // 拿到学生对象后,获取id并进行判断 // 如果返回true表示该学生id存在 // 如果返回false表示该学生id不存在,进行添加操作 // for (int i = 0; i < list.size(); i++) { // boolean flag = list.get(i).getId().equals(id); // if (flag){ // // 存在返回true // return true; // } // } // // 不存在返回false // return false; return getIndex(list, id) >= 0; } // 通过ID获取索引的方法 public static int getIndex(ArrayList<Student> list, String id) { // 遍历集合 for (int i = 0; i < list.size(); i++) { // 得到每一个学生对象 Student stu = list.get(i); // 得到每一个学生对象的id String sid = stu.getId(); // 判断集合中的学生ID与要查询的ID作比较 if (sid.equals(id)) { // 如果一样,返回索引 return i; } } // 如果不存在,返回-1; return -1; } }