Java——实现一个小型的学生信息管理系统
目录
定义学生类
主界面
添加学生
查看学生
删除学生
修改学生
两个注意事项
定义学生类
1、定义成员变量
private String id;//学号private String name;//姓名private String age;//年龄private String gender;//性别private String addr;//居住地址
2、定义构造方法
(1)一个无参构造方法
 public Student() {    }(2)带四个参数的构造方法
public Student(String id, String name, String age, String gender, String addr) {this.id = id;this.name = name;this.age = age;this.gender = gender;this.addr = addr;}
3、定义成员方法
每个成员变量对应给出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 getAge() {return age;}public void setAge(String age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}
主界面
1、输出语句完成主界面的编写
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("请选择需要的操作:");
2、用Scanner实现键盘录入数据
//键盘输入Scanner sc = new Scanner(System.in);String line = sc.nextLine();
3、用switch完成功能选择操作
//用switch完成选择判断switch (line) {case "1":System.out.println("添加学生");break;case "2":System.out.println("删除学生");break;case "3":System.out.println("修改学生");break;case "4":System.out.println("查看所有学生");break;case "5":System.out.println("谢谢使用");//break;System.exit(0); //JVM退出}
4、循环再次回到主界面
while (true) { …… }
添加学生
1、键盘录入选择添加学生
case "1":System.out.println("添加学生");break;
2、定义方法用于添加学生
(1)显示提示输入何种信息,键盘输入要添加的学生信息
Scanner sc = new Scanner(System.in);System.out.println("请输入学生学号:");String id = sc.nextLine();System.out.println("请输入学生姓名:");String name = sc.nextLine();System.out.println("请输入学生年龄:");String age = sc.nextLine();System.out.println("请输入学生性别:");String gender = sc.nextLine();System.out.println("请输入学生居住地址:");String addr = sc.nextLine();
(2)创建学生对象,把键盘输入的数据赋值
//创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setAge(age);s.setGender(gender);s.setAddr(addr);
(3)将学生对象添加到集合中
//将学生对象添加到集合中array.add(s);
(4)给出添加成功提示
//提示添加成功System.out.println("学生添加成功");
3、方法调用
  addStudent(array);
查看学生
1、键盘录入选择查看学生
case "4"://System.out.println("查看所有学生");findAllStudent(array);break;
2、定义查看学生方法
(1)判断集合中是否有数据,若没有给出提示信息
//判断集合中是否有数据,若没有显示提示信息if (array.size() == 0) {System.out.println("无信息,请添加信息");return;}
(2)显示表头信息
//显示表头信息System.out.println("学号\t姓名\t性别\t年龄\t居住地址");
(3)将集合中对应信息显示出来,年龄补充“岁”
//显示集合中的数据for (int i = 0; i < array.size(); i++) {Student s = array.get(i);System.out.println(s.getId() + "\t\t" + s.getName() + "\t" + s.getGender() + "\t\t" + s.getAge() + "岁\t" + s.getAddr());}
3、方法调用
  findAllStudent(array);


删除学生
1、键盘录入选择删除学生
case "2"://System.out.println("删除学生");deleteStudent(array);break;
2、定义删除学生方法
(1)显示提示信息,键盘输入要删除学生的学号
//键盘录入需要删除学生的学号Scanner sc = new Scanner(System.in);System.out.println("请输入需要删除学生的学号:");String id = sc.nextLine();
(2)遍历集合将对应学生信息删除
//遍历集合将对应学生对象从集合中删除for(int i=0; i<array.size(); i++) {Student s = array.get(i);if(s.getSid().equals(sid)) {array.remove(i);break;}}
(3)给出删除成功的提示
//给出删除成功提示System.out.println("删除学生成功");
3、方法调用
  deleteStudent(array);
修改学生
1、键盘录入选择删除学生
case "3"://System.out.println("修改学生");updateStudent(array);break;
2、定义修改学生信息方法
(1)键盘录入需修改学生的学号,显示提示信息
//键盘录入需修改的学生学号Scanner sc = new Scanner(System.in);System.out.println("请输入需修改学生的学号:");String id = sc.nextLine();
(2)键盘录入需修改的学生信息
//给出修改的提示System.out.println("请输入学生的新姓名:");String name = sc.nextLine();System.out.println("请输入学生的新年龄:");String age = sc.nextLine();System.out.println("请输入学生的新性别:");String gender = sc.nextLine();System.out.println("请输入学生的新地址:");String addr = sc.nextLine();
(3)创建学生对象
//创建学生对象Student s = new Student();s.setId(id);s.setName(name);s.setGender(gender);s.setAge(age);s.setAddr(addr);
(4)遍历集合修改对应学生信息
//遍历集合修改对应的学生信息for (int i = 0; i < array.size(); i++) {Student student = array.get(i);if (student.getId().equals(id)) {array.set(i, s);break;}}
(5) 给出修改成功提示
//给出修改成功提示System.out.println("修改学生成功");
3、方法调用
  updateStudent(array);
两个注意事项
1、学号不存在问题
在删除/修改学生信息之前,对学号进行判断,如果不存在,给出提示信息,如果存在,则执行相应操作
改进代码如下:
//删除学生public static void deleteStudent(ArrayList<Student> array) {//键盘录入需要删除学生的学号Scanner sc = new Scanner(System.in);System.out.println("请输入需要删除学生的学号:");String id = sc.nextLine();//遍历集合,选中对应学生将其删除int index = -1;for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {index = i;//array.remove(i);break;}}if (index == -1) {System.out.println("该学生信息不存在,请重新输入:");} else {array.remove(index);System.out.println("删除成功");}//System.out.println("删除成功");}

2、学号重复问题
在添加学生信息的过程中,若添加了已存在的学生学号,给出提示信息,若没有,则继续执行该操作。
查看学号是否重复代码:
//查看学号是否重复public static boolean isUsed(ArrayList<Student> array, String id) {//如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回falseboolean flag = false;for (int i = 0; i < array.size(); i++) {Student s = array.get(i);if (s.getId().equals(id)) {flag = true;break;}}return flag;}
添加学生代码改进:
String id;while (true) {System.out.println("请输入学生学号:");id = sc.nextLine();boolean flag = isUsed(array, id);if (flag) {System.out.println("你输入的学号已经被使用,请重新输入");} else {break;}}

至此,一个小型的学生信息管理系统初步实现。

- 扫码关注 -
知乎 | 大可
CSDN | 一个大可呀

