|
|
2 months ago | |
|---|---|---|
| .. | ||
| README.MD | 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 或更高版本
- 网络连接(用于邮箱验证码发送)
运行步骤
- 克隆项目到本地
- 进入项目src目录:
cd src
运行主程序: python main.py 按照界面提示进行注册和登录
预设测试账号 系统支持新用户注册,也可使用以下测试账号:
邮箱:任意有效邮箱(接收验证码)
密码:符合规范的密码(如:Abc123)
分支管理 本项目遵循Git分支管理规范:
main分支:稳定版本,存放经过测试的代码
develop分支:开发主线,集成最新功能
个人分支:每位开发者的功能分支(如:zhangsan_branch)
代码提交规则 源代码:必须通过个人分支 + Pull Request
文档:直接推送到develop分支
开发规范 代码规范 遵循PEP 8 Python编码规范
使用类型注解提高代码可读性
模块化设计,高内聚低耦合
提交信息规范 feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
功能模块详解
- 用户认证模块 (auth_service.py) 邮箱格式验证
密码强度校验
验证码发送与验证
用户数据持久化(JSON文件)
- 题目生成模块 (question_generators.py) 小学题目:2-5个数字的加减乘除运算,确保结果非负且除法整除
初中题目:平方运算(1-20)、开根运算(完全平方数)
高中题目:三角函数(sin/cos/tan)特殊角度计算
选项生成:智能生成4个合理选项,包含正确答案
- 界面模块 (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)