# 中小学数学卷子自动生成程序 ## 项目简介 这是一个基于 C++ 开发的中小学数学卷子自动生成程序,支持小学、初中、高中三种难度,能够自动生成符合学段要求的数学题目,并为每位教师账号按时间戳保存试卷文件。 ## 客户机部署步骤(详细) 本节说明如何在客户机(以 Windows 为主)部署并运行本程序。 ### 一、系统要求 - 操作系统:Windows 10/11(64 位) - 磁盘空间:至少 100 MB(用于保存试卷与历史) - 运行权限:对安装目录具有读写权限(建议在用户目录或桌面下) ### 二、部署包内容 将以下文件放在同一目录(建议目录名如 `MathExamGenerator/`): - `math_exam_generator.exe`(主程序) - `libgcc_s_seh-1.dll`(运行时依赖) - `libstdc++-6.dll`(运行时依赖) - `libwinpthread-1.dll`(运行时依赖) 以上三个 DLL 为 MinGW/GCC 运行时依赖,必须与可执行文件位于同一目录。 ### 三、Windows 客户机部署步骤 1. 在客户机上创建目录,例如:`C:\Users\<用户名>\Desktop\MathExamGenerator`。 2. 将部署包中的 1 个可执行文件与 3 个 DLL 一并复制到该目录。 3. 首次运行方式: - 双击 `math_exam_generator.exe`,或 - 在 PowerShell 中进入目录并执行:`./math_exam_generator.exe` 4. 程序将打开控制台提示登录与生成试卷(见“运行与使用”)。 ### 四、运行与使用 - 登录账号(预置示例,可用于验证部署是否成功): - 小学:`张三1`、`张三2`、`张三3`(密码均为 `123`) - 初中:`李四1`、`李四2`、`李四3`(密码均为 `123`) - 高中:`王五1`、`王五2`、`王五3`(密码均为 `123`) - 登录成功后,程序会提示: - 输入生成题目数量(范围 `10`–`30`),如输入 `20`。 - 支持指令切换难度:输入 `切换为小学`、`切换为初中`、`切换为高中`。 - 输入 `-1` 退出当前登录用户并返回登录界面。 - 按 `Ctrl+C` 可中断当前交互并安全返回主流程。 ### 五、试卷保存位置与历史 - 程序会在当前工作目录下自动创建:`paper/<用户名>/`。 - 每次生成的试卷文件命名格式:`YYYY-MM-DD-HH-MM-SS.txt`(时间戳)。 - 同目录下会维护 `/.history.txt`,用于避免重复题目。 ### 六、升级与卸载 - 升级: - 用新版本的 `math_exam_generator.exe` 直接替换旧文件(保持目录结构与 DLL 不变)。 - 建议保留 `paper/` 目录以延续历史记录。 - 卸载: - 删除安装目录(例如 `MathExamGenerator/`)。 - 如不再需要历史与试卷,可一并删除 `paper/` 目录。 ### 七、常见问题(FAQ) - 运行时报错“缺少 DLL”或“找不到入口”: - 请确认 `libgcc_s_seh-1.dll`、`libstdc++-6.dll`、`libwinpthread-1.dll` 与可执行文件在同一目录。 - 中文显示异常或乱码: - 建议在 Windows Terminal/PowerShell 中运行,程序已内置中文本地化处理;如仍异常,请尝试切换终端字体或编码。 - 无法生成试卷或提示无权限: - 确认安装目录对当前用户有写权限;避免使用受限制的系统目录(如 `C:\Program Files`)。 - 题目数量提示不在范围: - 请输入 `10`–`30` 的整数;否则程序会提示重新输入。 ### 八、Linux / macOS 编译与部署(可选) - 在具备 `g++` 的环境下编译: ```bash cd src make # 或 g++ -std=c++17 -Wall -Wextra -O2 -o math_exam_generator main.cc app.cc auth.cc exam.cc login.cc utils.cc ``` - 将生成的可执行文件 `math_exam_generator` 放置到目标目录并运行:`./math_exam_generator` ## 快速开始 - 进入 `src` 目录 - Windows:运行 `./math_exam_generator.exe` - Linux / macOS:运行 `./math_exam_generator` ## 编译(如需重新构建) ```bash cd src make ``` 或使用手动编译: ```bash cd src g++ -std=c++17 -Wall -Wextra -O2 -o math_exam_generator main.cc app.cc auth.cc exam.cc login.cc utils.cc ``` ## 项目结构 ``` ├── doc/ # 项目文档 └── src/ # 源代码与可执行文件 ``` 更多详细说明(功能特性、预设账号、使用步骤、试卷示例等),请参阅 `doc/README.md`。 ## 作者 软件2301班 - 沈永佳