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.
hnu202326010320 07c91d030d
ADD file via upload
4 months ago
..
README.md ADD file via upload 4 months ago

README.md

数学试卷自动生成程序

一个在命令行运行的数学试卷生成器,支持小学/初中/高中三种难度,按用户维度避免题目重复。

目录

功能特点

  • 支持三个教学阶段:小学、初中、高中
  • 预设 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 之间
  • 同一用户生成的题目不会重复
  • 程序会自动创建必要的文件夹
  • 支持中文界面,操作简单直观

如需重新打包分发版,直接使用 zipMathPaperGenerator_release.zip,包含 JAR 与两个启动脚本,解压即用。