概述
需求:
编写一个学生管理系统,可以实现对学生的信息录入,删除,修改和查看;
使用 ArrayList可以将每个学生对象保存在里面。然后在集合中实现。
图纸类:
创建图纸类用对学生对象的创建,标准格式,定义成员变量,有参无参构造,get set方法。
public class Student { private String sid ;//学号 private String name ;//姓名 private int age ;//年龄 private String birthday ;//生日 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public Student(String sid, String name, int age, String birthday) { this.sid = sid; this.name = name; this.age = age; this.birthday = birthday; } public Student() { } }
项目测试类:
实现操作:
import java.util.ArrayList; import java.util.Scanner; public class StudentTest01 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //创建一个集合,保存数据 ArrayList<Student> list = new ArrayList<>(); //因为不清楚用户需要使用的次数,使用无限循环实现 po: 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("请输入您的选择:"); String po = sc.next(); switch (po) { case "1": addStudent(list); //方法实现添加学生 break; case "2": delete(list); //方法实现删除学生 break; case "3": revise(list); //方法实现修改学生 break; case "4": seeStudenyt(list); //方法实现查看学生 break; case "5": System.out.println("系统已退出,欢迎再次使用"); break po; //结束po编号内的代码 default: System.out.println("您的输入有误,请重新输入"); } } } }
核心方法:
1.索引查找方法
这个方法需要我们传入一个集合和String类型的学号,用来判断在集合中是否存在相同学号,如果相同,我们就把该学生对象集合索引返回给它,所以需要返回一个int类型的值。
//判断学号是否存在,存在返回索引,不存在返回-1 public static int judge(ArrayList<Student> list, String sid) { //定义一个索引变量进行接收 int index = -1; //遍历集合,得到每一个学生的学号进行比对 for (int i = 0; i < list.size(); i++) { //通过gei方法得到一个学生对象,并临时保存为temp Student temp = list.get(i); //得到的是一个学生对象,所以需要get调用方法,查看id String tempsid = temp.getSid(); //判断现在得到的学号,和我们传入的学号是样一样,使用equals方法 if (tempsid.equals(sid)) { index = i; //相差我们就记录正确的索引位置 } } return index; //返回索引 }
2、添加学生的方法
该方法用于在集合中直接添加对象,因此不需要返回值,集合会在方法内完成添加。
//添加学生方法,键盘录入+添加集合 public static void addStudent(ArrayList<Student> list) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //创建学生对象 Student stu1 = new Student(); //循环目的,如果输入重复学号,则继续输入 while (true) { System.out.println("请输入学号"); String sid = sc.next(); //索引为-1,表示不存在,可以添加 if (judge(list, sid) == -1) { //在stu1学生对象中记录信息 stu1.setSid(sid); System.out.println("请输入姓名"); stu1.setName(sc.next()); System.out.println("请输入年龄"); stu1.setAge(sc.nextInt()); System.out.println("请输入生日"); stu1.setBirthday(sc.next()); System.out.println("学生信息已添加成功"); break; } else { System.out.println("学生信息已存在"); } } //添加学生对象进入集合 list.add(stu1); }
3、删除学生方法
我们已经有了一个索引查找方法,所以我们可以直接调用索引方法,通过学号信息进行删除,同样是在集合中进行,不需要返回值。
public static void delete(ArrayList<Student> list) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入需要删除的学生学号"); String sid = sc.next(); //调用刚才的方法查找学号 int index = judge(list, sid); //索引为-1,表示没有接收到正确索引,所以无法删除 if (index == -1) { System.out.println("您输入的学号不正确"); //没有学号,不能删除 } else { list.remove(index); //找到学号,进行删除 System.out.println("学生信息已删除成功"); } }
4、修改学生的方法
同样通过索引查找方法,找到相司学号信息才能进行修改,集合中直接操作,不需要返回任何数据。
public static void revise(ArrayList<Student> list) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入学号"); String sid = sc.next(); //调用方法,查看是否存在对象 int index = judge(list, sid); //索引为-1,表示不存在,不可以进行操作 if (index == -1) { System.out.println("您输入的学号不正确"); } else { //索引存在,进行修改 Student stutemp = list.get(index); stutemp.setSid(sid); System.out.println("请输入姓名"); stutemp.setName(sc.next()); System.out.println("请输入年龄"); stutemp.setAge(sc.nextInt()); System.out.println("请输入生日"); stutemp.setBirthday(sc.next()); //修改成功,调用set方法替换索引位置信息。 list.set(index, stutemp); System.out.println("学生信息已修改成功"); } }
5、查看学生的方法
查看学生方法实现比较简单,只需要调用集合中的每个学生对象,然后打印每个学生的数据即可,直接遍历集合实现。
public static void seeStudenyt(ArrayList<Student> list) { System.out.println("学号t" + "姓名t" + "年龄t" + "生日"); for (int i = 0; i < list.size(); i++) { Student temp = list.get(i); System.out.println(temp.getSid() + "t" + temp.getName() + "t" + temp.getAge() + "tt" + temp.getBirthday()); } }
最后
以上就是阳光砖头为你收集整理的ArrayList学生管理系统的基本实现的全部内容,希望文章能够帮你解决ArrayList学生管理系统的基本实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复