java课程设计-学生成绩系统管理

时间:2024-03-02 13:44:14

1 功能要求

  • 添加学生功能:姓名、学号、性别、年龄,学号自动生成且学号唯一。
  • 添加学生成绩功能:假设每个人都选修了数学、Java与体育。但输入成绩的时候,一般是给所有学生输入某一门课程的成绩。
  • 根据学生学号查找学生成绩,并在界面上显示姓名、学号和成绩,学号不存在的给出提示信息。
  • 根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息。
  • 生成学生学习情况报表:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值。最后以总成绩平均值降序在图形界面输出,并可将该排序结果按照输出至"成绩表.txt"文件或者excel文件(输出到Excel文件为特别加分项,可以使用POI技术)。
  • 支持分别对所有学生各科成绩画出柱状分布图(可选)。
  • 支持对学生信息的修改与删除(要在文件或数据库中有所体现),不能修改学号。
  • 测试:支持随机生成10万个学生及其姓名、学号、成绩放入文本文件,以进行测试。(学号不能相同,每颗的成绩以80分为中心成正态分本)。
  • 支持用户登录、验证操作。

2 团队名称、团队成员介绍、任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。

团队成员 学号 任务分配
李悦(组长) 201921123002 数据库和数据表的建立和管理,dao模式,测试代码
农艳洁 201921123005 GUI界面设计,代码整合
孙玮羚 201921123006 poi技术导出数据生成excel文件,JFreeChart导出柱状图,打包成exe可执行文件

3 本项目的git地址。

git地址传送

4 项目git提交记录截图(要体现出每个人的提交记录及提交说明)。



5 项目功能架构图、主要功能流程图

项目功能架构图

6 面向对象设计包图、类图。如果类太多,可仅列出主要类。

7 项目运行截图或屏幕录制

开始运行

教师登录

查看学生信息

添加

删除

查找

修改

导出柱状图

导出Excel

8 项目关键代码分模块描述。

8.1 poi技术生成excel文件

从数据库中提取出各班的数据,放入集合,进行统计,然后生成excel文件

8.2 生成条形图

JFreeChart建立数据源集合后将所需展示信息统计后进行添加展示

8.3 查找学生信息(模糊查找)

数据库中提供了模糊查询语句,select语句中添加like,%可表示任意字符,\'like % X%\'会查询出所有所有携带X的记录;

8.4 如何自动生成学号

Student类在第一次被调用的时候,就执行查找数据库中最大的学号,然后保存到学生类的静态属性nextId中。每次调用Student的无参构造方法生成一个学生时,就自动将nextId学号分配给stuId,然后nextId自增,达到自动生成学号的目的。

8.5 测试代码

调用random的nextGaussian()方法,结合公式Math.sqrt(10)*r.nextGaussian()+80,生成以80为均值的正态分布随机数,实现成绩随机生成。

9 项目代码扫描结果及改正。

覆写方法没有用@Override注释:

修改:

10 项目总结(包括不足与展望、想要进一步完成的任务)

本次课程设计对我们而言是一次非常难忘的经历,虽然其过程非常的痛苦与煎熬,但是经过小组所有成员的共同努力及互相帮助下,这次大作业总算基本完成了。本次课设存在的不足还有很多,比如图形界面设计的界面切换还不是很流畅,每个界面的宽高不一致;对于学生成绩管理系统来说,我们实现的功能还不算多,只是基本完成了要求的功能,并没有增加功能。总体来说,本次课程设计给我们的收获很多,不仅让我们更深刻认识到团队合作的重要性,也提高了我们的思考能力,让我们以后会懂得去思考问题,解决问题。