# 中小学数学卷子自动生成程序 本项目是一个基于 Java 开发的命令行应用(CLI),旨在为小学、初中和高中的数学老师提供一个便捷的工具,用于自动生成符合教学要求的数学练习卷。 程序设计遵循了现代软件工程原则,通过模块化和面向对象的设计,实现了UI与逻辑分离、高内聚、低耦合以及良好的可扩展性。 ## 主要功能 * **多学段支持**:可为 **小学**、**初中**、**高中** 三个不同学段生成题目。 * **分级与混合难度**: * 题目难度逐级递增,高年级题目会自动包含低年级知识点(例如,高中题可能包含平方、开根号等)。 * 生成的试卷会自动混合不同难度的题目(例如,一份高中试卷会包含一定比例的初中和小学基础题),更贴近真实考试。 * **历史题目查重**:确保为同一位老师生成的题目不会与历史试卷中的题目重复,保证每次练习都是全新的。 * **菜单式交互界面**:提供清晰、易用的数字菜单进行操作,无需记忆复杂命令。 * **自动保存与归档**:生成的试卷会自动以“年-月-日-时-分-秒.txt”的格式命名,并保存在每位教师专属的文件夹下,方便管理和追溯。 ## 技术栈 * **开发语言**:Java 21(及更高版本) * **构建工具**:Apache Maven ## 如何启动 配置 **JDK 23 (或更高版本)** 和 **Apache Maven**。 ### 1\. 环境要求 * `JAVA_HOME` 环境变量已正确设置。 * **全平台通用** ### 2\. 构建项目 首先,需要使用 Maven 将项目打包成一个可执行的 `.jar` 文件。 在项目的根目录(即 `pom.xml` 文件所在的目录)下,打开终端并执行以下命令: ```bash mvn clean package ``` 该命令会编译所有代码,并 T 在 `target/` 目录下生成一个名为 `mathgenerator.jar` 的文件。 ### 3\. 运行程序 构建成功后,使用以下命令来启动程序: ```bash java -jar mathgenerator.jar ``` 如果一切顺利,您将在终端看到欢迎界面和用户登录提示。 ## 项目结构 项目采用标准的 Maven 目录结构,核心逻辑清晰分离: ``` . ├── pom.xml # Maven 核心配置文件 ├── users.json # 用户数据文件 └── src └── main └── java └── com └── mathgenerator ├── Application.java # 程序主入口:负责组装和启动 │ ├── model/ # 数据模型包 │ ├── ui/ # 用户界面包 | ├── storage/ # 存储包 │ ├── generator/ # 题目生成器包 │ └── service/ # 核心业务服务包 │ └── strategy/ # 试卷组合策略子包 ```