You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
4.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 中小学数学卷子自动生成程序
## 项目简介
这是一个基于 C++ 开发的中小学数学卷子自动生成程序,支持小学、初中、高中三种难度,能够自动生成符合学段要求的数学题目,并为每位教师账号按时间戳保存试卷文件。
## 客户机部署步骤(详细)
本节说明如何在客户机(以 Windows 为主)部署并运行本程序。
### 一、系统要求
- 操作系统Windows 10/1164 位)
- 磁盘空间:至少 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班 - 沈永佳