准备工作
整体逻辑比较简单,分为三个部分,一个学生类(包括学号,姓名,年龄,居住地),还有主界面(主界面编写,键盘输入选择进行对应的操作,循环回到主界面),以及实现功能类(实现管理系统的增删查改)。
下面我们一起来看一看主界面的样子:
可用输出语句进行页面的设计,通过switch选择对应的操作。这就是大概整体的逻辑了,然后还有一些操作细节上的东西等等。我做得还是不够完善的。😥
下面,代码走起
Student
包括学号,姓名,年龄,居住地
两个构造方法(带参和不带参的),get/set方法
public class Student { //学号 private String sid; //姓名 private String name; //年龄 private String age; //居住地 private String address; public Student() { } public Student(String sid, String name, String age, String address) { this.sid = sid; this.name = name; this.age = age; this.address = address; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
StudentMenu
主界面
键盘输入数据
选择语句
循环
public class StudentMenu { public static void main(String[] args) { //创建集合 ArrayList<Student> array = new ArrayList<Student>(); 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("------------------------------------"); System.out.println("请输入你的操作>:"); Scanner sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": StudentFunction.addStudent(array); break; case "2": StudentFunction.deleteStudent(array); break; case "3": StudentFunction.modifyStudent(array); break; case "4": StudentFunction.finAllStudent(array); break; case "5": //退出保护机制,防止不小心退出 System.out.println("请确认是否退出(Y/N)"); String c = sc.nextLine(); if(c.equals("Y")||c.equals("y")) { System.out.println("欢迎下次使用"); System.exit(0);//JVM退出 } else { System.out.println("退出失败"); break; } } } } }
StudentFunction
实现添加学生,删除学生,修改学生,查看学生的功能
public class StudentFunction { //添加学生 //学号不能重复! public static void addStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); String sid; while(true) { System.out.println("输入学生学号>:"); sid = sc.nextLine(); boolean flag = isUsed(array, 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); //将学生对象添加到集合中 array.add(s); System.out.println("添加学生成功!"); } public static boolean isUsed(ArrayList<Student> array,String sid){ boolean flag = false; for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if(s.getSid().equals(sid)){ flag =true; break; } } return flag; } //查看学生 public static void finAllStudent(ArrayList<Student> array){ //查看学生之前先判断有没有学生 if(array.size()==0){ System.out.println("当前没有学生信息,请先添加!"); return;//不让程序往下执行 } System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地"); for(int i = 0;i<array.size();i++){ Student s = array.get(i); System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁"+ "\t\t"+s.getAddress()); } } //删除学生(根据学号) //删除前判断学生号存在还是不存在! public static void deleteStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); System.out.println("请输入删除学生的学号>:"); String sid = sc.nextLine(); int index = -1; for (int i = 0; i < array.size(); i++) { Student s = array.get(i); if(s.getSid().equals(sid)){ index = i; break; } } if(index == -1){ System.out.println("该学生号不存在,重新输入!"); }else{ array.remove(index); System.out.println("删除成功!"); } } //修改学生 //修改前判断学生号存在还是不存在! public static void modifyStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); String sid; int index = -1; while(true){ System.out.println("请输入你要修改的学生的学号>:"); sid = sc.nextLine(); for (int i = 0; i < array.size(); i++) { Student student = array.get(i); if(student.getSid().equals(sid)){ index = i; break; } } if(index == -1){ 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); array.set(index,s); System.out.println("修改成功!"); } }
运行
存在缺点:操作4查看学生之时对齐的问题。