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.
|
|
5 months ago | |
|---|---|---|
| .. | ||
| README.md | 5 months ago | |
README.md
kang
项目简介
本项目是一个基于命令行的中小学数学试卷自动生成程序。旨在帮助小学、初中和高中数学教师快速、批量地生成符合对应难度要求的数学练习试卷。程序支持用户登录、难度切换、题目数量自定义,并具备题目查重和结果文件保存功能,确保生成的试卷具有实用性和唯一性。
核心功能
- 多用户登录与权限管理:
- 预设小学、初中、高中三类账户,通过命令行输入用户名和密码登录。
- 登录成功后,系统自动识别并显示当前的出题类型。
- 分级难度出题:
- 支持小学、初中、高中三个难度等级的题目生成。
- 小学: 仅包含
+,-,*,/和()运算。 - 初中: 题目中至少包含一个平方或开根号运算。
- 高中: 题目中至少包含一个
sin,cos或tan三角函数运算。 - 所有题目操作数在 1-5 个之间,操作数取值范围为 1-100。
- 试卷生成与数量控制:
- 用户可输入所需生成的题目数量,有效范围为 10 到 30 题。
- 输入
-1可退出当前用户登录状态。
- 题目查重机制:
- 强大的查重功能: 确保同一用户新生成的试卷中的题目,不与该用户历史已生成的任何题目重复。
- 难度切换功能:
- 登录状态下,用户可通过输入
切换为XX(XX 为小学/初中/高中) 随时切换出题类型。
- 登录状态下,用户可通过输入
- 结果保存:
- 生成的试卷将自动保存到以用户名命名的文件夹下。
- 文件命名格式为:
年-月-日-时-分-秒.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 提交规范
- 分支管理: 设有
main和develop两个分支。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