# 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 ```