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.
ymr 96e5ddd670
项目文档
4 months ago
..
README.md 项目文档 4 months ago

README.md

数学题目生成器项目说明文档

1. 项目概述

该项目实现了一个基于不同难度的数学题目生成器,旨在为不同年级(小学、初中和高中)的学生生成数学考试题目。系统支持用户登录、选择不同的年级出题难度、生成题目并保存至文件。通过此系统,教师可以快速生成符合教学需要的数学题目。

2. 项目功能

2.1 用户管理

  • 用户登录:系统支持通过用户名和密码进行登录验证。
  • 用户类型:支持小学、初中和高中三种用户类型。不同用户类型对应不同的题目生成规则。
  • 用户切换:登录后可以在不同难度的题目生成器之间切换。

2.2 题目生成

  • 题目生成器:根据用户选择的年级,使用不同的题目生成规则。生成的题目包括加法、减法、乘法、除法、平方、开根号以及三角函数等操作。
  • 题目数量用户可以指定生成题目的数量数量范围在10到30道题目之间。
  • 题目保存:生成的题目会自动保存到用户目录下,并以时间戳命名文件。
  • 唯一性验证:系统确保生成的题目在当前用户目录下是唯一的,避免重复。

2.3 用户界面

  • 提供命令行交互,用户可以查看帮助信息、生成题目、切换题目难度或退出程序。
  • 支持查看帮助信息,提供清晰的操作说明。

3. 系统架构

该项目采用面向对象设计,主要类如下:

3.1 ExamManager

ExamManager是整个系统的核心类,负责题目的生成与管理。主要功能包括:

  • 根据用户类型创建相应的题目生成器。
  • 管理用户目录,确保每个用户有独立的存储空间。
  • 生成符合要求的题目并保存。

3.2 QuestionGenerator接口

所有题目生成器都实现了QuestionGenerator接口。此接口定义了生成题目和验证题目的方法。

  • generateQuestion():生成一道数学题目。
  • getType():返回生成器对应的年级类型。
  • isValidQuestion():验证生成的题目是否符合规范。

3.3PrimaryQuestionGeneratorJuniorQuestionGeneratorSeniorQuestionGenerator

这三个类分别实现了QuestionGenerator接口,为不同年级的用户提供题目生成服务。它们根据年级的不同,生成不同难度的数学题目。

3.4 UserUserManager

  • User类存储用户的基本信息,包括用户名、密码和用户类型。
  • UserManager类管理所有的用户,负责用户的登录认证。

3.5 MathExamApp

这是整个应用程序的入口,提供了一个命令行界面。用户可以通过输入命令进行登录、选择难度、生成题目等操作。

4. 代码详解

4.1 题目生成规则

4.1.1 PrimaryQuestionGenerator

为小学用户生成简单的数学题目。题目中包含1至5个运算符加法、减法、乘法、除法每道题目包含2至6个数字生成类似

25 + 30 - 12

4.1.2 JuniorQuestionGenerator

为初中用户生成的题目包括平方(^2)和开根号(等扩展操作。题目中包括1至5个操作符以及平方或开根号操作生成类似

12 + 24 - √(36) + 45

4.1.3 SeniorQuestionGenerator

为高中用户生成的题目包含三角函数(sin, cos, tan以及基础运算符加、减、乘、除。题目中包括1至5个操作符和至少一个三角函数生成类似

sin(45) + 20 * 3 - cos(30)

4.2 用户管理与登录

UserManager类提供了用户的认证功能,使用用户名和密码进行验证。支持去除用户输入中的空格,确保用户名与密码的匹配不会受到空格影响。

4.3 题目保存

每当生成的题目数量满足要求后,ExamManager会将题目保存到用户目录下,并以当前时间戳命名文件。保存的文件格式为:

1. 12 + 24 - 15
2. 18 * 3 + 50

5. 运行说明

5.1 启动程序

运行MathExamApp类,启动命令行应用程序。程序将提示用户输入用户名和密码。

5.2 用户登录

用户需要输入用户名和密码,用户名和密码必须和UserManager中预设的用户匹配。登录成功后,用户可以选择生成题目或切换题目难度。

5.3 生成题目

用户输入题目数量10-30道题系统将生成相应数量的题目。用户还可以选择切换题目难度小学、初中、高中

5.4 退出程序

输入-1可以退出程序。输入0将退出当前用户,重新登录。

6. 代码结构

.
├── ExamManager.java               # 题目管理类
├── MathExamApp.java               # 程序入口与交互逻辑
├── PrimaryQuestionGenerator.java  # 小学题目生成器
├── JuniorQuestionGenerator.java   # 初中题目生成器
├── SeniorQuestionGenerator.java   # 高中题目生成器
├── QuestionGenerator.java         # 题目生成器接口
├── User.java                      # 用户类
├── UserManager.java               # 用户管理类
└── UserType.java                  # 用户类型枚举类

7. 依赖与配置

Windows 系统下运行步骤

  1. 配置 Java 22 编译环境

    确保系统已安装 Java 22 JDK 版本

  2. 设置控制台编码

    打开 cmd 命令行工具

    执行以下命令设置 .NET 控制台输入输出编码:

    powershell

    [Console]::InputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    
  3. 运行程序

    使用以下指令执行 .jar 文件:

    cmd

    java -jar .\MathExamApp.jar
    

Linux 系统下运行步骤

  1. 配置 Java 22 JDK 版本

    确保系统已安装 Java 22 JDK

  2. 运行程序

    使用以下指令执行程序:

    bash

    java -jar MathExamApp.jar