一个基于Qt和MySQL的教学管理系统,支持多角色(学生、教师、管理员)权限管理,提供完整的教务管理功能。
- 学生角色:使用学号登录,查看个人信息和选课记录
- 教师角色:使用工号登录,管理个人信息、授课安排和学生成绩
- 管理员角色:使用账号登录,拥有系统最高权限
- 学生管理 - 查看学生信息
- 教师管理 - 查看教师信息
- 课程管理 - 查看课程信息
- 授课管理 - 查看教师授课安排
- 选课管理 - 查看学生选课和成绩
- 用户管理 - 管理系统用户账户
- SQL执行 - 直接执行SQL语句进行数据库操作
- 个人信息 - 查看和修改个人资料
- 我的授课 - 查看所授课程安排
- 学生成绩 - 管理所教课程的学生成绩
- 密码修改 - 修改登录密码
- 个人信息 - 查看个人资料
- 我的选课 - 查看已选课程和成绩
- 密码修改 - 修改登录密码
- 自动数据库初始化
- 配置管理持久化
- 安全的用户验证系统
- 智能SQL执行器
- 友好的用户界面
- Qt版本: Qt 6.9.3+
- C++标准: C++17
- 数据库: MySQL 8.0+
- 编译器: MinGW/MSVC
- Windows 7/10/11 或 Linux
- MySQL服务器
- Qt运行时库
- 下载并安装MySQL 8.0+
- 启动MySQL服务
- 创建数据库用户(或使用root账号)
- 下载Qt安装程序
- 选择组件:Qt Core, GUI, Widgets, SQL
- 配置编译器(MinGW或MSVC)
# 根据实际MySQL安装路径修改
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
LIBS += -L"C:\Program Files\MySQL\MySQL Server 8.0\lib" -llibmysql-- 默认配置(可在程序中修改)
主机: localhost
端口: 3306
用户名: root
密码: 123456
数据库: teaching_manager# 使用qmake
qmake TeachingManager.pro
make
# 或使用Qt Creator打开TeachingManager.pro首次运行时,系统会自动:
- 创建数据库和表结构
- 执行初始化脚本(如存在)
- 创建默认管理员账户
- 账号:admin
- 密码:admin123
如果需要手动初始化,可运行项目目录下的初始化脚本:
# Windows
init_test_data.bat
# 或手动执行SQL脚本
mysql -u root -p < init_database.sqlTeachingManager/
├── TeachingManager.pro # Qt项目文件
├── main.cpp # 程序入口
├── database.h/cpp # 数据库操作类
├── user.h/cpp # 用户类和权限管理
├── basewindow.h/cpp # 基础窗口类
├── mainwindow.h/cpp # 管理员主窗口
├── teacherwindow.h/cpp # 教师窗口
├── studentwindow.h/cpp # 学生窗口
├── logindialog.h/cpp/ui # 登录对话框
├── configmanager.h/cpp # 配置管理
├── init_test_data.bat # 初始化脚本
└── README.md # 说明文档
- 确保MySQL服务已启动
- 运行程序,系统会自动检测并配置数据库
- 使用默认管理员账户登录(admin/admin123)
- 学生登录:选择"学生"角色,输入学号和密码
- 教师登录:选择"教师"角色,输入工号和密码
- 管理员登录:选择"管理员"角色,输入账号和密码
- 修改密码:在各角色的"个人信息"标签页中修改
- 刷新数据:点击表格上方的"刷新"按钮
- 退出登录:点击右上角"退出登录"按钮
系统包含以下核心表:
users- 用户账户表students- 学生信息表teachers- 教师信息表courses- 课程信息表teachings- 授课关系表enrollments- 选课关系表
基于用户角色的权限控制:
- 学生(0):查看个人信息、选课记录
- 教师(1):查看个人信息、授课安排、管理学生成绩
- 管理员(2):系统所有权限,包括用户管理
如需添加新功能:
- 继承
BaseWindow类创建新窗口 - 在
Database类中添加对应数据操作方法 - 在主程序逻辑中根据角色创建对应窗口
- 检查MySQL服务是否运行
- 验证数据库配置信息
- 检查防火墙设置
- 确认TeachingManager.pro中的路径正确
- 检查libmysql.dll是否存在
- 确认用户角色选择正确
- 检查用户名和密码
- 查看数据库用户表是否正确初始化
程序会在控制台输出调试信息,包括:
- 数据库连接状态
- 用户登录记录
- SQL执行结果
本项目为教学演示项目,可用于学习和研究目的。
- 基础教学管理系统
- 支持学生、教师、管理员三角色
- 完整的CRUD操作
- SQL执行器功能
如有问题或建议,请联系项目维护者。
注意:此为教学项目,实际部署时请考虑安全性优化和生产环境配置。