欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java SE 简单的学生信息管理系统

程序员文章站 2022-05-06 18:20:51
...

问题描述

完成一个学生管理程序,使用学号作为键添加5个学生对象,其中使用Map集合,进行简单的查找,删除,增加操作。

  • 学生的属性:
    学号,姓名,性别,年龄,数学成绩,java成绩。

  • 简单的使用了面向对象

首先有一个Student类

package com.stu.test1;

/**
 * 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部的信息保存在文件中 可以实现对学生信息的学号查找,输出全部学生信息。
 * 
 * @author Feng 2018年1月27日下午2:06:23
 */
public class Student {

    private String studentID;// 学生学号
    private String name;// 学生姓名
    private String sex;// 学生性别
    private int age;// 学生年龄
    private double mathScore;// 数学成绩
    private double javaScore;// java 成绩

    public Student(String studentID, String name, String sex, int age, double mathScore, double javaScore) {
        super();
        this.studentID = studentID;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.mathScore = mathScore;
        this.javaScore = javaScore;
    }

    public Student(String xueHao) {
        // TODO Auto-generated constructor stub
        this.studentID = xueHao;
    }

    public String getStudentID() {
        return studentID;
    }

    public void setStudentID(String studentID) {
        this.studentID = studentID;
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

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

    public int getAge() {
        return age;
    }

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

    public double getMathScore() {
        return mathScore;
    }

    public void setMathScore(double mathScore) {
        this.mathScore = mathScore;
    }

    public double getJavaScore() {
        return javaScore;
    }

    public void setJavaScore(double javaScore) {
        this.javaScore = javaScore;
    }

    @Override
    public String toString() {
        return studentID + "\t" + name + "\t" + sex + "\t" + age + "\t" + mathScore + "\t" + javaScore;
    }

}
  • toString 方法的简单重写

  • 然后是业务类,这里用了一个Manager类。其中有初始化数据的构造方法,删除方法remove(String xueHao)(),查看所有信息的seeAll(),使用键来查看一个学生的信息的seeByNum(String studentID)(),还有添加一个学生信息的addStu(String xueHao, Student student)(),等方法。

Manager类

package com.stu.test1;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Manager {
    Map<String, Student> map = new HashMap<String, Student>();
    Scanner input = new Scanner(System.in);
    boolean isGo = true;
    // 接收输入的变量
    String keyNum = null;
    String xueHao = null;
    String xingMing = null;
    String xingBie = null;
    int nianLing = 0;
    double math = 0;
    double java = 0;

    /**
     * 构造方法来初始化数据
     */
    public Manager() {
        Student lulu = new Student("15060205124", "璐璐", "女", 22, 87.5, 91);
        Student feng = new Student("15060205102", "松松", "男", 22, 77.8, 65.3);
        Student peng = new Student("15060205007", "骁骁", "男", 22, 57.5, 71);
        Student yue = new Student("15060205004", "越越", "男", 19, 65.1, 76);
        Student lele = new Student("15060205003", "乐乐", "男", 22, 69.1, 70);

        map.put("15060205124", lulu);
        map.put("15060205102", feng);
        map.put("15060205007", peng);
        map.put("15060205004", yue);
        map.put("15060205003", lele);
    }

    /**
     * 删除方法,传入参数之后,可以删除就返回true
     * 
     * @param xueHao
     * @param student
     * @return
     */
    public boolean remove(String xueHao) {
        Collection<Student> values = map.values();
        for (Student stu : values) {
            if (stu.getStudentID().equals(xueHao)) {// 已经找到该学号,可以删除。
                map.remove(xueHao);
                return true;
            }
        }
        return false;
    }

    /**
     * 查看所有学生信息,遍历
     */
    public void seeAll() {
        Collection<Student> values = map.values();
        System.out.println("\t学号\t姓名\t性别\t年龄\t数学\tjava");
        for (Student student : values) {
            System.out.println(student.getStudentID() + " \t" + student.getName() + "\t" + student.getSex() + "\t"
                    + student.getAge() + "\t" + student.getMathScore() + "\t" + student.getJavaScore());
        }
    }

    /**
     * 判断是否有该学生学号,若有就返回true 通过键值查看某一个学生
     * 
     * @param studentID
     * @return
     */
    public boolean seeByNum(String studentID) {
        for (String key : map.keySet()) {
            if (key.equals(studentID)) {
                return true;
            }
        }
        return false;

    }

    /**
     * 添加一个学生信息,当输入所有属性之后,会判断是否有这个学生。
     * 
     * @param xueHao
     * @param student
     * @return 可以添加时会返回以个true
     */
    public boolean addStu(String xueHao, Student student) {
        Collection<Student> values = map.values();
        for (Student stu : values) {
            if (stu.getStudentID().equals(xueHao)) {
                System.out.println("已存在此学号");
                return false;
            }
        }
        map.put(xueHao, student);
        return true;
    }

    /**
     * 添加一个学生时的输入
     */
    public void addPrint() {
        System.out.println("请输入需要添加的学生学号:");
        xueHao = input.nextLine();
        System.out.println("请输入需要添加的学生姓名:");
        xingMing = input.nextLine();
        System.out.println("请输入需要添加的学生性别:");
        xingBie = input.nextLine();
        System.out.println("请输入需要添加的学生年龄:");
        nianLing = input.nextInt();
        System.out.println("请输入需要添加的学生数学成绩:");
        math = input.nextDouble();
        System.out.println("请输入需要添加的学生java成绩:");
        java = input.nextDouble();
    }

    /**
     * 选择1,2,3,4,5,6执行不同的功能。
     */
    public void show() {
        int choose = 0;
        while (isGo) {
            do {
                System.out.println("\tmap to\t学生管理系统");
                System.out.println("===================================");
                System.out.println("1.\t查看所有学生信息-----------");
                System.out.println("2.\t搜索一个学生信息-----------");
                System.out.println("3.\t增加一个学生信息-----------");
                System.out.println("4.\t删除一个学生信息-----------");
                System.out.println("5.\t清空所有学生信息-----------");
                System.out.println("6.\t退出----------------------");
                System.out.println("===================================");
                System.out.println();
                System.out.println("请输入你的选择:");
                if (input.hasNext()) {
                    choose = input.nextInt();
                }
                input.nextLine();
            } while (choose < 1 || choose > 6);
            /**
             * switch 来选择。
             */
            switch (choose) {
            case 1:
                seeAll();
                break;
            case 2:
                System.out.println("请输入要查找的学生ID:");
                keyNum = input.nextLine();
                if (seeByNum(keyNum)) {
                    System.out.println("已经找到要查询的信息如下:");
                    System.out.println("\t学号\t姓名\t性别\t年龄\t数学\tjava");
                    System.out.println(map.get(keyNum));
                } else {
                    System.out.println("查询失败,请确认你输入的信息无误~");
                }
                break;
            case 3:
                addPrint();
                // 传参数,学号,姓名,性别,年龄,数学成绩,java成绩
                Student student = new Student(xueHao, xingMing, xingBie, nianLing, math, java);
                if (addStu(xueHao, student)) {
                    System.out.println("添加成功");
                } else {
                    System.out.println("可能是学号重复导致添加失败!");
                }
                break;
            case 4:
                System.out.println("请输入你想要删除的学生学号:");
                xueHao = input.nextLine();
                @SuppressWarnings("unused")
                Student stu = new Student(xueHao);
                if (remove(xueHao)) {
                    System.out.println("已经删除该学生信息!");
                } else {
                    System.out.println("删除失败,可能是找不到该学生信息。");
                }
                break;
            case 5:
                System.out.println("确定要清空所有学生信息吗?");
                System.out.println("1.\t是的,我要清空所有信息!" + "\n" + "2.\t不要啦,我点错了,快退回去。");
                System.out.println("请输入你的选择:\t1或2");
                int choice = 0;
                choice = input.nextInt();
                if (1 == choice) {
                    map.clear();// 调用清空方法。
                    System.out.println("所有学生信息都已经清空了~");
                    break;
                } else if (2 == choice) {
                    System.out.println("已经返回到上一步,亲~");
                    break;
                }
                break;
            case 6:
                isGo = false;
                break;

            }

        }

    }

}

ManagerTest类

package com.stu.test1;

public class ManagerTest {
    public static void main(String[] args) {
        Manager ma = new Manager();
        ma.show();
    }
}

部分结果截图

java SE 简单的学生信息管理系统
java SE 简单的学生信息管理系统
java SE 简单的学生信息管理系统
java SE 简单的学生信息管理系统

其余的就不演示了,哈哈。