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.
student_system/doc/README.md

6.8 KiB

软1_[彭云昊]_[王祖旺]_结对项目 中小学数学学习软件 - 结对编程项目

项目简介

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

功能特性

用户管理

  • 用户注册:通过邮箱验证码完成注册
  • 密码设置6-10位必须包含大小写字母和数字
  • 用户登录:安全的身份验证机制
  • 密码修改:支持原密码验证
  • 账户注销:永久删除账户及所有数据

题目生成

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

学习流程

  • 难度选择:小学/初中/高中三级难度
  • 题目数量用户自定义题目数量10-30题
  • 选择题形式每题4个选项单选作答
  • 实时评分:提交后立即显示得分情况
  • 学习延续:支持连续练习或退出选择
  • 答题进度:支持上一题/下一题导航
  • 成绩反馈:根据得分提供个性化评语

技术栈

  • 编程语言Python 3.x
  • GUI框架Tkinter内置Python GUI库
  • 数据存储JSON文件无需数据库
  • 邮件服务SMTP协议QQ邮箱
  • 架构模式:前后端分离架构

项目结构

软1_[彭云昊]_[王祖旺]_结对项目/
├── src/
│   ├── main.py              # 程序入口
│   ├── main_app.py          # 主应用模块,界面控制器
│   ├── backend_service.py   # 后端服务模块,前后端通信中介
│   ├── user_manager.py      # 用户管理模块
│   ├── question_bank.py     # 题库管理模块
│   ├── question_generator.py # 题目生成器模块
│   ├── quiz.py             # 测验管理模块
│   └── users.json          # 用户数据文件(运行时生成)
└── doc/
    └── README.md           # 项目说明文档

架构设计

本项目采用前后端分离的架构设计,确保代码的可维护性和可扩展性:

  • 前端层 (main_app.py)负责UI展示和用户交互不包含业务逻辑
  • 服务层 (backend_service.py):作为前后端通信中介,转发请求到业务模块
  • 业务逻辑层 (user_manager.py, question_bank.py, quiz.py):处理具体业务逻辑
  • 数据层 (users.json):持久化存储用户数据

设计原则

  1. 严格的前后端分离,前端仅负责界面展示和用户交互
  2. 业务逻辑完全封装在后端模块中
  3. 模块间通过定义良好的接口进行通信
  4. 高内聚低耦合,便于独立测试和维护

安装与运行

环境要求

  • Python 3.11.9或更高版本
  • 网络连接(用于邮箱验证码发送)
  • Windows 操作系统

运行步骤

  1. 下载项目文件到本地
  2. 确保所有Python文件在同一目录下
  3. 运行主程序:
python main.py
  1. 按照界面提示进行注册和登录

使用说明

用户注册流程

  1. 点击"注册新用户"
  2. 输入用户名和邮箱
  3. 点击"获取注册码",系统将发送验证码到邮箱
  4. 输入收到的注册码
  5. 设置符合要求的密码6-10位包含大小写字母和数字
  6. 完成注册并登录

学习流程

  1. 登录系统后进入主菜单
  2. 选择题目难度(小学/初中/高中)
  3. 输入题目数量10-30题
  4. 开始答题,选择正确答案
  5. 提交答案或切换题目
  6. 完成所有题目后查看成绩和评语

预设测试账号

系统支持新用户注册,也可使用以下方式测试:

  • 邮箱:任意有效邮箱(接收验证码)
  • 密码符合规范的密码Abc123

分支管理

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

  • main分支稳定版本存放经过测试的代码
  • develop分支开发主线集成最新功能
  • 个人分支每位开发者的功能分支zhangsan_branch

代码提交规则

  • 源代码:必须通过个人分支 + Pull Request
  • 文档直接推送到develop分支

开发规范

代码规范

  • 遵循PEP 8 Python编码规范
  • 使用类型注解提高代码可读性
  • 模块化设计,高内聚低耦合
  • 严格遵循前后端分离原则

提交信息规范

  • feat: 新功能
  • fix: 修复bug
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构

功能模块详解

1. 用户认证模块 (user_manager.py)

  • 邮箱格式验证
  • 密码强度校验6-10位包含大小写字母和数字
  • 验证码发送与验证通过QQ邮箱SMTP服务
  • 用户数据持久化JSON文件
  • 用户会话管理

2. 题目生成模块 (question_generator.py)

  • 小学题目2-5个数字的加减乘除运算支持括号确保结果非负
  • 初中题目:平方运算、开根运算(完全平方数)
  • 高中题目三角函数sin/cos/tan特殊角度0°, 30°, 45°, 60°, 90°计算
  • 智能选项生成为每道题生成4个合理选项包含正确答案和干扰项

3. 测验模块 (quiz.py)

  • 管理一次答题会话的所有题目
  • 跟踪用户答题进度和答案
  • 计算最终得分和正确率
  • 提供题目导航功能

4. 界面模块 (main_app.py)

  • 响应式图形界面设计
  • 实时输入验证
  • 友好的用户交互反馈
  • 多框架界面切换
  • 美观的UI主题和颜色方案

5. 后端服务模块 (backend_service.py)

  • 作为前端与业务逻辑模块之间的通信中介
  • 封装所有业务规则和逻辑判断
  • 提供统一的API接口给前端调用

数据存储

项目使用JSON文件存储用户数据文件结构如下

{
  "user@example.com": {
    "username": "张三",
    "password_hash": "加密密码",
    "registration_code": "注册码",
    "is_registered": true
  }
}

配置说明

user_manager.py 中配置以下参数:

  • 邮箱服务配置SMTP服务器、端口、授权码
  • 用户数据文件路径

测试用例

功能测试

  • 用户注册流程测试
  • 登录验证测试
  • 密码修改测试
  • 题目生成测试(各学段)
  • 答题评分测试

边界测试

  • 密码格式边界测试
  • 题目数量边界测试10-30题
  • 邮箱格式验证测试

已知限制

  • 邮箱服务依赖QQ邮箱SMTP服务需配置正确的授权码
  • 题目数量建议10-30题过多可能影响性能
  • 网络要求:发送验证码需要网络连接
  • 平台兼容主要支持Windows其他平台可能需调整

开发团队

  • 班级软1
  • 组长:[彭云昊]202326010111
  • 组员:[王祖旺]202326010117