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.

95 lines
2.7 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.

# 个人项目:中小学数学卷子自动生成程序
## 项目信息
- **班级**[软件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