# oop **Repository Path**: HGedy/oop ## Basic Information - **Project Name**: oop - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-20 - **Last Updated**: 2025-06-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在线学习系统 ## 系统架构 ### 包结构说明 - **controller**: 控制器层,处理HTTP请求和响应,定义API接口 - **service**: 业务逻辑层,实现具体的业务功能和数据处理 - **mapper**: 数据访问层,使用MyBatis进行数据库操作 - **entity**: 实体类,对应数据库表结构 - **dto**: 数据传输对象,用于前后端数据交互 > 看代码的顺序: controller->service->dto > 1. 看controller首部注释,找到自己子系统对应的controller > 2. 看controller的方法注释,找到各个实现方法 > 3. 方法中调用的service,一般都是数据库查询用 > 4. 方法的出入参一般都是dto,也就是前后端交互携带的参数 ## 六大子系统 ### 1. 题目管理子系统(题库) **主要功能**: 完成教师管理,教师对题目的增删改查,支持选择题、填空题、带贴图的主观题等多种题型。 **涉及的表**: - `questions` - 题目表 - `question_properties` - 题目性质表 - `question_property_relation` - 题目性质关系表 **核心Controller**: - [QuestionsController.java](src/main/java/com/ooptest/controller/QuestionsController.java) - 题目的CRUD操作 **相关文件**: - `QuestionEntity.java` - 题目实体类 - `QuestionsService.java` - 题目业务逻辑 - `QuestionsMapper.java` - 题目数据访问 ### 2. 题目性质管理子系统 **主要功能**: 管理每道题的答案、知识点、难易度、章节、出错率、易错点等属性。 **涉及的表**: - `question_properties` - 题目性质表 - `question_property_relation` - 题目性质关系表 - `questions` - 题目表 **核心Controller**: - [QuestionPropertiesController.java](src/main/java/com/ooptest/controller/QuestionPropertiesController.java) - 题目属性管理 **相关文件**: - `QuestionPropertyEntity.java` - 题目属性实体类 - `QuestionPropertiesService.java` - 题目属性业务逻辑 - `QuestionPropertiesMapper.java` - 题目属性数据访问 ### 3. 自动组卷子系统 **主要功能**: 根据设置的总分、难易度、题目种类和数量,从题库中自动生成试卷,确保知识点覆盖和难度匹配。 **核心Controller**: - [AutoPaperRulesController.java](src/main/java/com/ooptest/controller/AutoPaperRulesController.java) - 自动组卷规则管理 **相关文件**: - `AutoPaperRuleEntity.java` - 自动组卷规则实体类 - `AutoPaperRulesService.java` - 自动组卷业务逻辑 - `AutoPaperRulesMapper.java` - 自动组卷数据访问 ### 4. 手动组卷子系统 **主要功能**: 手动选择题目组成试卷,设置总分、难易度和题目类型,自动验证知识点覆盖率(85%以上)和难度要求。 **涉及的表**: - `papers` - 试卷表 - `paper_questions` - 试卷于题目关联表 **核心Controller**: - [PapersController.java](src/main/java/com/ooptest/controller/PapersController.java) - 试卷管理(包含手动组卷) **相关文件**: - `PaperEntity.java` - 试卷实体类 - `PaperQuestionEntity.java` - 试卷题目关联实体类 - `PapersService.java` - 试卷业务逻辑 - `PapersMapper.java` - 试卷数据访问 ### 5. 考试子系统 **主要功能**: 考场管理、考试发卷、限时考试、客观题自动判分、主观题教师给分、总分计算。 **涉及的表**: - `exams` - 考试表 - `student_exams` - 学生考试表 - `student_answers` - 学生答案表 **核心Controller**: - [ExamsController.java](src/main/java/com/ooptest/controller/ExamsController.java) - 考试管理 - [StudentExamsController.java](src/main/java/com/ooptest/controller/StudentExamsController.java) - 学生考试操作 **相关文件**: - `ExamEntity.java` - 考试实体类 - `StudentExamEntity.java` - 学生考试记录实体类 - `StudentAnswerEntity.java` - 学生答案实体类 - `ExamsService.java` - 考试业务逻辑 - `StudentExamsService.java` - 学生考试业务逻辑 ### 6. 学生管理子系统 **主要功能**: 学生的院系班级分配、以班级为单位选课、学生管理、学生情况分析(历次考试成绩波动、错误知识点统计等)。 **涉及的表**: - `students` - 学生表 - `student_exams` - 学生考试表,记录学生参加了哪些考试拿多少分 - `student_answers` - 学生答案表,记录学生各道题的答案 - `student_error_stats` - 学生错误统计表,记录学生错误的知识点和次数 - `student_score_stats` - 学生成绩统计表,记录学生历次考试的成绩和波动情况 **核心Controller**: - [StudentsController.java](src/main/java/com/ooptest/controller/StudentsController.java) - 学生基本信息管理 - [StudentAnalysisController.java](src/main/java/com/ooptest/controller/StudentAnalysisController.java) - 学生数据分析 **相关文件**: - `StudentEntity.java` - 学生实体类 - `StudentCourseEntity.java` - 学生选课实体类 - `StudentsService.java` - 学生业务逻辑 - `StudentCoursesService.java` - 学生选课业务逻辑 ## 技术栈 - **后端框架**: Spring Boot - **数据库**: MySQL - **ORM框架**: MyBatis-Plus(用来方便访问MySQL的增删改查的) - **开发工具**: Maven