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.
康硕天 79258c36f9
math3
5 months ago
..
README.md math3 5 months ago

README.md

kang

项目简介

本项目是一个基于命令行的中小学数学试卷自动生成程序。旨在帮助小学、初中和高中数学教师快速、批量地生成符合对应难度要求的数学练习试卷。程序支持用户登录、难度切换、题目数量自定义,并具备题目查重结果文件保存功能,确保生成的试卷具有实用性和唯一性。

核心功能

  1. 多用户登录与权限管理:
    • 预设小学、初中、高中三类账户,通过命令行输入用户名和密码登录。
    • 登录成功后,系统自动识别并显示当前的出题类型。
  2. 分级难度出题:
    • 支持小学、初中、高中三个难度等级的题目生成。
    • 小学: 仅包含 +, -, *, /() 运算。
    • 初中: 题目中至少包含一个平方或开根号运算。
    • 高中: 题目中至少包含一个 sin, costan 三角函数运算。
    • 所有题目操作数在 1-5 个之间,操作数取值范围为 1-100。
  3. 试卷生成与数量控制:
    • 用户可输入所需生成的题目数量,有效范围为 10 到 30 题。
    • 输入 -1 可退出当前用户登录状态。
  4. 题目查重机制:
    • 强大的查重功能: 确保同一用户新生成的试卷中的题目,不与该用户历史已生成的任何题目重复。
  5. 难度切换功能:
    • 登录状态下,用户可通过输入 切换为XX (XX 为小学/初中/高中) 随时切换出题类型。
  6. 结果保存:
    • 生成的试卷将自动保存到以用户名命名的文件夹下。
    • 文件命名格式为:年-月-日-时-分-秒.txt
    • 试卷内容包含题号,每题之间空一行。

技术栈

本项目主要采用 Java 语言开发,并遵循面向对象的设计原则。

  • 主要语言: Java
  • 开发环境: JDK 8+
  • 核心设计: 接口/抽象类定义(如 QuestionGenerator),具体类实现(如 ElementaryQuestionGenerator),以实现不同难度题目的解耦和扩展。
  • 运行操作系统: Linux
  • 运行操作: 在虚拟机终端上于可执行文件所在目录执行java -jar MathGen.jar命令

目录结构与规范

本项目遵循头歌项目提交规范,采用以下目录结构:

MathQuestionGenerator/
├── src/
│   ├── com/
│   │   └── mathgen/
│   │       ├── Main.java
│   │       ├── auth/
│   │       │   ├── AuthService.java
│   │       │   └── User.java
│   │       ├── enums/
│   │       │   └── AccountType.java
│   │       ├── io/
│   │       │   └── FileService.java
│   │       ├── question/
│   │       │   ├── ElementaryQuestionGenerator.java
│   │       │   ├── HighSchoolQuestionGenerator.java
│   │       │   ├── MiddleSchoolQuestionGenerator.java
│   │       │   ├── Question.java
│   │       │   └── QuestionGenerator.java
│   │       └── util/
│   │           ├── ExpressionBuilder.java
│   │           └── RandomUtil.java

Git 提交规范

  • 分支管理: 设有 maindevelop 两个分支。
    • main:存放稳定、可发布版本。
    • develop:存放最新开发版本。
  • 提交流程: 代码需先提交到 develop 分支,测试正常后方可合并到 main 分支。

安装与运行

1. 先决条件

  • 已安装 Java Development Kit (JDK 8 或更高版本)
  • 已安装 Git

2. 获取代码

使用 Git 克隆项目到本地:

git clone [您的项目仓库地址]
cd [您的项目名称]

使用指南

程序启动后,将进入登录界面。

1. 用户登录

在命令行输入用户名和密码,用空格隔开:

请输入用户名和密码(用空格隔开):
张三1 123

预设账户信息(供测试):

账户类型 账户 密码
小学 张三1, 张三2, 张三3 123
初中 李四1, 李四2, 李四3 123
高中 王五1, 王五2, 王五3 123

2. 生成试卷

登录成功后,系统会提示当前出题类型,并要求输入题目数量:

当前选择为小学 出题
准备生成小学数学题目,请输入生成题目数量(输入-1将退出当前用户重新登录
20

3. 切换出题类型

在提示输入题目数量的界面,输入切换命令:

切换为高中

系统将确认切换并再次提示输入题目数量:

系统提示“准备生成高中数学题目,请输入生成题目数量”

4. 退出登录

在提示输入题目数量的界面,输入 -1 即可退出当前用户,返回登录界面:

-1