# 数学题目生成系统项目说明文档 ## 1. 项目概述 ### 1.1 项目名称 中小学数学卷子自动生成程序 (Math Puzzle System) ### 1.2 项目简介 数学题目生成系统是一个基于Java开发的教育类应用程序,专门用于生成不同教育级别的数学题目。系统支持小学、初中和高中三个级别的题目生成,并提供用户管理、题目去重、试卷保存等功能。 ### 1.3 项目目标 - 为不同教育级别的学生提供定制化的数学练习题目 - 避免生成重复题目,提高学习效率 - 提供用户管理功能,支持多用户使用 - 生成的题目可保存为文件,便于打印和复习 ## 2. 功能特性 ### 2.1 用户管理 - **用户注册/登录**:支持现有用户登录系统 - **用户级别切换**:支持在小学、初中、高中三个级别间动态切换 - **个性化存储**:为每个用户创建独立的目录存储历史题目 ### 2.2 题目生成 - **小学级别**:生成包含四则运算和括号的简单数学题目,且保证运算结果不会出现负数 - **初中级别**:生成包含四则运算、平方、开根号的数学题目 - **高中级别**:生成包含四则运算和三角函数(sin、cos、tan)的数学题目 ### 2.3 题目去重 - **历史题目检查**:自动检查用户历史题目,避免生成与前述txt文件中的重复题目 - **会话内去重**:防止同一次生成过程中出现重复题目 ### 2.4 文件管理 - **自动目录创建**:为每个用户创建专属目录 - **时间戳命名**:生成的试卷以时间戳命名,确保唯一性 - **格式化输出**:题目按照标准格式:前有题号,题干之间添加一行间隔,便于阅读 ## 3. 系统架构 ### 3.1 核心模块 #### 3.1.1 控制器层 (Controller) - `StartController`:系统主控制器,处理用户交互和系统流程控制 #### 3.1.2 服务层 (Service) - `QuestionGenerator`:题目生成器接口 - `PrimarySchoolGenerator`:小学题目生成器 - `JuniorHighGenerator`:初中题目生成器 - `SeniorHighGenerator`:高中题目生成器 - `CaculatePrimary`:小学数学表达式计算器(保证结果不出现负数) - `FileHandler`:文件处理器 - `QuestionDeduplicator`:题目去重器 #### 3.1.3 实体层 (Entity) - `User`:用户实体类,包含用户名、密码和级别信息 ### 3.2 交互流程 1. 用户启动程序 2. 系统要求用户登录 3. 用户选择题目数量和级别 4. 系统生成相应级别的数学题目 5. 题目去重检查 6. 生成结果展示并保存到文件 ## 4. 使用说明 ### 4.1 操作系统要求 - Windows 10/11 ### 4.2 启动程序 ```bash java -jar .\mathpuzzle.jar ``` ### 4.3 cmd/powershell编码要求 ```bash [Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ``` ### 4.4 JDK/JRE版本要求 - JDK/JRE 17或更高版本 ### 4.5 用户操作 1. **登录**:输入用户名和密码进行登录 2. **输入题目数量**:输入10-30之间的数字(输入-1退出当前用户) 3. **切换级别**:输入"切换为XX"指令切换到相应级别(如"切换为初中") 4. **查看结果**:系统生成题目并显示,同时保存到用户目录 ### 4.6 文件结构 ``` ./ ├── [用户名]/ │ ├── 2024-01-01-12-00-00.txt │ ├── 2024-01-01-12-05-30.txt │ └── ... ``` ## 5. 技术特点 ### 5.1 设计模式 - **策略模式**:不同级别的题目生成器实现统一接口 - **工厂模式**:根据用户级别动态创建相应的题目生成器 ### 5.2 算法特色 - **双栈算法**:用于计算小学级别的数学表达式 - **随机生成算法**:确保题目多样性和随机性 - **智能去重算法**:避免生成重复题目 ### 5.3 代码规范 - 遵循Google Java编码规范 - 完整的Javadoc文档 - 清晰的包结构和类设计 ## 6. 系统要求 ### 6.1 运行环境 - Java 8或更高版本 - 至少50MB可用磁盘空间(用于存储题目文件) ### 6.2 权限要求 - 需要文件读写权限(用于创建用户目录和保存题目文件) ## 7. 扩展性说明 ### 7.1 可扩展功能 - 支持更多教育级别的题目生成 - 添加更多数学运算符和函数 - 实现题目难度分级 - 增加图形界面支持 ### 7.2 代码扩展 - 通过实现`QuestionGenerator`接口添加新的题目生成器 - 通过继承或修改现有生成器类调整题目生成规则 - 扩展用户实体类添加更多用户属性 ## 8. 项目维护 ### 8.1 代码维护 - 遵循单一职责原则,每个类只负责特定功能 - 使用接口编程,便于功能扩展和替换 - 完整的异常处理机制 ### 8.2 版本管理 - 建议使用Git进行版本控制 - 遵循语义化版本控制规范 - 定期备份重要数据文件 ## 9. 注意事项 1. 题目数量限制在10-30道之间,确保生成效率 2. 系统会自动过滤负数结果,确保题目合理性 3. 生成的题目文件会自动保存,建议定期清理过期文件 4. 初中和高中题目包含高级运算符,需要相应的数学知识 5. 设置循环上限,在无法生成完全不重复的题目时自动退出并给出错误信息 ## 10. 联系方式 如需技术支持或功能定制,请联系项目维护者。 --- **版本**:1.0 **最后更新**:2025年 **文档状态**:正式版