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.
UIGenerator/doc
哈俊元 eab697dcfd
强制推送本地文件到hjy_branch分支
2 months ago
..
README.MD 强制推送本地文件到hjy_branch分支 2 months ago

README.MD

软2_[袁明霜涛]_[哈俊元]_结对项目

中小学数学学习软件 - 结对编程项目

项目简介

本项目是一个面向中小学学生的数学学习桌面应用程序,提供个性化的数学题目练习和评估功能。系统根据学生所在学段(小学、初中、高中)生成相应难度的数学题目,通过图形化界面提供友好的学习体验。

功能特性

用户管理

  • 用户注册:通过邮箱验证码完成注册
  • 密码设置6-10位必须包含大小写字母和数字
  • 用户登录:安全的身份验证机制
  • 密码修改:支持原密码验证和验证码重置两种方式

题目生成

  • 小学题目:加减乘除四则运算
  • 初中题目:平方、开根运算
  • 高中题目:三角函数计算
  • 智能防重复:确保同一试卷无重复题目

学习流程

  • 难度选择:小学/初中/高中三级难度
  • 题目数量用户自定义题目数量10-30题
  • 选择题形式每题4个选项单选作答
  • 实时评分:提交后立即显示得分情况
  • 学习延续:支持连续练习或退出选择

技术栈

  • 编程语言Python 3.x
  • GUI框架Tkinter内置Python GUI库
  • 数据存储JSON文件无需数据库
  • 邮件服务SMTP协议QQ邮箱
  • 架构模式MVC模型-视图-控制器)

项目结构

软1_XXX_XXX_结对项目/ ├── src/ # 源代码目录 │ ├── main.py # 程序入口 │ ├── config.py # 配置文件 │ ├── controller/ # 控制器层 │ │ ├── init.py │ │ └── app_controller.py # 应用控制器 │ ├── model/ # 模型层 │ │ ├── init.py │ │ ├── auth_service.py # 认证服务 │ │ └── question_generators.py # 题目生成器 │ └── view/ # 视图层 │ ├── init.py │ ├── login_view.py # 登录界面 │ ├── register_view.py # 注册界面 │ ├── main_view.py # 主界面 │ ├── password_view.py # 密码修改界面 │ └── quiz_view.py # 答题界面 ├── doc/ # 项目文档目录 │ ├── 项目说明文档.md # 本文档 │ └── 用户手册.md # 详细使用说明 ├── users.json # 用户数据文件(运行时生成) └── README.md # 项目说明

安装与运行

环境要求

  • Python 3.7 或更高版本
  • 网络连接(用于邮箱验证码发送)

运行步骤

  1. 克隆项目到本地
  2. 进入项目src目录
    cd src
    

运行主程序: python main.py 按照界面提示进行注册和登录

预设测试账号 系统支持新用户注册,也可使用以下测试账号:

邮箱:任意有效邮箱(接收验证码)

密码符合规范的密码Abc123

分支管理 本项目遵循Git分支管理规范

main分支稳定版本存放经过测试的代码

develop分支开发主线集成最新功能

个人分支每位开发者的功能分支zhangsan_branch

代码提交规则 源代码:必须通过个人分支 + Pull Request

文档直接推送到develop分支

开发规范 代码规范 遵循PEP 8 Python编码规范

使用类型注解提高代码可读性

模块化设计,高内聚低耦合

提交信息规范 feat: 新功能

fix: 修复bug

docs: 文档更新

style: 代码格式调整

refactor: 代码重构

功能模块详解

  1. 用户认证模块 (auth_service.py) 邮箱格式验证

密码强度校验

验证码发送与验证

用户数据持久化JSON文件

  1. 题目生成模块 (question_generators.py) 小学题目2-5个数字的加减乘除运算确保结果非负且除法整除

初中题目平方运算1-20、开根运算完全平方数

高中题目三角函数sin/cos/tan特殊角度计算

选项生成智能生成4个合理选项包含正确答案

  1. 界面模块 (view/) 响应式图形界面设计

实时输入验证

友好的用户交互反馈

密码可见性切换功能

数据存储 项目使用JSON文件存储用户数据文件结构如下 { "user@example.com": { "username": "张三", "password": "加密密码", "level": "primary", "register_time": "2024-01-01 10:00:00" } }

配置说明 在 config.py 中配置以下参数:

邮箱服务配置SMTP服务器、端口、授权码

用户数据文件路径

难度等级定义

测试用例 功能测试 用户注册流程测试

登录验证测试

密码修改测试

题目生成测试(各学段)

答题评分测试

边界测试 密码格式边界测试

题目数量边界测试

邮箱格式验证测试

已知限制 邮箱服务依赖QQ邮箱SMTP服务需配置正确的授权码

题目数量建议10-30题过多可能影响性能

网络要求:发送验证码需要网络连接

平台兼容主要支持Windows其他平台可能需调整

开发团队 班级软2

组长:[袁明霜涛]202326010223

组员:[哈俊元]202326010232