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

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

目录:
1.团队成员及任务
2.项目简介与要求
3.git提交地址
4.git提交截图
5. 项目功能架构图、主要功能流程图
6.包图,类图
7.项目运行截图
8.核心代码截图
9.项目代码扫描及改正

10.总结与反思

1.团队成员及任务

团队名称:hxgxy
小组成员
队长:

赵志浩 计科20-1 202003010035

负责模块:
数据库的接口和数据库接口的实现类、数据库,表格绘制,excle导出
java swing 用户的登陆和登陆服务 用户模块,团队博客的书写

队员

李戎轩 计科20-1 202003010012

负责模块:
增删改查的GUI界面,显示所有学生的功能实现

孟肖扬 计科20-1 202003010011

负责模块:
老师学生登陆界面GUI设计更新学生信息界面GUI设计和功能实现

2.项目简介与要求
本项目意在实现对学生成绩的管理与统计

添加学生功能:姓名、学号、性别、年龄,学号自动生成且学号唯一。

添加学生成绩功能:假设每个人都选修了数学、Java与体育。但输入成绩的时候,一般是给所有学生输入某一门课程的成绩。

根据学生学号查找学生成绩,并在界面上显示姓名、学号和成绩,学号不存在的给出提示信息。

根据学生姓名(支持模糊匹配)查找学生成绩,并在界面上显示姓名、学号和成绩,如果有多个相同姓名学生存在,一起显示出来,姓名不存在的给出提示信息。

生成学生学习情况报表:报表包含学号、姓名、各科目成绩及对应的该科目班级平均值,总成绩以及班级总成绩平均值。最后以总成绩平均值降序在图形界面输出,并可将该排序结果按照输出至"成绩表.txt"文件或者excel文件(输出到Excel文件为特别加分项,可以使用POI技术)。

支持对学生信息的修改与删除(要在文件或数据库中有所体现),不能修改学号。

本次课程设计借鉴了现今开发者常用的写文档的方式

 1.首先
生成绩进行统计管理,它是为了解决什么问题?在统计管理系统出现之前,老师可能用什么方法进行管理?手工?excel?这些方法有什么问题?这些问题就是我系统存在的意义
运用数据库和swing用户界面把各项功能封装在一起,实现老师对学生成绩的管理
之前的方法操作不够简洁,功能笨重
设计系统就是为了解决这些问题
2.其次
解决现有模式的问题,那必然就会有针对性。比如现有的方法计算量大,系统侧重于自动计算,如果现有方法繁琐,数据冗余多,那么你的方案就应该侧重于减少操作步骤,降低数据冗余,等等。
为了解决方法繁琐,学生成绩管理系统自动生成学生的分数总和,学生分数的平均值
解决数据冗余:比如有一个学生转学了,而他的成绩可能在很多个位置里,需要到每一个   位置里去删除。而在我的系统里,只需要在一个地方删除,其他的数据全部都可以关联完成
3.系统设计,其实就是对一个大问题进行分解,然后逐个解决问题的思路。
为了解决老师管理学生信息的问题,将系统设计成如下模式

在这里插入图片描述

3.项目git提交地址

https://gitee.com/hxgxy/student-achievement-management.git
4.git提交截图
在这里插入图片描述
在这里插入图片描述

5 项目功能架构图、主要功能流程图
在这里插入图片描述
6.包图,类图

在这里插入图片描述
7.项目运行截图
1.登陆界面
在这里插入图片描述

2.老师登陆在这里插入图片描述
3.添加学生
在这里插入图片描述
4.删除学生
在这里插入图片描述
5.查找学生
在这里插入图片描述
6.修改学生信息
在这里插入图片描述
7.导出到excle表格
在这里插入图片描述
8.查看所有学生信息在这里插入图片描述

8.核心代码截图
1.面向对象数据库接口的实现类在这里插入图片描述

2.学生成绩表格的绘制
在这里插入图片描述
在这里插入图片描述
3.excle表格导出
在这里插入图片描述
在这里插入图片描述
4.java swing界面 以添加信息为例
在这里插入图片描述
在这里插入图片描述
9.项目代码扫描及改正
在这里插入图片描述
10.总结与反思

本次课程设计基本上完成了所有功能,选择A级项目的挑战和压力是巨大的,但同时也学习到了更多的知识和技术,锻炼了团队协作的能力。
因为本次课设涉及到数据库部分的知识,书写难度和代码量颇为巨大,数据库的连接和调试花费很多的时间,但最终在团队的努力之下成功完成。
本次课程设计遇到的最困难的问题就是如何将数据库中的各个数据逐一准确的填入用户界面之中为此修改调试了约两天时间。
方法一:DefaultTableModel直接addRow
这是最简洁的办法也是最初选择的方法,但是由于在调试过程中只在用户界面的左下角出现,没有在每一个区域显示

在这里插入图片描述

方法二

采用数组的方法,简便这是理论上最好的方法,但由于data和table关联问题没有成功实现

方法三

不要直接在 dtm 里去 addRow,而是把Students先转换成一个vector,每一个元素对应每一列的字段,再将这个vector塞到一个大的vector里,表示全部的数据。然后将dtm的DataVector设置成这个大vector
在这里插入图片描述
在这里插入图片描述

这是最繁琐的方法但也是最成功的方法,最后经过调试选择了此种办法

反思:excle导出部分虽然实现完成但是由于时间和配置学习JFree插件等问题,生成柱状图的功能没有成功完成,对于代码的规范依旧不够准确。
希望在未来的学习中不断改进不断进步,路漫漫其修远兮,吾将上下而求索!

  • 9
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值