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.

139 lines
3.9 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++ 11+
- 编译器GCC 4.8+ 或 MSVC 支持C++11的版本
- 操作系统Windows
### 安装步骤
1. 克隆项目:
```bash
git clone https://bdgit.educoder.net/hnu202326010132/MathTestGenerator.git
```
2. 编译项目
### 运行程序
**Windows**
```bash
./项目1
```
### 登录系统
系统启动后显示欢迎界面,使用以下预设账号登录:
小学老师张三1/123, 张三2/123, 张三3/123
初中老师李四1/123, 李四2/123, 李四3/123
高中老师王五1/123, 王五2/123, 王五3/123
### 主菜单操作
登录成功后显示主菜单:
========================================
中小学数学卷子自动生成程序
========================================
当前用户: 张三1 [当前选择为小学出题]
请选择操作:
1. 生成题目
2. 切换难度
3. 退出登录
4. 退出程序
输入选项 (1-4):
### 生成题目
选择1后系统提示
准备生成小学数学题目请输入生成题目数量10-30输入-1返回主菜单:
输入10-30之间的数字系统自动生成对应数量的题目。
### 切换难度
选择2后系统提示
请输入要切换的难度(切换为小学/切换为初中/切换为高中):
输入正确的切换命令后,系统确认切换成功。
### 文件保存
生成的题目自动保存到papers文件夹
papers/
└── 用户名_questions/
└── 2025-09-27-14-30-25.txt
## 配置说明
系统使用预设账号:
| 年级 | 账号 | 密码 |
| :--- | :--- | :--- |
| 小学账号 | 张三1, 张三2, 张三3 | 密码: 123 |
| 初中账号 | 李四1, 李四2, 李四3 | 密码: 123 |
| 高中账号 | 王五1, 王五2, 王五3 | 密码: 123 |
## 项目文件结构
```
软件2301_喀迪尔·斯迪克_个人项目/
├── src/ # 源代码目录
│ ├── main.cpp # 主程序入口
│ ├── Teacher.h/cpp # 教师信息类
│ ├── LoginService.h/cpp # 登录服务类
│ ├── QuestionGenerator.h/cpp # 题目生成器
│ ├── FileService.h/cpp # 文件服务类
│ ├── Validator.h/cpp # 输入验证器
│ ├── IQuestionGenerator.h # 题目生成接口
│ └── Difficulty.h # 难度枚举定义
├── doc/ # 文档目录
│ └── README.md # 说明文档
└── papers/ # 生成的试卷文件(运行时自动创建)
```
## 技术栈
- **后端语言:** C++ 11
- **文件处理:** 跨平台文件操作
- **用户界面:** 命令行交互界面
## 作者
- **姓名:** 喀迪尔·斯迪克
- **班级:** 软件2301
- **项目地址:** https://git.educoder.net/你的用户名/软件2301_喀迪尔·斯迪克_个人项目