学生系统的简要概括:通过Array List(集合)内进行存储学生类,进行增加,删除,修改,查看为一体的代码集合。
本文章用到的学生类中的成员变量,方法,以及集合中自带的方法:
学生学号:sid
学生姓名:name
学生年龄:age
学生住址:adress
添加学生信息的方法:addStudent(ArrayList<Student> arr)
删除学生信息的方法:deleteStudent(ArrayList<Student> arr)
修改学生信息的方法:updateStudent(ArrayList<Student> arr)
查询学生信息的方法:findAllStudent(ArrayList<Student> arr)
检索每个类中的学号代码编写:boolean nameUsed(ArrayList<Student>arr,String sid)
ArrayList集合中要用到的方法有:add(增添),remove(移除),set(索引),get,以及size
一:创建学生类
首先使用private来修饰学生类中的成员变量,确保类的安全性,创建无参变量的构造方法和四个成员变量的构造方法,创建每个成员变量的Set以及Get方法方便在后续中对单个成员变量的赋值以及访问。
学生类的代码如下:
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 void setSid(String sid) { this.sid = sid; } public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public void setAddress(String address) { this.address = address; } public String getSid() { return sid; } public String getName() { return name; } public String getAge() { return age; } public String getAddress() { return address; } public void show(){ System.out.println(this.sid+" "+this.name+this.age+this.address); } }
二:测试类中主界面的代码编写
概括:主页面的代码实现主要是完成在执行不同方法下的界面输出,以及定义集合方便后续的方法传参(ArrayList<Student> arr = new ArrayList<Student>()),以及使用System.exit(0)来直接结束JVM虚拟机的操作。
实现界面的代码如下:
ArrayList<Student> arr = 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.print("请输入你的选择:"); System.out.println(); Scanner sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": addStudent(arr); break; case "2": deleteStudent(arr); break; case "3": updateStudent(arr); break; case "4": findAllStudent(arr); break; case "5": System.out.println("谢谢使用"); System.exit(0); default: System.out.println("输入非法,请重新输入"); break; } }
三.添加学生信息的代码编写(addStuent)
概括:首先使用nameUsed方法来判断是否重名,接着使用学生类中单独的set方法对每一个成员变量进行赋值,最后使用集合中的add函数进行填充。
实现代码如下:
//添加学生的方法 public static void addStudent(ArrayList<Student> arr) { Scanner sc = new Scanner(System.in); String sid; while(true){ System.out.println("请输入学生学号"); sid = sc.nextLine(); boolean flag=nameUsed(arr,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 adress = sc.nextLine(); Student s = new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(adress); arr.add(s); System.out.println("添加成功"); }
四.删除学生信息的代码编写(deleteStudent)
概括:首先使用equals以及循环来判断学号是否存在,接着使用ArrayList集合中的remove方法进行删除。
实现代码如下:
//删除学生的方法 public static void deleteStudent(ArrayList<Student> arr) { Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生的学号"); String sid = sc.nextLine(); int flag=-1; for (int i = 0; i < arr.size(); i++) { Student s = arr.get(i); if (s.getSid().equals(sid)) { arr.remove(i); flag=1; break; } } if(flag==-1){ System.out.println("该学号不存在,请重新输入"); return ; } System.out.println("删除成功"); }
五.修改学生信息的代码编写(updateStudent)
概括:修改信息和删除信息的代码有异曲同工之处,都是首先判断学号是否存在,修改信息接下来的操作是将你要进行修改的信息重新包装成一个学生类,接着在集合中寻找要修改处的下标位置,使用ArrayList中的set方法进行索引下标同时替换。
实现的代码如下:
//修改学生的方法 public static void updateStudent(ArrayList<Student> arr) { Scanner sc = new Scanner(System.in); System.out.println("请输入要修改的学生的学号"); String sid = sc.nextLine(); System.out.println("请输入学生的新姓名"); String name = sc.nextLine(); System.out.println("请输入学生新年龄"); String age = sc.nextLine(); System.out.println("请输入学生家庭住址"); String adress = sc.nextLine(); Student s=new Student(); s.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(adress); int flag=-1; for (int i = 0; i < arr.size(); i++) { Student s1 = arr.get(i); if (s1.getSid().equals(sid)) { arr.set(i,s); flag=1; break; } } if(flag==-1){ System.out.println("输入的学号不存在,请重新输入"); return ; } System.out.println("修改信息成功"); }
六.查看学生信息的代码编写(findAllStudent)
概括:确定输出后的信息格式,使用循环遍历集合中的每一类的存储信息。
实现代码如下:
//显示所有学生 public static void findAllStudent(ArrayList<Student> arr) { if (arr.size() == 0) { System.out.println("无数据,请先输入数据在进行查看"); return; } System.out.println("学号" + "\t\t\t" + "姓名" + "\t\t" + "年龄" + "\t\t" + "地址"); for (int i = 0; i < arr.size(); i++) { Student s = arr.get(i); System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁 \t" + s.getAddress()); } }
七.检索每个类中的学号代码编写(nameUsed)
概括:使用学生类中的get以及ArrayList中的equals方法判断是否重名,返回值以boolean进行接收。
实现代码如下:
public static boolean nameUsed(ArrayList<Student>arr,String sid){ boolean flag=false; for(int i=0;i<arr.size();i++){ Student s=arr.get(i); if(s.getSid().equals(sid)){ flag=true; } } return flag; }
总结:
代码的结果:
如果觉得文章不错,期待你的一键三连哦,你个鼓励是我创作的动力之源,让我们一起加油,顶峰相见!!!