内存上的学生信息管理系统

时间:2021-07-16
本文章向大家介绍内存上的学生信息管理系统,主要包括内存上的学生信息管理系统使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

完成一个学生(姓名、年龄、性别、学号)管理系统:
1、可以添加学生.
2、可以按照学号修改学生信息.
3、可以按照学号删除学生信息.
4、可以通过学号查询学生信息.

实体节点类

package com.csoracle.练习;

import java.util.Objects;

public class StudentNode {
    private String name;
    private Integer age;
    private String sex;
    private Integer number;

    public StudentNode(String name, Integer age, String sex, Integer number) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.number = number;
    }

    public StudentNode() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        StudentNode that = (StudentNode) o;
        return Objects.equals(name, that.name) &&
                Objects.equals(age, that.age) &&
                Objects.equals(sex, that.sex) &&
                Objects.equals(number, that.number);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age, sex, number);
    }

    @Override
    public String toString() {
        return "StudentNode{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", number=" + number +
                '}';
    }
}

实现方法类

package com.csoracle.练习;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class StudentSystem {

    private static final HashMap students = new HashMap();
    private static final Scanner sc = new Scanner(System.in);

    public void start() {
        System.out.println(">>>>>>>>>>>>>>>>>欢迎来到J09的学生管理系统<<<<<<<<<<<<<<<<<<");
        wecome();
    }

    public void wecome() {
        System.out.println("请你选择需要执行的操作:");
        System.out.print("0、按学号查询学生信息,");
        System.out.print("1、添加学生的个人信息,");
        System.out.print("2、按学号删除学生信息" + "\n");
        System.out.print("3、按学号更改学生信息,");
        System.out.print("4、查看所以的学生信息,");
        System.out.println("5、退出信息管理系统..");
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
        choose();
    }

    public void choose() {
        System.out.print("请选择操作:");
        int i = sc.nextInt();
        while (true) {
            change(i);
        }
    }

    public void change(int i) {
        switch (i) {
            case 0:
                System.out.println("按学号查询学生信息");
                showIndex();
                wecome();
            case 1:
                System.out.println("添加学生的个人信息");
                add();
                wecome();
                break;
            case 2:
                System.out.println("按学号删除学生信息");
                remove();
                wecome();
                break;
            case 3:
                System.out.println("按学号更改学生信息");
                changeStu();
                wecome();
                break;
            case 4:
                System.out.println("查看所以的学生信息");
                showAll();
                wecome();
                break;
            case 5:
                System.out.println("退出信息管理系统中..");
                System.out.println("退出成功!");
                System.exit(0);
                break;
            default:
                System.out.println("输入不合法");
                wecome();
                break;
        }
    }

    public void add() {
        StudentNode student = new StudentNode();

        System.out.print("输入学号:");
        student.setNumber(sc.nextInt());

        System.out.print("输入名字:");
        student.setName(sc.next());

        System.out.print("输入年龄:");
        student.setAge(sc.nextInt());

        System.out.print("输入性别:");
        student.setSex(sc.next());

        if (students.containsKey(student.getNumber())) {
            System.out.print("该学号已有学生,是否继续:(y/n)");
            String isContinue = sc.next();
            if ("n".equals(isContinue)) {
                System.out.println("添加失败");
                return;
            }
        }
        students.put(student.getNumber(), student);
        System.out.println("添加成功:" + student);

    }

    public void changeStu() {
        StudentNode student = new StudentNode();

        System.out.print("输入要更改学生信息的学号:");
        int index = sc.nextInt();

        StudentNumberJudgment(index);

        student.setNumber(index);
        System.out.print("输入名字:");
        student.setName(sc.next());

        System.out.print("输入年龄:");
        student.setAge(sc.nextInt());

        System.out.print("输入性别:");
        student.setSex(sc.next());

        students.put(student.getNumber(), student);

        System.out.println("修改成功!");

    }

    // fast-tail
    public void remove() {
        System.out.print("输入要删除学生信息的学号:");
        int index = sc.nextInt();

        StudentNumberJudgment(index);

        /*Set set = students.keySet();
        for (Object o : set) {
            if(o.equals(index)){
                students.remove(index);
            }
        }*/
        //很大的可能报错,因为在迭代的时候,不允许增加删除操作,会引起线程异常、不安全
        students.remove(index);
        System.out.println("删除成功");

    }

    public void showAll() {
        Set set = students.entrySet();
        for (Object o : set) {
            System.out.println(o);
        }
    }

    public void showIndex() {
        System.out.print("输入要查询学生信息的学号:");
        int index = sc.nextInt();

        StudentNumberJudgment(index);

        Object o = students.get(index);
        System.out.println(o);

    }

    public void StudentNumberJudgment(int index) {
        if (!students.containsKey(index)) {
            System.out.println("您输入的学号不存在");
            wecome();
        } else {
            return;
        }
    }
}

测试类

package com.csoracle.练习;

public class Test01 {
    public static void main(String[] args) {
        StudentSystem studentSystem = new StudentSystem();
        studentSystem.start();
      
    }
}

测试结果

原文地址:https://www.cnblogs.com/Gzh001007/p/15021406.html