建立简单的学生管理系统
1 问题
建立一个在主界面可以输入数字来选择行为的简单学生管理系统,分别有1.添加学生资料,2.删除学生资料,3.修改学生资料,4.删除学生资料,5.退出系统.
学生的信息有id,姓名,年龄,家庭住址,其中id唯一.
2 方法
应用ArrayList类(集合),Scanner类,while循环以及方法的定义
首先第一步无疑是把主菜单建立起来,因为每次进行行为后都要返回主菜单(除了退出行为)而且不知道要返回多少次,所有这里要用while循环且条件为true.主菜单的语句体可以用System.out.println();输出.
完成了主菜单的建立后,就可以进行各个行为的部署.这里引入Scanner类,再使用Scanner类的方法进行键盘录入数字选择要进行的行为.判定行为则可以使用switch语句进行判定.
这里储存学生的信息则采用集合的形式,导入ArrayList类,因为学生是一个实例对象,所有信息则可以存储在一个学生类中,所有我们需要先建立一个学生的Student JavaBean类主界面则放在Test测试类中.然后再把每个学生类存储在集合中,对其进行增删改查(标准的JavaBean类可以使用 ptg插件快速生成 也可以使用ideal自带的快捷键生成(alt + insert));
环境布置好了以后就可以开始每种行为的编写,由于代码复用多,这里则选择把每种行为写在一个方法里面,通过switch语句进行判断选择再调用相应的方法;
最后关于5.退出选项.在switch里面使用break是结束Switch语句,那么如何结束while循环呢,这里提供两种方法,第一种是使用exit()方法,直接结束.第二种是给while循环添加一个标记 例如:loop:while(true).最后编写 break loop;即可结束循环
代码清单 1
Courier New字体,23磅行间距 //学生 JavaBean类的编写 package online.middle_up.StudentMS_Projiect; public class Student { 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; } /** * 获取 * @return id */ public String getId() { return id; } /** * 设置 * @param id */ public void setId(String id) { this.id = id; } /** * 获取 * @return name */ public String getName() { return name; } /** * 设置 * @param name */ public void setName(String name) { this.name = name; } /** * 获取 * @return age */ public int getAge() { return age; } /** * 设置 * @param age */ public void setAge(int age) { this.age = age; } /** * 获取 * @return address */ public String getAddress() { return address; } /** * 设置 * @param address */ public void setAddress(String address) { this.address = address; } public String toString() { return "Student{id = " + id + ", name = " + name + ", age = " + age + ", address = " + address + "}"; } } //测试类 package online.middle_up.StudentMS_Projiect; 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) { Scanner sc = new Scanner(System.in); 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("请输入您的选择:"); 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; } default -> System.out.println("没有这个选项"); } } } public static void addStudent(ArrayList<Student> list) { System.out.println("添加学生"); Scanner sc = new Scanner(System.in); Student s = new Student(); while (true) { System.out.println("请输入学生id"); String id = sc.next(); if (contains(list, id)) { 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); } public static void deleteStudent(ArrayList<Student> list) { System.out.println("删除学生"); Scanner sc = new Scanner(System.in); System.out.println("请输入要删除的学生的id"); String id = sc.next(); if (getIndex(list, id) >= 0) { System.out.println("id存在,进行删除"); list.remove(getIndex(list, id)); System.out.println("删除成功"); } else { System.out.println("id不存在,删除失败"); } } public static void updateStudent(ArrayList<Student> list) { System.out.println("修改学生"); Scanner sc = new Scanner(System.in); System.out.println("请输入要修改的学生的id"); String id = sc.next(); int num = getIndex(list, id); Student stu = list.get(num); if (num >= 0) { System.out.println("id存在"); System.out.println("请输入要修改的姓名"); String name = sc.next(); stu.setName(name); System.out.println("请输入要修改的年龄"); int age = sc.nextInt(); stu.setAge(age); System.out.println("请输入要修改的地址"); String address = sc.next(); stu.setAddress(address); System.out.println("修改成"); } else { System.out.println("id" + id + "不存在"); } } public static void queryStudent(ArrayList<Student> list) { System.out.println("查询学生"); if (list.isEmpty()) { System.out.println("当前无学生信息,请添加后再查询"); } else { System.out.println("ID\t\t姓名\t年龄\t住址"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getId() + "\t\t" + list.get(i).getName() + "\t\t" + list.get(i).getAge() + "\t\t" + list.get(i).getAddress()); } } } public static boolean contains(ArrayList<Student> list, String id) { int num = getIndex(list, id); if (num >= 0) { return true; } return false; } public static int getIndex(ArrayList<Student> list, String id) { for (int i = 0; i < list.size(); i++) { if (list.get(i).getId().equals(id)) { return i; } } return -1; } } |
3 结语
针对建立简单学生管理系统问题,提出应用集合和JavaBean类的方法,通过实验,证明该方法是有效的,在后期的学习中可以继续运用mysql数据库和springboot框架把功能继续完善.