|
|
|
|
@ -1,2 +1,80 @@
|
|
|
|
|
# two_project
|
|
|
|
|
# 中小学数学卷子自动生成程序
|
|
|
|
|
|
|
|
|
|
本项目是一个基于 Java 开发的命令行应用(CLI),旨在为小学、初中和高中的数学老师提供一个便捷的工具,用于自动生成符合教学要求的数学练习卷。
|
|
|
|
|
|
|
|
|
|
程序设计遵循了现代软件工程原则,通过模块化和面向对象的设计,实现了UI与逻辑分离、高内聚、低耦合以及良好的可扩展性。
|
|
|
|
|
|
|
|
|
|
## 主要功能
|
|
|
|
|
|
|
|
|
|
* **多学段支持**:可为 **小学**、**初中**、**高中** 三个不同学段生成题目。
|
|
|
|
|
* **分级与混合难度**:
|
|
|
|
|
* 题目难度逐级递增,高年级题目会自动包含低年级知识点(例如,高中题可能包含平方、开根号等)。
|
|
|
|
|
* 生成的试卷会自动混合不同难度的题目(例如,一份高中试卷会包含一定比例的初中和小学基础题),更贴近真实考试。
|
|
|
|
|
* **历史题目查重**:确保为同一位老师生成的题目不会与历史试卷中的题目重复,保证每次练习都是全新的。
|
|
|
|
|
* **菜单式交互界面**:提供清晰、易用的数字菜单进行操作,无需记忆复杂命令。
|
|
|
|
|
* **自动保存与归档**:生成的试卷会自动以“年-月-日-时-分-秒.txt”的格式命名,并保存在每位教师专属的文件夹下,方便管理和追溯。
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
* **开发语言**:Java 21
|
|
|
|
|
* **构建工具**:Apache Maven
|
|
|
|
|
|
|
|
|
|
## 如何启动
|
|
|
|
|
|
|
|
|
|
配置 **JDK 21 (或更高版本)** 和 **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/ # 试卷组合策略子包
|
|
|
|
|
|
|
|
|
|
```
|