一、项目概述
本项目为三人小组Java课程设计,基于Java Swing桌面GUI + SQLite轻量文件数据库开发学生成绩管理系统。
系统实现用户登录鉴权、学生信息增删改查、多科目成绩录入与自动统计、CSV文件导入导出、成绩柱状图可视化、批量生成测试数据六大核心功能。
项目采用标准MVC分层架构解耦代码,使用Gitee组织仓库完成多人协同版本管理,通过Issues拆分跟踪开发任务,完整落地小组协作开发流程。
二、开发环境与技术栈
1. 开发语言:Java 26
2. 开发工具:IntelliJ IDEA 2026.1
3. 数据库:SQLite3(无需部署数据库服务,开箱即用)
4. 核心依赖包:sqlite-jdbc驱动、JFreeChart图表绘制工具
5. 协作工具:Gitee组织仓库、Issues任务管理、Pull Request代码审核
三、系统MVC分层架构设计
项目严格分层,代码低耦合,便于分工开发与后期维护:
1. Model实体层
Student、Grade、User三个实体类,分别映射数据库学生表、成绩表、用户表,封装对应数据属性与get/set方法。
2. DAO持久层
StudentDAO、GradeDAO、UserDAO封装全部SQLite增删改查逻辑;DatabaseManager统一管理数据库连接、程序启动自动建表初始化。
3. Service业务层
封装业务校验与统计逻辑:学生信息合法性校验、成绩总分/平均分计算、CSV文件读写导出、排名排序等。
4. View视图层
基于Swing实现全部桌面窗口:登录窗口、主窗口、学生管理面板、成绩录入/查询面板、报表统计面板、柱状图面板。
四、小组分工明细(表格插入)
组员 负责模块 开发文件清单 核心工作职责
吴文轩 学生管理模块 App.java、LoginFrame.java、MainFrame.java、StudentPanel.java、StudentService.java、StudentDAO.java、Student.java 程序启动入口、登录页面、主窗口框架、学生信息全套增删改查界面与数据库逻辑
夏伟琳 成绩管理模块 GradePanel.java、SearchPanel.java、GradeService.java、GradeDAO.java、Grade.java、DatabaseManager.java 全局数据库初始化、成绩录入界面、多条件成绩查询、成绩数据持久化操作
车艳洁 报表统计模块 ReportPanel.java、ReportService.java、DataGenerator.java、ChartPanel.java、User.java、UserDAO.java 用户登录校验、班级成绩统计排名、CSV导入导出、柱状图可视化、批量测试数据生成、项目整体联调测试
五、核心功能演示说明
1. 用户登录功能:区分管理员、普通用户权限,校验账号密码,登录成功跳转主窗口;
2. 学生管理功能:支持新增、删除、修改学生信息,支持学号/姓名模糊检索;
3. 成绩管理功能:录入多科目成绩,自动计算总分、班级平均分、最高分最低分;
4. 报表统计功能:展示全班成绩排名,一键导出CSV文件,生成各科平均分柱状图;
5. 测试工具:一键批量生成随机学生、成绩测试数据,快速填充数据库用于演示。
六、团队Gitee协作开发流程
1. 仓库搭建:组长创建Gitee普通组织,新建团队仓库,将两名组员添加为仓库开发者;
2. 任务拆分:组长提前创建全部Issues,按模块分配给对应组员,实时跟踪开发进度;
3. 分支规范:禁止直接推送代码至master主分支,每位成员新建feat-功能名独立分支开发;
4. 代码提交规范:提交备注绑定任务编号,格式#Issue编号 完成XX功能;
5. 代码合并:功能自测完成后提交Pull Request,组长审核无Bug后合并至主分支。
七、开发过程遇到的问题与解决方案
1. 问题:JDK26运行SQLite驱动弹出native access警告
解决:在IDEA运行配置中添加VM参数 --enable-native-access=ALL-UNNAMED,消除安全警告,不影响数据库功能。
2. 问题:Swing窗口运行后一闪而过,无法正常显示
解决:所有界面初始化代码放入SwingUtilities.invokeLater()中执行,同时设置窗口关闭策略setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)。
3. 问题:提交Pull Request提示账号安全等级过低创建失败
解决:进入Gitee个人设置,绑定QQ第三方账号提升账号安全评分,即可正常提交PR。
八、项目源码地址
项目完整代码开源仓库:https://gitee.com/你的组织地址/StudentsGradeManage
九、项目开发总结
本次小组课程设计完整实践了MVC分层开发、Swing桌面程序开发、SQLite数据库操作,同时熟练掌握基于Gitee的多人团队协作模式。
通过Issues拆分任务、分支开发、代码审核,规范了团队开发流程,锻炼了需求拆解、分工配合、问题排查的综合开发能力。