Java GUI学生成绩管理系统【完整功能+源码】

0 阅读4分钟

Java GUI学生成绩管理系统

基于 Swing + MySQL 的桌面应用开发实践 (PS:文章底部可以免费获取程序源码,免费领取!免费领取!免费领取!)


一、前言

学生成绩管理系统是高校信息化管理的重要组成部分。本文将详细介绍一个基于 Java Swing 图形界面框架和 MySQL 数据库开发的学生成绩管理系统,系统支持三种角色(管理员、教师、学生)登录,实现了完整的成绩管理业务流程。


二、技术栈介绍

2.1 核心技术

技术版本说明
JavaJDK 8+开发语言
Swing内置GUI 图形界面框架
JDBC5.1.36数据库连接驱动
MySQL5.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 优点

  1. 界面简洁直观:采用 Swing 原生组件,操作简单
  2. 权限分级明确:三种角色权限划分清晰
  3. 功能完整:覆盖成绩管理的完整业务流程
  4. 代码结构清晰:MVC 分层,便于维护扩展

6.2 可优化方向

  1. 界面美化:可引入 JavaFX 或第三方皮肤库
  2. 数据验证:增加输入数据的合法性校验
  3. 报表导出:添加 Excel/PDF 导出功能
  4. 连接池:使用 Druid 或 HikariCP 优化数据库连接

七、运行截图说明

学生角色

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

老师角色

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

管理员角色

在这里插入图片描述

管理员可以管理所有系统数据


八、总结

本项目是一个典型的 Java Swing 桌面应用开发案例,涵盖了:

  • Swing GUI 编程
  • JDBC 数据库操作
  • MVC 架构设计
  • 多角色权限控制

适合作为 Java 课程设计或毕业设计参考项目。通过本项目,可以深入理解 Java 桌面应用开发的核心技术,为后续学习 Java Web 开发打下坚实基础。


源码获取:可以关注公众号【代码师兄】,回复111 ,免费获取!免费获取!免费获取!

技术交流:如有问题欢迎在评论区留言讨论


📌 标签:#Java #Swing #MySQL #学生成绩管理系统 #课程设计 #桌面应用