Java GUI学生成绩管理系统
基于 Swing + MySQL 的桌面应用开发实践 (PS:文章底部可以免费获取程序源码,免费领取!免费领取!免费领取!)
一、前言
学生成绩管理系统是高校信息化管理的重要组成部分。本文将详细介绍一个基于 Java Swing 图形界面框架和 MySQL 数据库开发的学生成绩管理系统,系统支持三种角色(管理员、教师、学生)登录,实现了完整的成绩管理业务流程。
二、技术栈介绍
2.1 核心技术
| 技术 | 版本 | 说明 |
|---|---|---|
| Java | JDK 8+ | 开发语言 |
| Swing | 内置 | GUI 图形界面框架 |
| JDBC | 5.1.36 | 数据库连接驱动 |
| MySQL | 5.5+ | 关系型数据库 |
2.2 开发工具
- IDE:Eclipse
- 数据库管理:Navicat / MySQL Workbench
- JDK版本:1.8 及以上
2.3 架构模式
本项目采用经典的 MVC 分层架构:
┌─────────────────────────────────────┐
│ View 层 (视图层) │
│ Login.java / Frame.java │
├─────────────────────────────────────┤
│ Service 层 (业务层) │
│ Frame.java / StudentFrame.java │
│ TeacherFrame.java │
├─────────────────────────────────────┤
│ Dao 层 (数据层) │
│ StudentDao.java / GradeInfoDao.java│
│ Connections.java (数据库连接) │
└─────────────────────────────────────┘
三、系统功能介绍
3.1 系统角色与权限
系统设计了三种用户角色,每种角色拥有不同的功能权限:
| 角色 | 功能权限 |
|---|---|
| 管理员 | 学院管理、用户管理、学生管理、班级管理、教师管理、成绩管理、课程管理、统计课程成绩 |
| 教师 | 学生管理、班级管理、成绩管理、课程管理 |
| 学生 | 查询个人信息、查看课程、修改密码 |
3.2 功能模块详解
3.2.1 登录模块 (Login.java)
- 支持三种身份选择登录
- 用户名密码验证
- 根据角色跳转到不同主界面
// 身份选择下拉框
jb3 = new JComboBox();
jb3.addItem("学生");
jb3.addItem("管理员");
jb3.addItem("教师");
3.2.2 管理员功能模块
| 功能模块 | 对应类 | 功能描述 |
|---|---|---|
| 学院管理 | AcademyManager.java | 增删改查学院信息 |
| 用户管理 | UserManager.java | 管理系统用户账号 |
| 学生管理 | StudentDao.java | 学生信息的增删改查 |
| 班级管理 | BanJiManager.java | 班级信息管理 |
| 教师管理 | TeacherManager.java | 教师信息管理 |
| 成绩管理 | GradeInfoDao.java | 学生成绩的录入与查询 |
| 课程管理 | CourseManager.java | 课程信息的维护 |
3.2.3 教师功能模块
教师拥有部分管理权限,可管理:
- 学生信息
- 班级信息
- 成绩录入与修改
- 课程信息
3.2.4 学生功能模块
学生只能进行查询操作:
- 查询个人信息 (StudentSearch.java)
- 查看课程 (CourseSearch.java)
- 修改密码 (ChangePwdDao.java)
四、数据库设计
4.1 数据库连接配置
// Connections.java
public Connection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/grades",
"root",
"123456"
);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
4.2 核心数据表
根据代码分析,系统包含以下核心数据表:
| 表名 | 说明 |
|---|---|
student | 学生信息表 |
teacher | 教师信息表 |
user | 用户登录表 |
course | 课程信息表 |
grade | 成绩信息表 |
academy | 学院信息表 |
banji | 班级信息表 |
五、核心代码解析
5.1 管理员主界面 (Frame.java)
管理员主界面采用工具栏布局,集成所有管理功能:
public void tool(){
JButton btn1 = new JButton("学院管理");
JButton btn2 = new JButton("用户管理");
JButton btn5 = new JButton("学生管理");
JButton btn6 = new JButton("班级管理");
JButton btn7 = new JButton("教师管理");
JButton btn8 = new JButton("成绩管理");
JButton btn9 = new JButton("课程管理");
JButton btn11 = new JButton("统计课程成绩");
// 为每个按钮添加事件监听器
btn1.addActionListener(e -> new AcademyManager());
btn2.addActionListener(e -> new UserManager());
// ...
}
5.2 数据表格展示
系统大量使用 JTable 组件展示数据:
String[] columnName = {"学号", "姓名", "性别", "班级"};
String[][] tableValues = new String[20][columnName.length];
table = new JTable(tableValues, columnName);
table.setBounds(30, 100, 620, 320);
js = new JScrollPane(table);
5.3 CRUD 操作实现
以 StudentDao 为例,实现了完整的增删改查:
- 查询 (search):从数据库读取数据填充表格
- 增加 (add):弹出对话框添加新记录
- 修改 (update):选中行后修改数据
- 删除 (delete):删除选中记录
六、系统特点
6.1 优点
- 界面简洁直观:采用 Swing 原生组件,操作简单
- 权限分级明确:三种角色权限划分清晰
- 功能完整:覆盖成绩管理的完整业务流程
- 代码结构清晰:MVC 分层,便于维护扩展
6.2 可优化方向
- 界面美化:可引入 JavaFX 或第三方皮肤库
- 数据验证:增加输入数据的合法性校验
- 报表导出:添加 Excel/PDF 导出功能
- 连接池:使用 Druid 或 HikariCP 优化数据库连接
七、运行截图说明
学生角色
老师角色
管理员角色
管理员可以管理所有系统数据
八、总结
本项目是一个典型的 Java Swing 桌面应用开发案例,涵盖了:
- Swing GUI 编程
- JDBC 数据库操作
- MVC 架构设计
- 多角色权限控制
适合作为 Java 课程设计或毕业设计参考项目。通过本项目,可以深入理解 Java 桌面应用开发的核心技术,为后续学习 Java Web 开发打下坚实基础。
源码获取:可以关注公众号【代码师兄】,回复111 ,免费获取!免费获取!免费获取!
技术交流:如有问题欢迎在评论区留言讨论
📌 标签:#Java #Swing #MySQL #学生成绩管理系统 #课程设计 #桌面应用