# online_edu **Repository Path**: danielYL/online_edu ## Basic Information - **Project Name**: online_edu - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在线教育平台系统 ## 项目简介 本系统为C++实现的综合性在线教育平台,支持管理员、学员、教师三类角色,涵盖课程管理、学习进度、在线测试、数据分析、社区互动、学习推荐等功能,体现了面向对象设计与多种设计模式。 ## 主要功能 - **管理员端**:课程分类管理、课程管理、用户管理、权限管理、数据统计 - **教师端**:我的课程、发布课程、学员管理 - **学员端**:课程浏览、我的学习、我的考试、个人中心 - **拓展功能**: - 学习路径推荐(学员菜单5) - 社区(学员菜单6,支持发帖、浏览讨论区) ## 文件结构 - main.cpp:主流程 - user.h/cpp:用户体系(含Admin/Teacher/Student) - course.h/cpp:课程体系 - course_category.h/cpp:课程分类 - study_record.h/cpp:学习记录 - course_review.h/cpp:课程评价 - exam.h/cpp:考试 - statistics.h/cpp:数据统计 - factory.h/cpp、observer.h/cpp、strategy.h/cpp:设计模式实现 - utils.h/cpp:工具与文件IO - recommendation.h/cpp:学习推荐系统 - community.h/cpp:社区系统 - CMakeLists.txt:CMake构建文件 - data/:数据持久化目录(CSV文件) ## 编译与运行 1. 使用CMake或直接用g++编译所有源文件。 2. 运行生成的`online_edu.exe`。 3. 数据文件自动保存在`data/`目录。 ## 菜单结构与功能说明 ### 系统主菜单 - **1) 管理员**:进入管理员登录与功能菜单。 - **2) 用户**:进入学员/教师登录与功能菜单。 - **3) 退出系统**:关闭程序。 ### 管理员菜单 - **1. 课程分类管理** - 进入课程分类管理子菜单。 - **2. 课程管理** - 进入课程管理子菜单。 - **3. 用户管理** - 进入用户管理子菜单。 - **4. 权限管理** - 查看和修改用户角色权限。 - **5. 数据统计** - 查看课程进度、用户活跃度、课程收入等统计信息。 - **6. 退出** - 返回系统主菜单。 #### 课程分类管理子菜单 - **1. 查看所有分类**:显示所有课程分类信息。 - **2. 新增分类**:输入名称、描述、父分类ID(顶级为-1)。 - **3. 修改分类**:先显示所有分类,输入要修改的分类ID,修改名称和描述。 - **4. 删除分类**:输入要删除的分类ID。 - **5. 返回上级菜单** #### 课程管理子菜单 - **1. 查看所有课程**:显示全部课程详细信息。 - **2. 新增课程**:先显示所有分类,输入课程信息(名称、描述、价格、课时、难度、分类ID)。添加后自动保存。 - **3. 修改课程**:先显示所有课程,输入要修改的课程ID,修改相关信息。 - **4. 删除课程**:输入要删除的课程ID。 - **5. 章节管理**:输入课程ID后,可查看和新增章节。 - **6. 返回上级菜单** #### 用户管理子菜单 - **1. 查看所有用户**:显示所有用户信息。 - **2. 新增用户**:输入姓名、联系方式、角色。 - **3. 修改用户**:先显示所有用户,输入要修改的用户ID,修改信息。 - **4. 删除用户**:输入要删除的用户ID。 - **5. 返回上级菜单** #### 权限管理子菜单 - **1. 查看用户权限**:显示所有用户及其角色。 - **2. 修改用户角色**:输入用户ID和新角色编号。 - **3. 返回上级菜单** #### 数据统计子菜单 - **1. 课程学习进度统计**:显示每门课程的完成率。 - **2. 用户活跃度分析**:显示学员学习时长排名。 - **3. 课程收入统计**:显示每门课程的总收入。 - **4. 返回上级菜单** ### 学员菜单 - **1. 课程浏览与搜索**:查看所有课程信息。 - **2. 我的学习**:进入学习相关子菜单。 - **3. 我的考试**:进入考试相关子菜单。 - **4. 个人中心**:进入个人信息与账户管理子菜单。 - **5. 学习推荐**:系统根据学习历史和兴趣推荐课程和学习路径。 - **6. 社区**:进入社区讨论区。 - **7. 退出**:返回系统主菜单。 #### 我的学习子菜单 - **1. 查看已购课程**:显示已购买课程列表。 - **2. 录入学习进度**:输入课程ID、学习时间、完成情况。 - **3. 录入课程评价**:输入课程ID、评分、评价内容。 - **4. 学习统计**:显示学习课程数和总时长。 - **5. 返回** #### 我的考试子菜单 - **1. 查看考试列表**:显示可参加的考试。 - **2. 录入考试成绩**:输入考试ID和成绩。 - **3. 考试统计**:显示考试数和平均分。 - **4. 返回** #### 个人中心子菜单 - **1. 我的信息**:显示学员基本信息。 - **2. 消费记录**:显示消费明细和总消费。 - **3. 充值**:输入金额充值账户。 - **4. 修改密码**:修改登录密码。 - **5. 返回** #### 社区子菜单 - **1. 查看讨论帖**:浏览所有讨论区帖子。 - **2. 发帖**:输入标题和内容发布新帖。 - **3. 返回** ### 教师菜单 - **1. 我的课程**:查看自己发布的课程。 - **2. 发布课程**:提示由管理员统一管理。 - **3. 学员管理**:查看学员学习进度和成绩。 - **4. 退出**:返回系统主菜单。 ## 其它功能说明 ### 推荐系统 - **入口**:学员主菜单选择"学习推荐"。 - **操作**: - 系统自动分析学习历史和兴趣,推荐适合的课程和学习路径。 ### 数据持久化 - 所有数据(用户、课程、分类、学习记录、评价、考试成绩)均自动保存在`data/`目录下的csv文件。 - 新增、修改、删除操作均会实时保存。 ### 技术亮点 - 面向对象设计,使用多种设计模式(工厂、观察者、策略等)。 - 支持模板类与运算符重载。 - 全面文件IO持久化。 - 控制台中文友好显示。 ### 常见问题 - **中文乱码**:已自动设置控制台为UTF-8。 - **data目录不存在**:系统自动创建。 如有更多问题或建议,欢迎反馈!