Skip to content

Henry-916/TeachingManager

Repository files navigation

教学管理系统 (Teaching Manager)

项目概述

一个基于Qt和MySQL的教学管理系统,支持多角色(学生、教师、管理员)权限管理,提供完整的教务管理功能。

功能特性

🎯 多角色登录系统

  • 学生角色:使用学号登录,查看个人信息和选课记录
  • 教师角色:使用工号登录,管理个人信息、授课安排和学生成绩
  • 管理员角色:使用账号登录,拥有系统最高权限

📊 主要功能模块

管理员功能

  1. 学生管理 - 查看学生信息
  2. 教师管理 - 查看教师信息
  3. 课程管理 - 查看课程信息
  4. 授课管理 - 查看教师授课安排
  5. 选课管理 - 查看学生选课和成绩
  6. 用户管理 - 管理系统用户账户
  7. SQL执行 - 直接执行SQL语句进行数据库操作

教师功能

  1. 个人信息 - 查看和修改个人资料
  2. 我的授课 - 查看所授课程安排
  3. 学生成绩 - 管理所教课程的学生成绩
  4. 密码修改 - 修改登录密码

学生功能

  1. 个人信息 - 查看个人资料
  2. 我的选课 - 查看已选课程和成绩
  3. 密码修改 - 修改登录密码

🔧 技术特色

  • 自动数据库初始化
  • 配置管理持久化
  • 安全的用户验证系统
  • 智能SQL执行器
  • 友好的用户界面

系统要求

开发环境

  • Qt版本: Qt 6.9.3+
  • C++标准: C++17
  • 数据库: MySQL 8.0+
  • 编译器: MinGW/MSVC

运行环境

  • Windows 7/10/11 或 Linux
  • MySQL服务器
  • Qt运行时库

安装部署

1. 环境准备

安装MySQL

  1. 下载并安装MySQL 8.0+
  2. 启动MySQL服务
  3. 创建数据库用户(或使用root账号)

安装Qt

  1. 下载Qt安装程序
  2. 选择组件:Qt Core, GUI, Widgets, SQL
  3. 配置编译器(MinGW或MSVC)

2. 项目配置

修改MySQL路径配置(TeachingManager.pro)

# 根据实际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

3. 编译项目

# 使用qmake
qmake TeachingManager.pro
make

# 或使用Qt Creator打开TeachingManager.pro

数据库初始化

自动初始化

首次运行时,系统会自动:

  1. 创建数据库和表结构
  2. 执行初始化脚本(如存在)
  3. 创建默认管理员账户
    • 账号:admin
    • 密码:admin123

手动初始化

如果需要手动初始化,可运行项目目录下的初始化脚本:

# Windows
init_test_data.bat

# 或手动执行SQL脚本
mysql -u root -p < init_database.sql

项目结构

TeachingManager/
├── 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                    # 说明文档

使用指南

首次使用

  1. 确保MySQL服务已启动
  2. 运行程序,系统会自动检测并配置数据库
  3. 使用默认管理员账户登录(admin/admin123)

角色切换

  • 学生登录:选择"学生"角色,输入学号和密码
  • 教师登录:选择"教师"角色,输入工号和密码
  • 管理员登录:选择"管理员"角色,输入账号和密码

常用操作

  1. 修改密码:在各角色的"个人信息"标签页中修改
  2. 刷新数据:点击表格上方的"刷新"按钮
  3. 退出登录:点击右上角"退出登录"按钮

开发说明

数据库设计

系统包含以下核心表:

  • users - 用户账户表
  • students - 学生信息表
  • teachers - 教师信息表
  • courses - 课程信息表
  • teachings - 授课关系表
  • enrollments - 选课关系表

权限控制

基于用户角色的权限控制:

  • 学生(0):查看个人信息、选课记录
  • 教师(1):查看个人信息、授课安排、管理学生成绩
  • 管理员(2):系统所有权限,包括用户管理

扩展开发

如需添加新功能:

  1. 继承BaseWindow类创建新窗口
  2. Database类中添加对应数据操作方法
  3. 在主程序逻辑中根据角色创建对应窗口

故障排除

常见问题

1. 无法连接数据库

  • 检查MySQL服务是否运行
  • 验证数据库配置信息
  • 检查防火墙设置

2. 编译错误:找不到MySQL库

  • 确认TeachingManager.pro中的路径正确
  • 检查libmysql.dll是否存在

3. 登录失败

  • 确认用户角色选择正确
  • 检查用户名和密码
  • 查看数据库用户表是否正确初始化

日志查看

程序会在控制台输出调试信息,包括:

  • 数据库连接状态
  • 用户登录记录
  • SQL执行结果

许可证

本项目为教学演示项目,可用于学习和研究目的。

版本历史

v1.0.1

  • 基础教学管理系统
  • 支持学生、教师、管理员三角色
  • 完整的CRUD操作
  • SQL执行器功能

联系方式

如有问题或建议,请联系项目维护者。


注意:此为教学项目,实际部署时请考虑安全性优化和生产环境配置。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages