中小学数学卷子自动生成程序zgc1 #2

Merged
pta2mvbfs merged 3 commits from develop into main 5 months ago

@ -0,0 +1,152 @@
# 中小学数学卷子自动生成程序 - 项目说明文档
## 项目概述
本项目是一个基于Java开发的中小学数学卷子自动生成程序旨在为小学、初中和高中数学老师提供便捷的题目生成工具。
## 项目信息
- **项目名称**: 中小学数学卷子自动生成程序
- **开发语言**: Java
- **开发环境**: JDK 8+
- **项目类型**: 命令行应用程序
- **目标用户**: 小学、初中、高中数学老师
## 功能特性
### 1. 用户认证系统
- 支持用户名密码登录验证
- 预设小学、初中、高中各3个账户
- 根据账户类型自动选择出题难度
### 2. 分层题目生成
- **小学题目**: 支持+、-、*、/和括号运算操作数范围1-100
- **初中题目**: 在小学基础上增加平方和开根号运算
- **高中题目**: 在初中基础上增加sin、cos、tan三角函数运算
### 3. 智能去重机制
- 自动检测历史生成的题目
- 确保同一账户类型下题目不重复
- 支持跨会话的题目历史记录
### 4. 灵活的用户交互
- 支持题目数量设置10-30题
- 支持在线切换账户类型
- 支持退出登录重新选择
### 5. 文件管理系统
- 按账户类型分文件夹存储
- 时间戳命名格式yyyy-MM-dd-HH-mm-ss.txt
- 自动创建目录结构
## 系统架构
### 核心类设计
1. **MathQuestion.java** - 数学题目数据模型
2. **User.java** - 用户账户数据模型
3. **UserManager.java** - 用户管理和认证
4. **MathQuestionGenerator.java** - 题目生成核心算法
5. **QuestionManager.java** - 题目管理和去重逻辑
6. **MathTestGenerator.java** - 主程序入口
7. **SimpleMathTestGenerator.java** - 优化版主程序
### 数据流程
```
用户登录 → 选择题目类型 → 设置题目数量 → 生成题目 → 去重检查 → 保存文件 → 显示结果
```
## 预设账户信息
| 账户类型 | 用户名 | 密码 |
|----------|--------|------|
| 小学 | 张三1, 张三2, 张三3 | 123 |
| 初中 | 李四1, 李四2, 李四3 | 123 |
| 高中 | 王五1, 王五2, 王五3 | 123 |
## 使用说明
### 启动程序
```bash
java MathTestGenerator
# 或
java SimpleMathTestGenerator
```
### 基本操作流程
1. **登录**: 输入用户名和密码,用空格分隔
2. **生成题目**: 输入题目数量10-30
3. **切换类型**: 输入"切换为小学"、"切换为初中"或"切换为高中"
4. **退出**: 输入-1退出当前用户
### 示例操作
```
请输入用户名和密码用空格隔开张三1 123
当前选择为小学出题
准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户重新登录15
正在生成15道小学数学题目...
题目已保存到文件:小学/2025-09-29-14-30-25.txt
```
## 项目目录结构
```
项目根目录/
├── src/ # 源代码目录
│ ├── MathQuestion.java
│ ├── User.java
│ ├── UserManager.java
│ ├── MathQuestionGenerator.java
│ ├── QuestionManager.java
│ ├── MathTestGenerator.java
│ └── SimpleMathTestGenerator.java
├── doc/ # 文档目录
│ └── 项目说明文档.md
├── 小学/ # 小学题目存储目录
├── 初中/ # 初中题目存储目录
├── 高中/ # 高中题目存储目录
├── 项目需求.md
├── 个人项目使用大模型后人工修改代码一览表.md
└── run_utf8.bat # 运行脚本
```
## 技术特点
### 1. 面向对象设计
- 采用MVC架构模式
- 良好的类职责分离
- 高内聚低耦合的设计原则
### 2. 算法优化
- 高效的题目生成算法
- 智能的去重机制
- 合理的随机数生成策略
### 3. 中文支持
- 完整的中文输入输出支持
- 中文路径和文件名处理
- 友好的中文用户界面
### 4. 健壮性设计
- 全面的异常处理机制
- 输入验证和错误提示
- 良好的容错能力
## 扩展性
本项目具有良好的扩展性,可以方便地:
- 添加新的题目类型和难度
- 扩展用户管理功能
- 增加题目导出格式
- 集成数据库存储
- 开发图形用户界面
## 开发环境要求
- JDK 8 或更高版本
- 支持UTF-8编码的IDE
- Windows/Linux/macOS操作系统
Loading…
Cancel
Save