import java.util.Scanner; public class Task { public static void main(String[] args) { // 创建学生类的对象 Student01[] stu = new Student01[100]; // Boolean值控制循环结束 boolean run = true; // 学生对象数组索引 int stuCount = 0; // 键盘录入操作 Scanner input = new Scanner(System.in); while (run == true) { // Boolean值控制循环结束 boolean run1 = true; boolean run2 = true; System.out.println("==========学生管理系统=========="); System.out.println("输入数字进行操作:1. 录入学生信息 2. 查询学生信息 3. 删除学生信息 4. 结束"); int select = input.nextInt(); switch (select) { case 1: // 录入学生信息 while (run1 == true) { System.out.println("开始录入学生信息(将自动生成学号):"); System.out.println("姓名:"); String name = input.next(); System.out.println("性别"); char gender = input.next().charAt(0); System.out.println("年龄;"); int age = input.nextInt(); System.out.println("班级:"); String cla = input.next(); // 创建学生对象 stu[stuCount] = new Student01(name, gender, age, cla); System.out.println("学号已自动生成"); stuCount++; System.out.println("是否继续录入?"); System.out.println("1. 是 2. 否"); select = input.nextInt(); // 结束循环 if (select == 2) { run1 = false; } } break; case 2: // 查询 while (run2 == true) { System.out.println("请输入查询模式: 1. 全体 2. 单个"); select = input.nextInt(); switch (select) { // 查询所有已录入学生 case 1: { for (int i = 0; i < stu.length; i++) { if (stu[i] != null) { stu[i].getInfo(); } } // 是否继续查询 System.out.println("是否继续?(1. 是 2. 否):"); select = input.nextInt(); // 否则跳出循环 if (select == 2) { run2 = false; } break; } case 2: { // 单体查询 通过姓名或学号 System.out.println("查询模式(1.通过姓名查询 2.通过学号查询):"); select = input.nextInt(); switch (select) { case 1: // 通过姓名查询 System.out.println("输入你要查询的姓名:"); // 生成临时姓名 String tempName = input.next(); // count累计重名数量 int count = 0; // 临时数量累计找到的人,若为0则查无此人 int tempCount = 0; // 遍历所有学生对象 for (int i = 0; i < stu.length; i++) { // 学生对象不为空且姓名=临时姓名时打印该姓名对应信息 if (stu[i] != null && tempName.equals(stu[i].getName())) { count++; tempCount ++; stu[i].getInfo(); } } if (tempCount == 0) { System.out.println("查无此人"); } // 打印重名的数量 System.out.println("重名数:" + count); break; case 2: // 通过学号查询 System.out.println("输入你要查询的学号:"); // 生成临时学号 int tempSid = input.nextInt(); // 临时数量累计找到的人,若为0则查无此人 int tempCount1 = 0; // 遍历所有学生对象 for (int i = 0; i < stu.length; i++) { // 对象不为空且学号与临时学号相等时打印该学号对应信息 if (stu[i] != null && tempSid == stu[i].getSid()) { stu[i].getInfo(); tempCount1++; } } if (tempCount1 == 0) { System.out.println("查无此人"); } } System.out.println("是否继续?(1. 是 2. 否):"); select = input.nextInt(); if (select == 2) { run2 = false; } break; } } } break; case 3: { // 删除学生 int tempCount2 = 0; System.out.println("输入你要删除学生的学号:"); int tempSid = input.nextInt(); for (int i = 0; i < stu.length; i++) { if (stu[i] != null && stu[i].getSid() == tempSid) { // 将学生对象赋值为空 stu[i] = null; System.out.println("删除成功"); tempCount2++; break; } } if (tempCount2 == 0) { System.out.println("查无此人"); } } break; case 4: System.out.println("结束"); run = false; } } } } // 学生类 class Student01 { // 姓名 private String name; // 性别 private char gender; // 年龄 private int age; // 学号 private int sid; // 班级 private String cla; // 静态变量 用于给学生自动分配学号 public static int numberOfStudent = 0; public Student01(String name, char gender, int age, String cla) { this.name = name; this.age = age; this.cla = cla; this.gender = gender; this.sid = ++numberOfStudent; } // 设置姓名 public void setName(String name) { this.name = name; } // 调取姓名 public String getName() { return name; } // 设置性别 public void setGender(char gender) { this.gender = gender; } // 调取性别 public char getGender() { return gender; } // 设置年龄 public void setAge(int age) { this.age = age; } // 调取年龄 public int getAge() { return age; } // 设置班级 public void setCla(String cla) { this.cla = cla; } // 调取班级 public String getCla() { return cla; } // 调取学号 public int getSid() { return sid; } // 查询 public void getInfo() { System.out.println("姓名:" + name + " 性别:" + gender + " 年龄:" + age + " 学号:" + sid + "班级:" + cla); } }
day19_task_统计学生
最新推荐文章于 2024-05-16 10:23:10 发布