(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程)
一.项目要求
学生类:
- 属性:id、姓名、年龄、家庭住址
添加功能:
- 键盘录入每一个学生信息并添加,需要满足以下要求: ID唯一
删除功能:
- 键盘录入要删除的学生id,需要满足以下要求
- id存在删除
- id不存在,需要提示不存在,并回到初始菜单
修改功能:
- 键盘录入要修改的学生id,需要满足以下要求
- id存在,继续录入其他信息
- id不存在,需要提示不存在,并回到初始菜单
查询功能:
- 打印所有的学生信息,需要满足以下要求。
- 如果没有学生信息,提示:当前无学生信息,请添加后再查询
- 如果有学生信息,需要按照以下格式输出。
二.项目过程
1.提取项目要求,按要求分成不同的模块.
2.根据各个的操作分析,采取相应的方法
添加操作:按学生属性添加成员信息
删除操作:将通过ID在学生中查找,通过返回值,判断是否存在学生,如果不为-1,即是学生的编号.
修改操作:将通过ID在学生中查找,得到学生编号,在通过Change方法,对具体的学生信息进行修改
查询操作:遍历输出成员信息.
二.代码实现
学生类 Student
package studentguangli;import java.util.ArrayList;public class Student {//成员变量private String id;private String name;private String sex;private int age;private String address;//空参的构造方法public Student() {}//带参的构造方法public Student(String id, String name, String sex, int age, String address) {this.id = id;this.name = name;this.sex = sex;this.age = age;this.address = address;}//get方法和set方法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 getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}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;}}
StudentSystem
package studentguangli;import studyone.ArrUtill;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class StudentSystem {public static void main(String[] args) {ArrayList<Student> list=new ArrayList<>();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("请输入你的选择:");Scanner sc= new Scanner(System.in);String choice=sc.next();switch (choice){case "1":Addstudent(list);break;case "2":Deletestudent(list);break;case "3":Changestudent(list);break;case "4":Findstudent(list);break;case "5":System.out.println("退出系统!");System.exit(0);default: break;}}}public static void Addstudent(ArrayList<Student> list){Scanner sc=new Scanner(System.in);String id= null;//判断id是否唯一while (true) {System.out.println("请输入添加学生的id:");id = sc.next();boolean flag=checkid(list,id);if(flag){System.out.println("id重复,请重新输入:");}else{break;}}System.out.println("请输入添加学生的姓名:");String name=sc.next();System.out.println("请输入添加学生的性别:");String sex=sc.next();System.out.println("请输入添加学生的年龄:");int age=sc.nextInt();System.out.println("请输入添加学生的家庭住址:");String address=sc.next();Student s=new Student(id,name,sex,age,address);list.add(s);System.out.println("学生信息添加成功!");}public static void Deletestudent(ArrayList<Student> list){Scanner sc=new Scanner(System.in);while (true) {System.out.println("请输入要删除的学生id:");String id=sc.next();int k=getid(list,id);if(k==-1){System.out.println("没有找到此id的学生,请重新输入id:");}else{list.remove(k);System.out.println("删除成功!");break;}}}public static void Changestudent(ArrayList<Student> list){Scanner sc=new Scanner(System.in);while (true) {System.out.println("请输入要修改的学生id:");String id=sc.next();int k=getid(list,id);if(k==-1){System.out.println("没有找到此id的学生,请重新输入id:");}else{change(list,id,k);System.out.println("修改成功!");break;}}}public static void Findstudent(ArrayList<Student> list){if(list.isEmpty()){System.out.println("暂时没有学生信息,请添加后再查询!");return;}System.out.println("id\t\t姓名\t\t性别\t\t年龄\t\t家庭住址");for(int i=0;i< list.size();i++){Student s=list.get(i);System.out.println(s.getId()+"\t"+s.getName()+"\t "+s.getSex()+"\t "+s.getAge()+"\t "+s.getAddress());}}public static boolean checkid(ArrayList<Student> list,String id){
// //从学生中查找是否有相同的id
// for(int i=0;i<list.size();i++){
// Student s= list.get(i);
// String sid=s.getId();
// if(sid.equals(id)){
// //如果有返回true
// return true;
// }
// }
// //如果没有返回false
// return false;return getid(list,id)>=0;}public static int getid(ArrayList<Student> list,String id){//从学生中查找是否有相同的idfor(int i=0;i<list.size();i++){Student s= list.get(i);String sid=s.getId();if(sid.equals(id)){//如果有返回该学生的序号return i;}}//如果没有返回-1return -1;}public static void change(ArrayList<Student> list,String id,int num){Scanner sc=new Scanner(System.in);Student s=list.get(num);System.out.println("你要修改的学生信息编号(1.姓名,2.性别,3.年龄,4.家庭住址)");int choice=sc.nextInt();switch (choice){case 1:System.out.println("请输入你要修改的学生姓名:");String newname=sc.next();s.setName(newname);break;case 2:System.out.println("请输入你要修改的学生性别:");String newsex=sc.next();s.setSex(newsex);break;case 3:System.out.println("请输入你要修改的学生年龄:");int newage=sc.nextInt();s.setAge(newage);break;case 4:System.out.println("请输入你要修改的学生家庭住址:");String newaddress=sc.next();s.setAddress(newaddress);break;default:break;}}
}