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.
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.
# examSystem
## 1. 项目简介
这是一个基于C++开发的考试试卷生成系统,支持小学、初中和高中三个不同年级的数学题目自动生成。系统具有用户登录验证、题目生成、文件存储和重复检查等功能。
## 2. 功能特性
1. 用户管理
预置多个测试账户(张三、李四、王五系列)。
支持用户登录验证。
自动关联用户与题目类型。
2. 题目生成
小学题目:基础四则运算,支持括号。
初中题目:在小学基础上增加平方和开方运算。
高中题目: 增加三角函数( sin、cos、tan) 运算。
自动生成2-5个操作数的题目。
智能随机添加括号保证运算优先级计算。
3. 文件管理
自动创建用户专属目录。
支持中文用户名路径处理。
题目以时间戳命名保存。
自动检查题目重复性。
## 3. 系统要求
1. 要求需要支持C++17 或更高版本。
2. 支持C++17 filesystem的编译器。
3. Windows系统( 因使用了Windows API处理中文路径) 。
## 4. 使用说明
1. 启动程序
运行编译后的可执行文件,系统将显示欢迎界面。
2. 用户登录
使用以下预置账户登录:
```text
小学组: 张三1、张三2、张三3( 密码: 123)
初中组: 李四1、李四2、李四3( 密码: 123)
高中组: 王五1、王五2、王五3( 密码: 123)
```
3. 主要操作
登录成功后,可以进行以下操作:
```text
生成题目: 输入10-30之间的数字, 生成指定数量的题目
切换类型:输入"切换为小学/初中/高中"来改变题目类型
退出登录:输入"-1"返回登录界面
```
4. 题目保存
生成的题目将自动保存到 papers/用户名/ 目录下,文件名为生成时间戳。
5. 项目结构
```text
ExamSystem/
├── main.cpp # 程序入口
├── ExamSystem.h/cpp # 系统主控制器
├── UserManager.h/cpp # 用户管理模块
├── FileHandler.h/cpp # 文件操作模块
├── QuestionGenerator.h/cpp # 题目生成器基类
├── PrimaryGenerator.h/cpp # 小学题目生成器
├── JuniorGenerator.h/cpp # 初中题目生成器
└── SeniorGenerator.h/cpp # 高中题目生成器
```
6. 最后, 附带上g++编译指令
```text
g++ -std=c++17 -o exam_system main.cpp ExamSystem.cpp UserManager.cpp FileHandler.cpp QuestionGenerator.cpp PrimaryGenerator.cpp JuniorGenerator.cpp SeniorGenerator.cpp
```