diff --git a/README.md b/README.md deleted file mode 100644 index 2c21d09..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# MathPaperGenerator - diff --git a/doc/MathPaperGenerator.jar b/doc/MathPaperGenerator.jar new file mode 100644 index 0000000..066e36f Binary files /dev/null and b/doc/MathPaperGenerator.jar differ diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..b779114 --- /dev/null +++ b/doc/README.md @@ -0,0 +1,90 @@ +# MathPaperGenerator +# 中小学数学卷子自动生成器 + +## 📌 项目简介 +本项目是一个基于 **Java** 编写的命令行应用程序,用于自动生成中小学数学试卷。 +支持 **小学、初中、高中** 三个难度等级,能根据用户登录身份自动选择题目范围,并确保生成的题目不会与已有题库重复。 + +--- + +## 🚀 功能特点 +- **用户登录系统**:内置预设账号,支持不同年级用户登录。 +- **自动出题**:根据选择的年级生成对应难度的数学题目。 +- **难度分类**: + - 小学:四则运算(+ - * /),可包含括号; + - 初中:包含平方 `^2` 或开方 `sqrt()`; + - 高中:包含三角函数 `sin / cos / tan`。 +- **去重机制**:避免与已有题目重复。 +- **试卷保存**:生成的试卷会自动保存到用户专属目录,按时间戳命名。 +- **灵活交互**: + - 输入 `-1` 可退出登录并切换用户; + - 输入 `切换为小学/初中/高中` 可动态切换出题等级。 + +--- + +## 📂 项目结构 +├── Main.java # 程序入口 +├── Assign.java # 调度核心逻辑,负责用户登录和功能调用 +├── Function.java # 用户交互与出题数量输入处理 +├── Create.java # 调用生成器并保存试卷 +├── Generator.java # 随机数学题生成器(小学/初中/高中) +├── LoadFile.java # 读取用户已有题目,避免重复 +├── Save.java # 保存生成的试卷到本地 +├── Login.java # 登录系统,包含账户和等级 +└── LanguageSwitch.java # 等级与中文互转工具类 + +--- + +## 🔑 核心类与方法 + +### `Main` +- 程序入口,调用 `Assign.assign()`。 + +### `Assign` +- 控制流程:循环执行登录 → 出题 → 保存。 + +### `Function` +- 与用户交互:输入题目数量、切换等级、退出登录。 +- 调用 `Create.create()` 生成题目。 + +### `Create` +- 调用 `Generator.QuestionGenerator` 生成试卷。 +- 调用 `Save.savePaper()` 保存结果。 + +### `Generator` +- 数学题生成器: + - 小学:四则运算; + - 初中:平方 / 开根号; + - 高中:三角函数。 +- 保证生成题目不重复。 + +### `LoadFile` +- 读取用户已有试卷文件,按题号分割并去重。 + +### `Save` +- 将生成的试卷保存到 `data/用户名/` 文件夹。 +- 文件命名规则:`yyyy-MM-dd-HH-mm-ss.txt`。 + +### `Login` +- 内置账号系统: + - 小学:张三1/2/3(密码 123); + - 初中:李四1/2/3(密码 123); + - 高中:王五1/2/3(密码 123)。 +- 校验用户名与密码,返回用户等级。 + +### `LanguageSwitch` +- 提供 `Level` 与中文之间的双向转换。 + +--- + +## 🛠 使用方法 + +### `1. jdk版本` +- openjdk version "23.0.1" + +### `2. 编译方法` +- java -jar MathPaperGenerator.jar + + + +