# 个人项目:中小学数学卷子自动生成程序 ## 项目信息 - **班级**:[软件2301] - **姓名**:[周禹彤] - **学号**:[202326010102] - **项目名称**:中小学数学卷子自动生成程序 - **提交时间**:2025年9月29日 ## 项目简介 本项目是一个命令行界面的中小学数学卷子自动生成程序,主要为小学、初中和高中数学老师提供便捷的题目生成服务。系统支持用户登录验证、题目生成、难度切换、题目查重和文件保存等功能。 ## 功能特性 ### 1. 用户认证 - 支持小学、初中、高中各三个预设账户登录 - 用户名和密码验证 - 登录成功后显示当前出题类型 ### 2. 题目生成 - **小学题目**:支持 +、-、*、/ 四则运算,包含括号 - **初中题目**:至少包含平方或开根号运算符 - **高中题目**:至少包含 sin、cos、tan 三角函数 - 题目数量范围:10-30道 - 操作数范围:1-100 ### 3. 功能操作 - **切换难度**:支持在登录状态下切换小学、初中、高中三种难度 - **题目查重**:检查新生成题目与历史题目是否重复 - **文件保存**:按用户分文件夹保存,文件名格式:年-月-日-时-分-秒.txt ## 项目结构 ```plaintext 软件2301_周禹彤_个人项目 ├── src │ ├── main.cpp # 应用程序入口点 │ ├── auth.cpp # 认证系统实现 │ ├── file_manager.cpp # 文件管理器实现 │ ├── question_generator.cpp # 题目生成器实现 │ ├── user.cpp # 用户类实现 │ ├── auth.h # 认证系统头文件 │ ├── file_manager.h # 文件管理器头文件 │ ├── question_generator.h # 题目生成器头文件 │ ├── user.h # 用户类头文件 │ └── utils.h # 工具函数头文件 └── doc └── README.md # 项目文档 ``` ## 类设计说明 ### 1. AuthSystem (认证系统) - 负责用户登录验证 - 管理预设用户账户 - 提供用户身份验证功能 ### 2. QuestionGenerator (题目生成器) - 根据难度级别生成相应题目 - 支持小学、初中、高中三种难度 - 确保题目符合各难度要求 ### 3. FileManager (文件管理器) - 处理文件保存操作 - 实现题目查重功能 - 管理用户文件夹结构 ### 4. User (用户类) - 封装用户信息 - 提供用户权限管理 - 支持难度切换 ## 编译运行 ### 环境要求 - C++17 或更高版本 - GCC 编译器 - 支持文件系统操作的操作系统 ### 编译命令 ```bash cd src make