Merge branch 'develop'

main
jiazhuo 6 months ago
commit 07f9891d63

@ -1,2 +1,206 @@
# 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 21Java 开发环境
## **环境配置与运行**
后端运行:
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文件夹里存储用户答题数据

@ -6,7 +6,8 @@
"scripts": {
"start": "electron .",
"dev": "electron . --dev",
"build": "electron-builder"
"build": "electron-builder",
"dist": "electron-builder --publish=never"
},
"devDependencies": {
"electron": "^22.3.27",
@ -21,11 +22,29 @@
"files": [
"resources/**/*",
"!resources/node_modules",
"package.json"
"!**/*.map",
"!**/*.log"
],
"win": {
"target": "nsis"
}
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"icon": "resources/icon.ico"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "数学学习系统"
},
"compression": "maximum",
"asar": true
},
"dependencies": {
"node-fetch": "^2.7.0"

@ -0,0 +1,13 @@
<component name="ArtifactManager">
<artifact type="jar" name="math-learning-system:jar">
<output-path>$PROJECT_DIR$/../../../../../../electronPro/MATHLEARN/backend</output-path>
<root id="archive" name="math-learning-system.jar">
<element id="directory" name="META-INF">
<element id="file-copy" path="$PROJECT_DIR$/META-INF/MANIFEST.MF" />
</element>
<element id="module-output" name="math-learning-system" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar" path-in-jar="/" />
<element id="extracted-dir" path="$MAVEN_REPOSITORY$/javax/activation/activation/1.1.1/activation-1.1.1.jar" path-in-jar="/" />
</root>
</artifact>
</component>

@ -6,10 +6,8 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="math-learning-system" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="math-learning-system" target="9" />
</bytecodeTargetLevel>
</component>
</project>

@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: com.mathlearn.Main
Loading…
Cancel
Save