版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LiuY521/article/details/85838303
-
学生管理系统集合版
-
第一步:分析写出一个主函数的框架
- 因为需要把学生信息存储到集合中,先创建一个学生类来存放学生信息
package test; public class Student { private String id; //ID private String name; //姓名 private String age; //年龄 private String address;//地址 public Student() { } public Student(String id, String name, String 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 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; } }
- 2.是存储到集合框架中 在主函数中首先创建一个集合对象来存储学生信息(代码不完整,按步骤一步一步完善)
-
public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<Student>arrayList=new ArrayList<>(); Scanner scanner=new Scanner(System.in); 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("请输入您的选择:"); int choice=scanner.nextInt(); //定义一个int类型数据接收控制台所输出的数组,来判断是方法几 switch (choice) { case 1: System.out.println("显示所有学生信息"); findStudent(arrayList);//因为学生信息存储到集合中,调用集合对象 break; case 2: System.out.println("添加学生信息"); addStudent(arrayList); break; case 3: System.out.println("删除学生信息"); deleteStudent(arrayList); break; case 4: System.out.println("修改学生信息"); revampStudent(arrayList); break; case 5: System.out.println("退出"); System.exit(0);//jvm退出 break; default: System.out.println("您输入的数字有误,请重新输入!"); break; } } }
- 3.写显示所有学生信息代码(\t等于TAB键)
-
//显示所有学生信息 public static void findStudent(ArrayList<Student>arrayList){ //首先判断集合中是否有数据,如果没有数据则提示并退出,重新选择功能 if (arrayList.size()==0) { System.out.println("目前没有学生信息存在"); return;//不返回值,单纯当作退出功能使用 } //循环遍历拿出学生信息 System.out.println("学号\t姓名\t年龄\t地址"); for(int i=0;i<arrayList.size();i++){ //创建一个Student对象接收 Student student=new Student(); student=arrayList.get(i);//拿到值System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getAge()+"\t"+student.getAddress()); } }
- 4.写添加学生信息代码
//添加学生信息功能
public static void addStudent(ArrayList<Student>arrayList){
Scanner scanner=new Scanner(System.in);
//判读ID是唯一的
String id;
while(true){
boolean flag=false;
System.out.println("请输入学生学号");
id=scanner.nextLine();
//拿到ID 去判断是否重复
for(int i=0;i<arrayList.size();i++)
{
Student student;
student=arrayList.get(i);
if (student.getId().equals(id)) { //判断ID是否重复
flag=true;
break;
}
}
if (flag) {
System.out.println("您输入的id重复,请重新输入!");
}else {
break;
}
}
System.out.println("请输入学生的姓名:");
String name=scanner.nextLine();
System.out.println("请输入学生的年龄");
String age=scanner.nextLine();
System.out.println("请输入学生的地址");
String address=scanner.nextLine();
//创建 一个学生类的对象接收
Student student=new Student();
student.setId(id);
student.setName(name);
student.setAge(age);
student.setAddress(address);
//让后把数据传入集合中
arrayList.add(student);
System.out.println("学生信息已存储!");
System.out.println(student.getId());
System.out.println(arrayList);
}
- 5.删除学生信息代码
//删除学生信息
public static void deleteStudent(ArrayList<Student>arrayList) {
//通过ID删除学生信息,判断控制台输入的id与集合中的id是否一致
Scanner scanner=new Scanner(System.in);
System.out.println("输入您要删除的学生ID");
String id=scanner.nextLine();
int index=-1;
for(int i=0;i<arrayList.size();i++)
{
Student student=arrayList.get(i);
if (student.getId().equals(id)) {
index=i;
break;
}
}
System.err.println(index);
if (index==-1) {
System.out.println("您要删除的数据不存在!请重新选择");
}else {
arrayList.remove(index);
System.out.println("删除成功");
}
}
- 6.修改学生信息代码
//修改学生信息 public static void revampStudent(ArrayList<Student>arrayList) { //通过ID删除学生信息,判断控制台输入的id与集合中的id是否一致 Scanner scanner=new Scanner(System.in); System.out.println("输入您要修改的学生ID"); String id=scanner.nextLine(); int index=-1; for(int i=0;i<arrayList.size();i++) { Student student=arrayList.get(i); if (student.getId().equals(id)) { index=i; break; } } if (index==-1) { System.out.println("您要修改的数据不存在!请重新选择"); }else { System.out.println("请输入学生新ID"); id=scanner.nextLine(); System.out.println("请输入学生的新姓名:"); String name=scanner.nextLine(); System.out.println("请输入学生的新年龄"); String age=scanner.nextLine(); System.out.println("请输入学生的新地址"); String address=scanner.nextLine(); //创建 一个学生类的对象接收 Student student=new Student(); student.setId(id); student.setName(name); student.setAge(age); student.setAddress(address); //让后把数据传入集合中 arrayList.set(index, student); //创建集合新的数据 System.out.println("学生信息已修改!"); System.out.println(arrayList); } }
2.测试模块
- 只单写查看功能测试
2.写添加学生出现错误 传的值为空
student=arrayList.get(i);//拿到值 没写这个步骤 导致查看方法获取不到集合中的数据 输入默认值