java基础-学生管理系统练习
package com.jdL.studentmanagement;public class Student {//学生的ID,name,age,addressprivate 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;}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 int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}
package com.jdL.studentmanagement;import java.util.ArrayList;
import java.util.Scanner;public class StudentMain {public static void main(String[] args) {ArrayList<Student> students=new ArrayList<>();loop: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:退出");Scanner sc=new Scanner(System.in);System.out.print("请输入您的选择:");String choose=sc.next();switch(choose){case "1":{students=addStudent(students);//System.out.println("添加后集合大小: " + students.size());break;}case "2":{System.out.println("删除前集合大小: " + students.size());System.out.println("输入学生的学号ID");String studentID=sc.next();boolean flag=deleteStudent(students,studentID);if(flag){System.out.println("删除成功");}else{System.out.println("数据不存在");}break;}case "3":{System.out.println("输入学生的学号ID");String studentID=sc.next();updateStudent(students,studentID);break;}case "4":{//System.out.println("查询前集合大小: " + students.size());System.out.println("输入学生的学号ID");String studentID=sc.next();String result=selectStudent(students,studentID);System.out.println(result);break;}case "5":{System.out.println("退出");break loop;}default:{System.out.println("不存在此选项");break;}}}}//添加学生//id唯一public static ArrayList<Student> addStudent(ArrayList<Student> list){//利用集合来存储学生的信息//ArrayList<Student> students=new ArrayList<Student>();Scanner sc=new Scanner(System.in);while(true){System.out.println("请输入学生的ID");String id=sc.next();System.out.println("请输入学生的姓名");String name=sc.next();System.out.println("请输入学生的年龄");int age=sc.nextInt();System.out.println("请输入学生的家庭住址");String address=sc.next();//添加后需要对新增的ID判断,是否存在当前集合中if(!list.isEmpty()){for(int i=0;i<list.size();i++){if(list.get(i).getId().equals(id)){System.out.println("学生ID"+list.get(i).getId()+"已经存在");return list;}}}list.add(new Student(id,name,age,address));System.out.println("添加成功");return list;}}//删除学生public static boolean deleteStudent(ArrayList<Student> list,String id){//String flag="";if(!list.isEmpty()){for(int i=0;i<list.size();i++){if(list.get(i).getId().equals(id)){list.remove(i);return true;}}}return false;}//修改学生public static boolean updateStudent(ArrayList<Student> list,String id){Scanner sc=new Scanner(System.in);for(int i=0;i<list.size();i++){if(list.get(i).getId().equals(id)){System.out.println("输入修改学生的姓名");String name=sc.next();System.out.println("输入修改学生的年纪");int age=sc.nextInt();System.out.println("输入修改学习的家庭住址");String address=sc.next();list.get(i).setName(name);list.get(i).setAge(age);list.get(i).setAddress(address);return true;}}return false;}//查询学生public static String selectStudent(ArrayList<Student> list,String id){if(!list.isEmpty()){for(int i=0;i<list.size();i++){if(list.get(i).getId().equals(id)){String name=list.get(i).getName();String address=list.get(i).getAddress();int age=list.get(i).getAge();return name+","+age+","+address;}}}return "无当前学生信息,请添加后重新查询";}}这个练习中,比较容易出错的一点:整个增删改查的集合都是同一个集合,那么定义集合对象的是就不能放在while循环里面,否则每次都是产生一个新的集合对象

