You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
5.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 数学试卷自动生成程序
一个在命令行运行的数学试卷生成器,支持小学/初中/高中三种难度,按用户维度避免题目重复。
## 目录
- [功能特点](#功能特点)
- [运行环境要求](#运行环境要求)
- [快速开始(推荐分发)](#快速开始推荐分发)
- [使用说明](#使用说明)
- [账户信息](#账户信息)
- [题目难度说明](#题目难度说明)
- [小学](#小学)
- [初中](#初中)
- [高中](#高中)
- [文件保存](#文件保存)
- [项目结构](#项目结构)
- [开发与构建IntelliJ IDEA](#开发与构建intellij-idea)
- [常见问题与排查](#常见问题与排查)
- [注意事项](#注意事项)
## 功能特点
- 支持三个教学阶段:小学、初中、高中
- 预设 9 个教师账户(每个阶段 3 个账户)
- 自动生成不重复的数学题目(以用户为维度)
- 按用户分类保存题目文件
- 支持类型切换功能(无需重新登录即可切换难度)
## 运行环境要求
- 已安装 Java推荐 JDK 18JDK 17 也可)。
- Windows 命令行环境PowerShell 或 CMD
## 快速开始(推荐分发)
将以下文件打包并发送给使用者:
- projecttest.jar已构建的可运行 JAR
- 运行数学试卷生成器.bat中文名启动脚本
使用方式:
1. 解压后保证 .bat 与 projecttest.jar 在同一文件夹。
2. 双击任意一个 .bat 即可启动;脚本会自动寻找 JAVA_HOME 或 PATH 中的 java.exe并以 UTF-8 输出。
3. 如未安装 Java脚本会给出提示请先安装 JDK 17/18 并配置环境变量。
## 使用说明
程序启动后将显示提示:
- 输入题目数量1030生成试卷
- 输入“切换为 小学/初中/高中”来切换难度;例如:切换为 初中;
- 输入 -1 退出当前用户并重新登录;
- 同一用户生成的题目不会重复。
## 账户信息
### 小学账户
- 用户名张三1密码123
- 用户名张三2密码123
- 用户名张三3密码123
### 初中账户
- 用户名李四1密码123
- 用户名李四2密码123
- 用户名李四3密码123
### 高中账户
- 用户名王五1密码123
- 用户名王五2密码123
- 用户名王五3密码123
## 题目难度说明
- 不同阶段的题目难度与运算比例不同:小学加减比例高,高中乘除比例高。
- 括号会根据是否改变运算顺序而决定是否出现。
### 小学
- 运算符:+、-、*、/
- 操作数15 个
- 数值范围1100
- 运算结果不会出现负数
### 初中
- 包含小学所有运算
- 新增:平方运算、开根号运算
- 题目中至少包含一个平方或开根号运算
- 题目中的开根号运算都是可以计算出来的
### 高中
- 包含初中所有运算
- 新增sin、cos、tan 三角函数
- 题目中至少包含一个三角函数运算
- 题目中的三角函数都是可以运算出来的
## 文件保存
- 生成的题目会保存在 `math_papers` 文件夹下
- 每个用户有独立的文件夹
- 文件名格式:`年-月-日-时-分-秒.txt`
- 每道题目有题号,题目之间空一行
## 项目结构
- META-INF/MANIFEST.MF清单文件Main-Class: MathPaperGenerator
- out/production/projecttest模块编译输出.class
- out/artifacts/projecttest_jar/projecttest.jar构建产物JAR
- run_math_paper_english.bat、运行数学试卷生成器.bat启动脚本。
- math_papers/:生成的试卷与历史记录(按用户分文件夹)。
## 开发与构建IntelliJ IDEA
1. 项目结构Ctrl+Alt+Shift+S
- Project SDK 设为 JDK 18或 17Project language level 与 Bytecode version 保持一致。
- Modules > Sources将 d:\projecttest 标记为 Sources Root.idea 与 math_papers 标记为 Excluded。
- Modules > Paths选择“继承项目编译输出路径”输出到 d:\projecttest\out。
2. 构建项目Build > Build/Rebuild Project确认 out/production/projecttest 下生成 .class。
3. 构件Artifactsprojecttest:jar
- 输出布局包含“模块输出projecttest”与 META-INFMANIFEST.MF
- Build > Build Artifacts > Build projecttest:jar生成 JAR 于 out/artifacts/projecttest_jar/。
4. 运行:
- 命令行:`java -jar d:\projecttest\out\artifacts\projecttest_jar\projecttest.jar`
- 或双击两个 .bat 启动脚本。
## 常见问题与排查
- 不支持的标志: 21JDK 与语言级别不匹配。将 Project SDK/Language level/Bytecode 统一到 18或 17
- 没有为模块指定输出路径:在 Modules > Paths 中启用“继承项目编译输出路径”。
- 没有主清单属性:确认 META-INF/MANIFEST.MF 存在并包含 `Main-Class: MathPaperGenerator`;构件输出布局包含清单与模块输出。
- 找不到主类:主类名必须与清单一致,且 .class 已编译到 out/production/projecttest。
## 注意事项
- 题目数量必须在 1030 之间
- 同一用户生成的题目不会重复
- 程序会自动创建必要的文件夹
- 支持中文界面,操作简单直观
如需重新打包分发版,直接使用 zip`MathPaperGenerator_release.zip`,包含 JAR 与两个启动脚本,解压即用。