采取控制台的方式去书写学生管理系统。
属性:id、姓名、年龄、家庭住址
键盘录入每一个学生信息并添加,需要满足以下要求:
id唯一
键盘录入要删除的学生id,需要满足以下要求:
id存在删除
id不存在,需要提示不存在,并回到初始菜单
键盘录入要修改的学生id,需要满足以下要求
id存在,继续录入其他信息
id不存在,需要提示不存在,并回到初始菜单
打印所有的学生信息,需要满足以下要求
如果没有学生信息,提示:当前无学生信息,请添加后再查询
如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
id 姓名 年龄 家庭住址 heima001 张三 23 南京 heima002 李四 24 北京 heima003 王五 25 广州 heima004 赵六 26 深圳
- public class Student {
- private 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;
- }
- }
- import java.util.ArrayList;
- import java.util.Scanner;
-
- public class StudentSystem {
-
- public static void main(String[] args) {
- ArrayList
list = new ArrayList<>(); - loop: while (true) {
- System.out.println("-------------欢迎来到ZZULI学生管理系统-------------");
- 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 choose = sc.next();
-
- switch (choose){
- case "1" -> addStudent(list);
- case "2" -> deleteStudent(list);
- case "3" -> updateStudent(list);
- case "4" -> queryStudent(list);
- case "5" -> {
- //方法一
- System.out.println("退出");
- break loop;
- //方法二
- /*System.out.println("退出");
- System.exit(0);*/
- }
- default -> System.out.println("没有这个选项");
- }
- }
- }
-
- //添加学生
- public static void addStudent(ArrayList
list) { - System.out.println("添加学生");
- Scanner sc = new Scanner(System.in);
-
- System.out.println("请输入学的的ID");
- String id = null;
-
- //判断ID是否唯一
- while (true) {
- id = sc.next();
- boolean flag = contains(list, id);
- if(flag){
- System.out.println("id已经存在,请重新录入");
- }else {
- break;
- }
- }
-
- System.out.println("请输入学的的姓名");
- String name = sc.next();
-
- System.out.println("请输入学的的年龄");
- int age = sc.nextInt();
-
- System.out.println("请输入学的的家庭住址");
- String address = sc.next();
-
- //创建学生对象,存入学生信息
- Student s = new Student(id,name,age,address);
-
- //将学生对象加入到集合中
- list.add(s);
-
- System.out.println("\n学生信息添加成功");
- }
-
- //删除学生
- public static void deleteStudent(ArrayList
list) { - System.out.println("删除学生");
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入要删除的学生ID");
-
- String id = sc.next();
- //查询ID在集合中的索引
- int index = getIndex(list, id);
-
- //判断索引值
- if(index>=0){
- //如果返回值>=0,删除学生信息
- list.remove(index);
- System.out.println("ID为"+index+"的学生删除成功");
- }else {
- System.out.println("ID不存在,删除失败");
- }
- }
-
- //修改学生
- public static void updateStudent(ArrayList
list) { - System.out.println("修改学生");
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入要修改学生的ID");
-
- String id = sc.next();
-
- int index = getIndex(list, id);
-
- if(index==-1){
- System.out.println("要修改的ID:"+id+"不存在,请重新输入");
- return;
- }
-
- Student stu = list.get(index);
-
- System.out.println("请输入新的学生姓名");
- String newName = sc.next();
- stu.setName(newName);
-
- System.out.println("请输入新的学生年龄");
- int newAge = sc.nextInt();
- stu.setAge(newAge);
-
- System.out.println("请输入要新的学生家庭住址");
- String newAddress = sc.next();
- stu.setAddress(newAddress);
-
- System.out.println("学生信息修改成功");
- }
-
- //查询学生
- public static void queryStudent(ArrayList
list) { - System.out.println("查询学生");
- if(list.size() == 0){
- System.out.println("当前无学生信息,请添加后再查询");
- return;
- }
-
- System.out.println("id\t\t姓名\t年龄\t家庭住址");
- for (int i = 0; i < list.size(); i++) {
- Student stu = list.get(i);
- System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
- }
- }
-
- //判断id是否唯一
- public static boolean contains(ArrayList
list,String id) { - /*for (int i = 0; i < list.size(); i++) {
- Student stu = list.get(i);
- String sid = stu.getId();
- if(sid.equals(id)){
- return true;
- }
- }
- return false;*/
- return getIndex(list,id) >=0;
- }
-
- //通过ID获取索引的方法
- public static int getIndex(ArrayList
list,String id) { - //遍历集合
- for (int i = 0; i < list.size(); i++) {
- //获取每一个学生对象
- Student stu = list.get(i);
- //获取每一个学生对象ID
- String sid = stu.getId();
- //集合中学生ID和输入的学生ID进行比较
- if(sid.equals(id)){
- //存在,返回索引
- return i;
- }
- }
- //循环结束,不存在,返回-1
- return -1;
- }
- }