# Pair-Programming ## **项目概述** 数学学习系统是一个面向小初高学生的数学学习软件,旨在通过生成针对性的数学题目帮助学生进行练习和巩固数学知识。该系统采用前后端分离架构,前端基于 Electron 构建桌面应用,后端使用 Java 提供 API 服务。 ## **项目结构** pair-programming/ ├── src/ │ ├── electron-frontend/ # Electron前端 │ │ ├── resources/ │ │ │ ├── renderer/ # 渲染进程页面 │ │ │ │ ├── main.html # 主页面 │ │ │ │ ├── login.html # 登录页面 │ │ │ │ └── result.html # 结果页面 │ │ │ │ └── quiz.html # 答题页面 │ │ │ │ └── register.html # 注册页面 │ │ │ ├── main.js # 主进程代码 │ │ │ └── preload.js # 预加载脚本 │ │ ├── package.json # 前端依赖配置 │ │ └── package-lock.json # 依赖版本锁定文件 │ └── java-backend/ # Java后端 │ └── math\_learn/ # 数学学习系统后端代码 │ ├── .idea/ # IntelliJ IDEA配置 │ ├── src/ # 源代码 │ │ └── com/mathlearn/ │ │ ├── Main.java # 主程序入口 │ │ ├── generator/ # 题目生成业务 │ │ │ ├── QuestionGenerator # 题目生成器接口 │ │ │ └── SeniorHighGenerator.java # 高中题目生成器 │ │ └──model/ # 实体类 │ │ ├── api/ # API响应类 │ │ ├── exam/ # 题目试卷类 │ │ └── user/ # 用户类 │ └── .gitignore # Git忽略文件 └──doc/ #说明文档 └── README.md ## **功能说明** **核心功能** 1.用户认证:支持用户注册、登录、退出、修改密码功能 2.题目生成:根据用户选择的学段(小学、初中、高中)生成相应难度的数学题目 3.答题系统:提供交互式答题界面 4.成绩评估:答题完成后计算并展示得分和评价 ## **题目生成** 系统根据不同学段生成相应难度的题目: 高中阶段包含对数等高级数学题目 题目数量可在 10-30 之间选择 生成过程包含详细日志记录,便于调试和跟踪 ## **技术栈** 前端技术 Electron:用于构建跨平台桌面应用 HTML/CSS:页面结构和样式 JavaScript:交互逻辑 node-fetch:网络请求 后端技术 Java:后端服务开发 JDK 21:Java 开发环境 ## **环境配置与运行** 后端运行: 1.确保安装 JDK 21 2.在 IDE(如 IntelliJ IDEA)中打开math\_learn项目 3.运行com.mathlearn.Main主类启动后端服务 ## **API 接口说明** 生成试卷 端点:/generate-exam 方法:POST 参数:   sessionId:用户会话 ID   userType:用户类型(小学 / 初中 / 高中)   questionCount:题目数量(10-30) 返回:包含试卷信息和第一题的 JSON 响应 ## **退出登录** 端点:/logout 方法:POST 参数: sessionId:用户会话 ID 返回:退出结果 ## **注意事项** 确保后端服务在本地 8080 端口运行,否则前端无法正常获取数据 题目生成可能需要一定时间,系统设置了 15 秒超时控制 若遇到连接问题,请检查: 1.后端 Java 程序是否运行 2.网络连接是否正常 3.端口 8080 是否被占用 ## **使用教程** 1.后端启动 两种路径: 1)安装mathlearn\_setup.exe安装包,根据指示完成下载 确保端口8080未被占用 backend目录有jar和exe两种方式启动后端服务器 2)在 IDE(如 IntelliJ IDEA,或其他编程软件)中打开math\_learn项目 确保端口8080未被占用 运行com.mathlearn.Main主类启动后端服务 2.前端运行: 安装mathlearn\_setup.exe安装包,根据指示完成下载 3.根据邮箱注册自己的账号并完成登录 4\.根据用户类型选择不同的题目类型,并输入所需题目数量(10-30题) 5\.完成答题并查看所得分数 6\.安装目录下backend/math_questions文件夹里存储用户答题数据