day19_task_统计学生

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值