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.
mathlearningapp/doc
ZHW 7a4920060c
final
3 months ago
..
README.md final 3 months ago

README.md

mathlearningapp

mathlearningapp

数学学习软件 - 版本演进文档

项目概述

数学学习软件是一个基于Java Swing开发的桌面应用程序旨在为不同学习阶段小学、初中、高中的学生提供数学题目练习和测试功能。软件采用模块化设计包含用户管理、题目生成、答题测试等核心功能。

版本演进历史

版本1.0 - 基础版本

核心功能

  • 用户管理:邮箱注册、登录、密码修改
  • 题目生成:小学、初中、高中三个级别的题目生成器
  • 答题系统:选择题形式,支持自定义题目数量
  • 成绩统计:显示得分和正确率

技术特点

  • 使用CardLayout实现多面板切换
  • 基础的用户验证系统
  • 简单的题目生成算法

主要类结构

User - 用户类
Question - 题目类
QuestionGenerator - 题目生成器抽象类
PrimaryQuestionGenerator - 小学题目生成器
JuniorQuestionGenerator - 初中题目生成器  
SeniorQuestionGenerator - 高中题目生成器
UserManager - 用户管理类
MathLearningApp - 主应用程序类

版本2.0 - 功能增强版

新增功能

  • 用户名系统:引入用户名概念,不再仅依赖邮箱
  • 界面美化改进UI设计添加颜色和样式
  • 验证码系统:注册时发送验证码
  • 欢迎界面:登录后显示个性化欢迎信息

技术改进

  • 改进的用户管理,支持用户名和邮箱双重索引
  • 增强的题目生成逻辑
  • 更友好的用户界面

版本3.0 - 算法优化版

核心改进

  • 题目生成优化
    • 小学操作数数量扩展为1-5个
    • 初中:支持混合运算和平方/开方运算
    • 高中:三角函数使用特殊角度,确保结果合理
  • 表达式计算引入JavaScript引擎计算复杂表达式
  • 输入验证题目数量限制为10-30题

技术升级

  • 更健壮的题目生成算法
  • 改进的错误处理机制
  • 优化的用户交互体验

版本4.0 - 企业级版本

重大改进

  • 数据持久化:用户数据序列化保存到文件
  • 表达式计算器:自定义表达式计算引擎
  • 包管理添加com.hnu包结构
  • 代码重构:大幅优化代码结构和算法

新增特性

  • 文件存储:用户数据自动保存和加载
  • 高级计算:支持括号和运算优先级
  • 健壮性提升:完善的异常处理和输入验证

核心功能详解

1. 用户管理系统

版本演进

  • 1.0:基于邮箱的简单用户管理
  • 2.0:引入用户名系统,双重索引
  • 4.0:数据持久化,文件存储

功能特性

  • 用户注册(邮箱验证)
  • 用户登录
  • 密码修改
  • 数据持久化4.0+

2. 题目生成系统

小学题目

  • 运算符+、-、*、/
  • 特点支持括号2-4个操作数
  • 演进:从简单运算到支持复杂表达式

初中题目

  • 类型:基本运算、平方、开方
  • 特点:混合运算,确保完全平方数
  • 演进:算法优化,结果更合理

高中题目

  • 类型:三角函数、复合表达式
  • 特点:使用特殊角度,避免极端值
  • 演进:从简单三角函数到复合表达式

3. 答题与评分系统

答题流程

  1. 选择学习阶段
  2. 输入题目数量
  3. 逐题作答
  4. 查看成绩

评分机制

  • 实时计分
  • 百分比显示
  • 成绩评级(优秀、良好、及格、加油)

技术架构

设计模式应用

  • 工厂模式:题目生成器
  • 单例模式:用户管理
  • 策略模式:不同级别的题目生成

核心算法

表达式计算版本4.0

// 支持括号和运算优先级
public static double calculate(String expression) {
    // 递归处理括号
    // 先乘除后加减
    // 完善的错误处理
}

题目生成

// 确保题目多样性和合理性
public Question generateQuestion() {
    // 操作数数量随机
    // 运算符随机选择
    // 错误答案生成算法
    // 选项随机排序
}

部署与使用

环境要求

  • Java 8+
  • 支持Swing的Java环境

运行方式

javac MathLearningApp.java
java MathLearningApp

测试账户

  • 用户名:测试用户
  • 密码Test123

版本对比总结

特性 1.0 2.0 3.0 4.0
用户管理 基础 增强 增强 持久化
题目生成 简单 改进 优化 高级
界面设计 基础 美化 优化 专业
数据存储 内存 内存 内存 文件
计算能力 基础 基础 引擎 自定义
代码结构 简单 模块化 优化 企业级

未来发展建议

  1. 数据库集成:替换文件存储为数据库
  2. 网络功能:添加在线排名和题目分享
  3. 移动端开发Android和iOS版本
  4. AI辅助:集成智能题目推荐
  5. 多媒体:添加题目解析视频功能