学生管理系统Demo JavaSE实现

学生管理系统

  • 自己写的一个demo,练习一下设计思想。

需求分析

  1. 学生实体类 (学号,姓名,年龄,Java成绩,Html成绩,总分)
  2. 功能:
    1. 查询所有学生信息
    2. 根据学号查询学生信息
    3. 更新学生信息
    4. 添加学生信息
    5. 删除学生

项目结构

在这里插入图片描述

代码实现

Student.java

  • 创建学生实体类
//Student.java
public class Student {
    //学号唯一
    private  Integer id ;
    //姓名
    private String name;
    //年龄
    private Integer age;
    //Java成绩
    private Double javaScore;
    //Html成绩
    private Double htmlScore;
    //总分
    private Double totolScore;

    public Double getTotolScore() {
        return totolScore;
    }

    public void setTotolScore(Double totolScore) {
        this.totolScore = totolScore;
    }

    public Student() {
    }

    public Student(Integer id,String name, Integer age, Double javaScore, Double htmlScore, Double totolScore) {
        this.id=id;
        this.name = name;
        this.age = age;
        this.javaScore = javaScore;
        this.htmlScore = htmlScore;
        this.totolScore = totolScore;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id=id;
    }


    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 Double getJavaScore() {
        return javaScore;
    }

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

    public Double getHtmlScore() {
        return htmlScore;
    }

    public void setHtmlScore(Double htmlScore) {
        this.htmlScore = htmlScore;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return Objects.equals(id, student.id) &&
                Objects.equals(name, student.name) &&
                Objects.equals(age, student.age) &&
                Objects.equals(javaScore, student.javaScore) &&
                Objects.equals(htmlScore, student.htmlScore);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, javaScore, htmlScore);
    }

    @Override
    public String toString() {
        return "{" +
                "学号=" + id +
                ", 姓名='" + name + '\'' +
                ", 年龄=" + age +
                ", Java成绩=" + javaScore +
                ", Html成绩=" + htmlScore +
                ", 总分=" + totolScore +
                '}';
    }

  
}

StudentRepository

  • 创建学生仓库接口
//StudentRepository.java
public interface StudentRepository {
    //查找
    public abstract Map<Integer,Student> findAll();

    public abstract Student findById(Integer id);

    //添加
    public abstract String add(Student student);
    //删除
    public abstract String deleteById(Integer id);

    //修改
    public abstract String update(Student student);



}

StudentRepositoryImpl.java

  • 实现StudentRepository接口,使用Map模拟数据库保存信息
//StudentREpositoryImpl.java
public class StudentRepositoryImpl implements com.demodong.studentmanager.repository.StudentRepository {
    private static Map<Integer, Student> map;

    static {
        map=new HashMap<>();
        map.put(100001, new Student(100001,"demodong1",12,80.0,70.0,150.0));
        map.put(100002, new Student(100002,"demodong2",13,81.0,70.0,151.0));
        map.put(100003, new Student(100003,"demodong3",14,82.0,70.0,152.0));
        map.put(100004, new Student(100004,"demodong4",15,83.0,70.0,153.0));
    }

    @Override
    public Map<Integer, Student> findAll() {
        return this.map;
    }

    @Override
    public Student findById(Integer id) {
        if(map.containsKey(id)){
            return map.get(id);
        }
        return null;
    }

    @Override
    public String add(Student student) {
        if(map.containsKey(student.getId())){
            return "The Student alreadly exists";
        }else{
            map.put(student.getId(), student);
            return "Successful add";
        }
    }

    @Override
    public String deleteById(Integer id) {
        if(map.containsKey(id)){
            map.remove(id);
            return "Successful delete the student.";
        }else{
            return "There isn't the student";
        }
    }

    @Override
    public String update(Student student) {
        if(map.containsKey(student.getId())){
            map.put(student.getId(), student);
            return "Update successful";
        }
        return "There isn't the student.";
    }


}

StudentHandler.java

  • 实现Student的业务
//StudentHandler.java
public class StudentHandler {
    private StudentRepository studentRepository;
    private Scanner scanner = new Scanner(System.in);

    /**
     * 查看所有学生。
     */
    public void findAll() {
        studentRepository = new StudentRepositoryImpl();
        Map<Integer, Student> result = studentRepository.findAll();
        Set<Integer> idSets = result.keySet();
        for (Integer id : idSets) {
            System.out.println(result.get(id).toString());
        }
    }

    /**
     * 根据id查找学生
     */
    public void findById() {
        System.out.print("请输入你想要查询学生的id:");
        Student student = studentRepository.findById(scanner.nextInt());
        System.out.println(student.toString());
    }


    /**
     * 添加学生
     */
    public void add() {
        Student student = new Student();
        System.out.println("请输入一下相关信息:");
        System.out.print("请输入学生的学号");
        student.setId(scanner.nextInt());
        System.out.print("请输入学生姓名:");
        student.setName(scanner.next());
        System.out.print("请输入学生的年龄:");
        student.setAge(scanner.nextInt());
        System.out.print("请输入Java成绩");
        student.setJavaScore(scanner.nextDouble());
        System.out.print("请输入学生Html成绩:");
        student.setHtmlScore(scanner.nextDouble());

        String result = studentRepository.add(student);
        System.out.println(result);
    }

    /**
     * 删除学生
     */
    public void deleteById() {
        System.out.print("请输入想要删除学生的Id:");
        String resutl = studentRepository.deleteById(scanner.nextInt());
        System.out.println(resutl);
    }

    /**
     * 修改学生:
     */
    public void update() {
        System.out.println("请输入修改的相关信息");
        System.out.print("请输入相关学生的学号:");
        Integer id = scanner.nextInt();
        Student oldStudent = studentRepository.findById(id);
        if (oldStudent == null) {
            System.out.println("该生不存在");
        } else {
            System.out.print("请输入学生的姓名:");
            String name = scanner.next();
            System.out.print("请输入学生的年龄:");
            Integer age = scanner.nextInt();
            System.out.print("请输入学生的Java成绩:");
            Double javaScore = scanner.nextDouble();
            System.out.print("请输入学生的Html成绩:");
            Double htmlScore = scanner.nextDouble();
            Double totalScore = htmlScore + javaScore;
            Student student = new Student(id, name, age, javaScore, htmlScore, totalScore);
            String result = studentRepository.update(student);
            System.out.println(result);
        }

    }

    public void showMenu() {
        while (true) {
            System.out.println("============================================");
            System.out.println("1.查看所有学生信息");
            System.out.println("2.根据学号查询学生信息");
            System.out.println("3.修改学生信息");
            System.out.println("4.删除学生");
            System.out.println("5.添加学生");
            System.out.println("0:退出");
            System.out.println("============================================");
            System.out.println("请输入您的选择");
            int options = scanner.nextInt();
            switch (options) {
                case 1:
                    findAll();
                    break;
                case 2:
                    findById();
                    break;
                case 3:
                    update();
                    break;
                case 4:
                    deleteById();
                    break;
                case 5:
                    add();
                    break;
                case 0:
                    return;
                default:
                    break;
            }
        }
    }

}

StudentAplication.java

  • 编写启动类,启动程序
//StudentApplication.java
public class StudentApplication {
    public static void main(String[] args) {
        StudentHandler studentHandler = new StudentHandler();
        studentHandler.showMenu();
    }
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
运行本实例需要配置用户DSN,在ODBC数据源管理器中配置用户DSN连接指定的SQL Server数据库。关键操作步骤如下: (1)单击“开始”按钮,选择“程序”→“管理工具”→“数据源(ODBC)”命令,打开“ODBC数据源管理器”对话框,打开“用户DSN”选项卡。 (2)单击“添加”按钮,打开“创建新数据源”对话框,选择安装数据源的驱动程序,这里选择“SQL Server”。 (3)单击“完成”按钮,打开“创建到SQL Server的新数据源”对话框,在“名称”文本框中设置数据源名称为“mystudentsys”,在“描述”文本框设置数据源描述为“配置SQL Server数据库DSN”,在“服务器”下拉列表框中选择连接的数据库所在服务器为“(local)”。 (4)单击“下一步”按钮,选择“使用用户输入登录ID和密码的SQL Server验证”单选框,在“登录ID”文本框中输入SQL Server用户登录ID,这里为“sa”,在“密码”文本框中输入SQL Server用户登录密码。 (5)单击“下一步”按钮,选择“更改默认的数据库为”复选框,并在其下拉列表框中选择连接的数据库名称,这里选择“tb_student”,单击“下一步”按钮。 (6)单击“完成”按钮,打开“ODBC Microsoft SQL Server安装”对话框,显示新创建的ODBC数据源配置信息。 (7)单击“测试数据源”按钮测试数据库连接是否成功,如果测试成功,单击“确定”按钮,完成数据源配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值