使用Java设计实现一个带有GUI界面的学生成绩管理系统

写在前面: 我是「虐猫人薛定谔」,一个不满足于现状,有梦想,有追求的00后
\quad
本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新。
\quad
不忘初心,方得始终。
\quad

❤❤❤❤❤❤❤❤❤❤


使用Java设计实现一个带有GUI界面的学生成绩管理系统

设计要求

使用Java设计实现一个带有GUI界面的学生成绩管理系统。基本功能包括:

  1. 增添、删除、修改学生基本信息:学号、姓名、出生日期、专业课程分数;

  2. 统计优秀、良好、中等、及格、不及格的人数百分比,并以柱状图、饼图呈现
    【说明:可以使用SWING、AWT自己绘制;也可以使用开源类库,如JFreeChart】

  3. 按学号查询学生及成绩;

  4. 按照成绩分数排序;

  5. 提供数据存储功能(不使用数据库,全部使用流操作文件完成)

使用Java设计实现一个带有GUI界面的学生成绩管理系统

思路

程序界面的主背景使用的是暗灰色(个人比较喜欢的背景颜色),而面板背景用的是亮灰色(与暗灰色形成对比),程序是使用idea开发,除了绘制饼图和柱状图部分用了开源类库JFreeChart外,其余代码均为自己实现。

Main类是该程序的入口,MainFrame类中实现程序的主要框架,该类继承自JFrame,Student类对学生进行抽象,其成员包括学号、姓名、出生日期和课程,其中课程是用HashMap来存放的,Key为课程名,Value为课程成绩。

Management类用一个ArrayList来存放学生,该类对外提供添加学生信息、删除学生信息、修改学生信息、从文件导入学生信息等方法。Resource类为资源加载类,该类加载一些图片资源,这些资源用来装饰面板中的按钮。

为了实现定制排序,分别实现了按照学号、姓名、成绩排序的Comparator类,剩余类均为面板类,这些类继承自JPanel,上面添加相应的组件来实现对应的功能,其中LeftPanel为界面左侧面板,上面放了具有相应功能的按钮,用来控制各个面板之间的切换(通过设置各个面板的可见性来实现)

Panel1 ———— 添加学生信息

Panel2 ———— 删除学生信息

Panel3 ———— 修改学生信息

Panel4 ———— 查询学生信息

Panel5 ———— 统计课程成绩

数据的存储是依靠流操作文件来实现的,Management类和Student类均实现了Serializable接口,在程序窗口关闭之前,会将arrayList(存放学生的容器)写入文件,在程序启动的时候,先将数据文件读入,再启动窗口界面,从而实现数据的存储功能

目录结构

使用Java设计实现一个带有GUI界面的学生成绩管理系统

效果展示

使用Java设计实现一个带有GUI界面的学生成绩管理系统
添加学生信息
使用Java设计实现一个带有GUI界面的学生成绩管理系统
删除学生信息
使用Java设计实现一个带有GUI界面的学生成绩管理系统
修改学生信息
使用Java设计实现一个带有GUI界面的学生成绩管理系统
查找学生信息
使用Java设计实现一个带有GUI界面的学生成绩管理系统
统计成绩
使用Java设计实现一个带有GUI界面的学生成绩管理系统
从文件导入学生信息(文件需要满足指定的格式)
使用Java设计实现一个带有GUI界面的学生成绩管理系统

代码

—> 神奇旅程 <—

使用Java设计实现一个带有GUI界面的学生成绩管理系统

蒟蒻写博客不易,加之本人水平有限,写作仓促,错误和不足之处在所难免,谨请读者和各位大佬们批评指正。
如需转载,请署名作者并附上原文链接,蒟蒻非常感激
名称:虐猫人薛定谔
博客地址:https://blog.csdn.net/Deep___Learning