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.
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.
MathExamSystem 数学考试系统
#项目简介
MathExamSystem 是一个基于Java开发的数学考试题目自动生成系统。该系统根据不同教育阶段( 小学、初中、高中) 的学生需求, 生成相应难度的数学题目, 并将试卷保存为文本文件。
#功能特性
##1. 多层次题目生成
小学题目: 基础四则运算和带括号表达式,避免负数结果
初中题目: 包含平方和开方运算的复合表达式
高中题目: 包含三角函数的复杂数学表达式
##2. 用户管理系统
预设三类用户账户( 小学、初中、高中各3个测试账户)
用户认证和权限管理
支持账户类型切换功能
##3. 题目去重机制
自动检测并避免生成重复题目
基于历史记录的题目唯一性保证
##4. 文件管理
自动生成带时间戳的试卷文件
按用户和账户类型分类存储
结构化的文件目录组织
#系统架构
##核心组件
###QuestionGenerator 抽象类
作为所有题目生成器的基类,提供通用的随机数生成和运算符生成功能。
具体题目生成器
###PrimaryQuestionGenerator: 小学题目生成器
支持2-5个操作数的四则运算
50%概率生成带括号表达式
确保运算过程中不出现负数
###JuniorQuestionGenerator: 初中题目生成器
包含平方(²)和开方(√)运算
随机插入特殊运算符
支持复杂表达式组合
###SeniorQuestionGenerator: 高中题目生成器
集成三角函数(sin, cos, tan)
角度制计算支持
高级数学表达式构建
###User 类
用户身份验证和管理
账户类型控制
预设测试用户数据
###FileUtils 工具类
历史题目加载和管理
试卷文件生成和保存
用户目录结构维护
###ExamGenerator 考试生成器
协调各组件完成试卷生成流程
题目数量验证和控制
调用文件保存功能
#使用指南
##登录系统
运行程序后,首先需要登录:
请输入用户名和密码(用空格隔开):
预设账户信息:
小学账户: 张三1/123, 张三2/123, 张三3/123
初中账户: 李四1/123, 李四2/123, 李四3/123
高中账户: 王五1/123, 王五2/123, 王五3/123
##生成试卷
登录成功后, 按提示输入题目数量( 10-30题) :
准备生成[账户类型]数学题目,请输入生成题目数量(输入-1将退出当前用户, 重新登录) :
##特殊命令
输入 -1: 退出当前用户,返回登录界面
输入 切换为[小学|初中|高中]: 切换账户类型(无需重新登录)
##文件输出
生成的试卷将保存在以下路径结构中:
users/
├── 小学/
│ ├── 张三1/
│ ├── 张三2/
│ └── 张三3/
├── 初中/
│ ├── 李四1/
│ ├── 李四2/
│ └── 李四3/
└── 高中/
├── 王五1/
├── 王五2/
└── 王五3/
每个试卷文件以时间戳命名, 例如: 2023-12-01-14-30-25.txt
##编译和运行
程序可在IDEA里直接编译运行
若使用cmd和powershell运行, 先在命令行输入
chcp 65001
[Console]::InputEncoding =
[Console]::OutputEncoding =
[System.Text.Encoding]::UTF8
并执行java -jar MathExamSystem.jar
#代码特点
##设计模式应用
抽象工厂模式: 通过 QuestionGenerator 抽象类和具体实现类体现
单例模式: User 类中的预设账户映射采用静态初始化
工具类模式: FileUtils 提供静态方法集合
##安全特性
输入验证和边界检查
异常处理机制
用户认证保护
##扩展性设计
模块化结构便于新增题目类型
清晰的接口定义支持功能扩展
配置化的用户管理
##注意事项
程序需要在具有文件读写权限的环境中运行
题目数量限制在10-30题之间
生成的试卷文件为纯文本格式
程序默认会在当前目录创建 users 文件夹用于存储试卷