# 🎓 CSU 选课助手
一个基于 **PyQt5 + Flask** 的图形化自动抢课工具,适用于中南大学教务系统。
---
## 🚀 功能介绍
- 图形化界面,支持一键抢多个课程
- 自动处理验证码,快速提交请求
- 实时反馈选课结果与冲突信息
- 支持打包为 `.exe` 程序,便于他人使用
---
## 📂 项目结构
CSUSelectCourse/ ├── backend/ # 后端 Flask 接口服务 │ ├── app.py # 启动后端服务 │ └── logic.py # 选课请求与验证码逻辑 ├── frontend/ # 前端 PyQt5 图形界面 │ └── main.py # 图形界面主程序 ├── run.py # 启动前后端总入口 ├── requirements.txt # 依赖列表 ├── .gitignore # Git 忽略配置 └── README.md # 项目说明文档
---
## 🖥️ 使用说明
### ✅ 安装依赖
```bash
pip install -r requirements.txt
python run.py
需先安装 PyInstaller:
pip install pyinstaller
然后执行打包命令:
pyinstaller run.py --noconsole --onedir --clean --hidden-import=requests --hidden-import=PyQt5
打包完成后,dist/run/
目录下的 run.exe
即为可执行文件。
课程 ID 是一个 6 位数字,用于表示每门课程的唯一编号。
-
打开中南大学教务系统:课程表查询页面(教师)
-
输入学期、教师姓名后点击“查询”
-
课表格子中间的 6 位数字即为课程 ID
- 程序默认验证码图片由后端
Flask
提供,如无法获取请检查后端是否启动 - 推荐使用 Python 3.9 / 3.10 环境,避免兼容性问题
- 打包时务必将整个
dist/run/
文件夹打包给他人,而不仅是单个.exe
文件
- 程序不会上传账号密码,所有数据仅保存在本地
- 不会对任何选课系统造成负担,仅供学习交流使用
本项目仅为学习使用,作者不对使用本程序造成的任何后果负责。请合理使用,尊重教务系统公平机制。
如需反馈问题或提出建议,请通过 GitHub Issue 联系我,欢迎 Star 🌟 本项目支持持续优化。
---