diff --git a/doc/项目说明文档.md b/doc/项目说明文档.md new file mode 100644 index 0000000..f3fd22e --- /dev/null +++ b/doc/项目说明文档.md @@ -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操作系统 + +