Java 学生信息管理系统

Copyright ©stonee

Swing + i/o 写的学生成绩信息管理系统单机版
这个程序花了大约一周时间,从无到有
翻阅了许多资料,踩过了许多坑
虽然现在swing并不是主流,但是swing只是一种工具
写这个程序收获了许多别的东西,也锻炼了自己

Java程序设计踩过的坑与收获

  • 最遗憾的是在写程序之前没有看设计模式,只是在有了一点思路就开始写,然后最后随着思路的不断成熟,程序不断重构,难过
  • 以前总觉得学软工导论没啥用,看来这次要改变观点了
  • 刚开始还不知道用字节流还是字符流存文件,为了清楚最初用了字符流,但是到最后发现我的IDEA是“UTF-8”,但是系统是GBK,一直爆乱码,Google之后渐渐锁定了问题,就在字符流前面加了一层字节流先强制转换编码
  • 后端的增删查改代码有一点冗余,刚开始应该设一个接口,然后再加上泛型,但是等自己发现的时候已经来不及了,那时候已经写了2k+行了
  • 由于Swing的格式参照核心卷1上来写,照猫画虎,解耦合比较好,但是又产生了变量无法共享的问题,只能设了好多的全局变量
  • 锻炼了自己快速学习的能力,Swing3天掌握,边调用API边查,还导入了一个关于柱状图的包,查阅oracle官网的java11API等等
  • 最恶心人的就是编码问题了,刚开始一直乱码,Google了好长时间,还是因为I/O掌握的不好,不过现在完全解决
  • 但是发现自己还是太天真了,Jdk自带的一个命令具有规定编码555:-Dfile.encoding=UTF-8
  • 对集合类又复习了一遍
  • 这次确实把MVC运用到了程序当中,程序整体的解耦合还是蛮可以的
  • 再一次学习了反射等等,然后也在swing中运用了lambda
  • 对idea的操作更加熟悉
  • 因为安装了阿里的编码约束插件,经过这近3k行代码的编写,编码更加规范,写完这个程序以后,感觉之前写的程序就是坨x
  • 锻炼了自己锁定并解决问题的能力,有些模棱两可的问题直接查官方文档,有时候就会迎刃而解。官方文档可能并不适合初学者学习,但它作为一种工具文档还是绰绰有余
  • 有些问题当自己真正面对的时候也没有那么可怕

功能

泾渭分明的权限管理——安全
            * 分为管理员root和普通学生
                * 学生
                    * 查询成绩
                    * 修改自己的登录密码
                * root
                    * 修改所有人的登录密码
                    * 对学生信息增删查改
                    * 查看学生分析图表
                    * 查看登录日志
            * 验证码
                * 对于每次登录都需要输入验证码
                * 验证码背景有多达数十种线条和色彩进行干扰,有效防止机器爆破
            * 日志
                * 管理员可以通过日志查询该系统的使用情况
                * 日期 — 对象 — 操作 — 对象
                * 操作包括
                    * 增加
                    * 删除
                    * 登录
                    * 退出
                    * 查询
                    * 修改
            * 注册系统
                * 后台逻辑严密,只允许有成绩的学生注册
                * 当账号存在于后台成绩数据时才能注册
功能多样的管理系统——方便
            * 学生的Id是主码,不可重复
            * 登录
                * 登录窗口和注册窗口都有密码核查功能
                * 验证码
                * 多用户
            * 管理
                * 用户信息
                    * 查看用户权限
                    * 退出
                * 学生管理
                    * 查看&修改&添加&删除学生登录密码
                    * 查看&修改&增加&删除学生成绩
                    * 通过柱状图对学生成绩进行分析
                * 帮助
                    * 把本地的操作手册映射到窗口中
                    * 管理员查看日志
            * 删除信息
                * 一种方式是选中表格中的一行,进行删除
                * 另一种方式是点击删除按钮,输入ID进行删除
                    * 此时时级联删除,当删除了学生成绩后,学生的注册信息也会被删除
                    * 即被删除的学生登录不上该系统,即使ta之前注册过
            * 修改信息
                * 修改登录的密码
                * 修改成绩,姓名,性别等一切除了ID之外的信息
            * 查找
                * 可以只通过ID查询
                * 也可以通过性别,班级,姓名多个条件任选几个进行查询
            * 成绩分析
                * 系统自动给出各个学生的GPA,并按照GPA由由高到低排序
                * 有专门的各个班级成绩分析系统的集成
眼前一亮的界面展示——舒适
            * 更美的背景
                * 全局以一张钟楼夜间的照片为背景
                * 混以暗蓝色的纯色背景
                * 以郑大校徽为图标
            * 字体
                * 全局黄色字体,大方高贵
                * 字号大小统一
            * 新加入的图表
                * 使用柱状图对班级各科成绩进行分析
                * 包括各科不及格人数比,满绩点人数比等
            * 更少的弹窗
                * 把不必要的弹窗省去,把表格,图表分析完全集中到主界面中
吹毛求疵的用户体验——极致
            * 注册
                * 密码不对会报错
                * 当在登录界面按下“注册”按钮时,登录弹窗消失,注册弹窗弹出
                * 当按下“返回登录”的按钮时,注册窗口消失,登录窗口弹出
            * 用户可以查看当地保存的操作手册
            * 修改
                * 当非管理员登录 要修改密码时,系统默认在要输入Id的地方自动输入该用户的Id
                * 当要修改成绩时,如果选中表格,系统会自动输入选中表格的学生的ID
                * 当格式如不能成绩不能输入字符串,小数等,系统会给出提示
                * 系统自动给出要修改的6个可选择的内容,防止用户格式输入错误
            * 增加
                * 当要增加班级和性别时,系统自动给出班级和性别,防止用户格式输入错误
                * 格式错误时会给出十分精致且确切的提示
            * 有两种方式适合不同习惯的用户进行删除操作,兼顾每一种人
                * 删除之前有确认消息
            * 编码方式
                * 系统使用UTF-8编码,
                * 无论是在windows还是linux平台,无论OS默认使用哪种编码方式,系统均按照UTF-8存储
                * 绝不可能出现乱码问题

链接

源码地址

你可能感兴趣的:(Java 学生信息管理系统)