前言
✨ **博主介绍:**一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍
👇 精彩专栏 推荐订阅👇
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
第一章 绪论
1.1 研究背景与意义
中学教学管理长期以来一直依靠纸质作业本、课堂口头通知和线下成绩登记来完成,教师发布学习资料、学生提交作业、家长了解学习进度等环节都存在着明显的滞后和割裂。早期的部分学校使用论坛、班级网站等方式发布信息,但是碎片化、单向的资源分布、低频次的互动都难以满足教学过程中高频次的互动需求,作业批改反馈周期长、课程学习进度难掌握、师生间评价信息不对等的现象也非常普遍,现有的方式已经不能适应目前中学教育对于教学流程协同、学习数据连贯性的要求了1。新一代中学生是数字原住民,对于学习资源的即时获取、作业任务的在线完成、学习成果的快速反馈有着强烈的期望,这样的需求层面的深刻变化迫使教学管理工具向一体化平台转变2。
创建统一的中学在线学习平台可以将课程发布、作业流转、学习进度追踪、教学评价等整合到一个系统中,消除时间滞后、数据孤岛等现象,使教师减轻负担、学生有明确的学习路线图、管理者能得到客观的教师教学质量评价数据。平台的实践使得中学教学管理流程更加规范、透明,也给同类K12教育信息化产品设计提供可以复用的功能架构及业务整合经验。
1.2 国内外研究现状
国内中学教育信息化平台由最初的校园网站信息发布发展到现在的独立教学管理系统。早期的新浪教育、搜狐教育等门户网站主要是提供试题库和课件下载,师生互动只是静态资源的获取,没有实现真正的互动3。之后以学科网、中学学科网为代表的资源型平台开始支持教师上传教案和试卷,但是没有作业流程管理和学习追踪的功能4。2015年左右,一起作业、作业帮等应用进入作业布置和在线批改领域,使教学流程从线下走向线上,但是功能主要集中在练习环节上,课程管理、学习计划、评价模块比较独立5。近几年来,腾讯教育、钉钉教育将直播授课、作业发布、家校沟通等融合在一起,形成了一个一体化的教学入口,但是各个模块之间数据的贯通程度还比较浅,课程学习进度和作业完成情况没有被关联起来进行分析6。现有的平台大多只针对一个痛点进行设计,没有对课程信息、学习过程、作业闭环、评价反馈等全过程进行考虑7。
国外中学教育信息化开始的比较早,平台建设有数据驱动、生态整合的特征。Bleacher Report最初只做体育资讯的聚合,后来开始加入校园体育教学案例和战术分析模块,成为体育课程辅助工具8。SofaScore、Onefootball以实时数据推送为主,给中学体育教学提供赛事数据解读、战术板功能,帮助老师进行数据化的教学9。欧洲豪门俱乐部官方App开辟了青训教案专区,教练可以下载训练计划并布置视频分析作业,达到教学资源共享的目的10。Fantasy Premier League的积分系统被多所中学用在了数学和统计课上,学生会创建虚拟球队来开展数据分析项目11。谷歌教育套件和Canvas LMS在美国中学中被广泛使用,教师发布课程材料,学生在线提交作业,系统会自动进行查重和评分,学习进度数据也会实时同步到学校的管理系统当中12。国外的实践证明,教学平台由原来的单个工具向课程资源、作业流程、学习评价的全面整合发展。
1.3 主要研究内容
课题设计并实现基于微服务架构的中学在线学习平台,面向学生、教师、管理员三类用户,整合学习计划、课程学习、作业布置与完成、作业批改、课程评价等核心业务流程。系统采用前后端分离架构与Spring Cloud微服务技术,完成需求分析、模块设计、数据库设计与实现测试,着力解决教学过程中信息流转不畅、学习进度不可追踪、评价反馈滞后等实际问题,为中学提供一体化的教学协同环境。
第二章 相关技术介绍
2.1 Java语言
Java是一种高级的编程语言,被广泛使用,有跨平台性,可以在不同的操作系统上运行。Java用Java虚拟机(JVM)来实现平台无关性,程序的字节码文件可以在任何安装了JVM的设备上运行,而不需要重新编译。Java语言具备面向对象的特性,用类和对象来组织代码,支持封装,继承以及多态这些基本特性,可以有效地提升程序的可维护性与重用性13。Java内存管理由自动垃圾回收机制来控制,能够很好地管理内存的使用,不会导致内存泄漏和内存溢出等问题的发生。Java语法简洁明了,接近自然语言,降低了开发者的学习难度,执行效率高。
Java语言有着丰富的标准库,包含各种数据结构、网络通信、输入输出、多线程处理等,可以支持开发者进行不同领域应用的开发。为了简化开发过程,Java提供了很多工具、框架的支持,比如Spring框架、Hibernate框架、Apache Struts等等。Java也被广泛地用于企业级开发,在大型系统、分布式系统、Web应用和移动应用开发等领域14。由于其拥有良好的生态系统以及强大的社区支持,Java已经成为许多企业选择开发语言的主要选择。Java的稳定、兼容性比许多现代编程语言要好,在技术更新很快的环境中可以长久地使用。
2.2 Spring Cloud微服务架构
Spring Cloud是基于Spring Boot构建的分布式系统开发工具集,它包含了微服务的基础组件。服务注册和发现机制使用Eureka或者Nacos来完成,每一个微服务实例启动的时候都会向注册中心上报自己的网络位置信息,消费者调用服务的时候可以从注册中心获取到可用的实例列表。配置中心统一管理各个环境的配置文件,配置变更之后客户端可以动态刷新。API网关是系统对外部请求进行路由到相应的微服务,同时对认证鉴权和流量控制。断路器监控服务调用状态,如果失败率达到阈值就触发熔断逻辑,防止故障蔓延。负载均衡器在客户端侧完成服务实例之间的请求分发,提升系统的吞吐量。分布式追踪组件收集调用链数据,可以分析出服务间的依赖关系以及性能瓶颈15。这四个组件一起构成微服务架构的基础,服务实例是独立部署的、相互隔离的,各自都有自己的数据库以及业务状态。消息总线用来传递配置变更事件,服务之间用轻量级的HTTP通信或者消息队列来交互。平台运行期间,用户服务、课程服务、作业服务各自搭建起独立的微服务,它们借助注册中心来找到对方的地址,服务调用的时候会经由负载均衡挑选出对应的实例。配置中心存放各个环境的参数配置,网关对前端请求的路由转发进行统一处理,断路器在作业服务响应变慢的时候保护用户服务不受到影响。
2.3 MySQL数据库
MySQL是关系型数据库管理系统,数据是以二维表的形式存储的。表是由行和列组成的,列给出了数据的属性名称和数据类型,行是具体的数据记录。表和表之间用主键、外键来建立联系,主键是唯一的,外键引用别的表的主键值来保证参照完整。存储引擎层完成数据的读写操作,InnoDB是默认事务型引擎,行级锁、多版本并发控制。事务提交时对操作的修改会写入日志,系统崩溃之后再重启时用重做日志来恢复已经提交的事务,未提交的事务则通过撤销日志回滚。索引使用B+树结构组织数据,聚簇索引把数据行和主键一起存入,辅助索引包含索引列值和主键引用,查询时先通过辅助索引找到主键值再回表获取完整数据行16。SQL优化器解析查询语句得到执行计划,根据表统计信息来选择索引访问路径。连接池可以保存很多的数据库连接给应用重复使用,减小连接建立的耗时。预处理语句把SQL模板和参数分开发送,数据库预编译模板后多次执行只需要传入参数,从而防止SQL注入的风险。学生表、教师表、课程表用外键关联,作业提交记录用事务保证成绩和反馈一起写入成功,学习进度查询用复合索引快速检索特定学生某门课程的学习状态。
2.4 前后端分离架构
前后端分离架构把用户界面和业务逻辑分成两个独立的部分。前端完成页面渲染和交互处理,后端做业务规则和数据处理,二者用HTTP协议交换JSON格式的数据。前端项目独立开发和部署,使用构建工具把源代码打包成静态资源,托管到Web服务器或者内容分发网络上。用户访问时浏览器加载HTML骨架和JavaScript文件,页面初始化之后,用Ajax请求向后端接口获取动态数据填充视图。后端不再返回HTML页面,而是一些RESTful风格的API接口,每一个接口都对应着一个资源以及对应的资源操作,URL路径表示的是资源集合或者单个实体,HTTP方法来表示动作语义。接口定义用Swagger或者OpenAPI规范来描述请求参数和响应结构,前后端团队按照规范同步开发。跨域请求是由后端的CORS策略进行处理的,只允许指定域名访问接口资源。用户登录之后服务端生成令牌并返回给前端,前端将令牌存储起来,在后面请求时带上令牌作为Authorization头,服务端解析令牌进行身份认证。课程信息由服务端获取之后,前端进行页面组装,作业提交时表单数据序列化为JSON发送到后端,后端处理完之后返回操作结果。API网关是所有微服务的统一入口,前端只需要和网关通信,网关根据请求路径将请求路由到不同的微服务上。使得前端技术和后端技术各自独立发展,移动端和PC端可以使用同一个后端接口,系统扩展的时候增加新的前端应用不会影响到已有的服务。
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
系统采用B/S架构模式搭建,后端用Spring框架体系做业务逻辑处理,前端用Vue框架来实现界面交互,数据存储依靠MySQL关系型数据库。经过多年的不断发展,Spring框架已经形成了一个相对稳定的组件生态系统,控制反转和面向切面编程机制可以很好地组织业务代码。Vue框架采用组件化的开发方式,视图层和数据层之间用响应式系统来同步。MySQL数据库可以做事务处理以及索引优化,可以满足结构化数据的存储和查询要求。开发环境使用JDK和集成开发工具,在目前的开发实践中被广泛使用。作者经过课程学习以及项目练习掌握了相关的技术使用方法,可以完成模块编码和调试的工作。系统运行过程中会出现数据库连接超时、并发写入冲突等问题,可以借助连接池参数的调节以及事务隔离级别设置来加以控制。因此该系统技术上是可行的。
3.1.2 操作可行性
系统界面布局参照常见的在线教育平台设计方式,主要的操作入口放在页面顶部导航栏和左侧菜单区。管理员进入后台之后可以直接找到用户管理、课程管理、作业管理等各个模块的入口,每个模块内部使用列表展示和表单操作相结合的方式。教师登录之后首先会看到课程列表和待批改的作业提醒,点击课程名称就可以进入到该课程的详情页面进行资料上传以及作业批改。学生进入学习空间之后可以查看学习计划和课程进度,作业任务以卡片的形式展示方便快速提交。用户日常使用时只需要掌握基本的网页浏览和表单填写的操作,系统上线以后会以初步的引导使用户熟悉系统的功能分布,后期维护是由管理员定期对数据备份以及日志进行检查。因此系统操作上是可行的。
3.1.3 市场可行性
中学阶段教学过程中教师布置作业、批改作业、记录学生成绩,学生查看课程安排、提交作业、了解学习反馈等,在目前学校日常运行中普遍存在。部分学校用纸质作业本和课堂登记的方式完成以上流程,教师需要手工统计未交作业的名单,学生不能及时得到批改的结果。另外一些学校用不同的独立软件分别处理课程通知、作业提交和成绩发布,学生需要在各个应用之间来回切换才能看到信息。本系统把课程信息发布、作业布置与提交、批改反馈、学习计划制定等各功能集成在一个平台上,教师发布作业之后学生立即得到提醒,批改完毕之后成绩会自动同步到学生的学籍档案里。整合的方式在现有的学校场景中具有应用空间。所以系统在市场方面是可行的。
3.1.4 社会可行性
系统在设计和开发过程中遵守网络安全法以及个人信息保护的相关规定,用户注册时所填写的必要信息只有姓名、学号或者工号、联系方式,密码被加密之后存入系统中。教师资质证书、学生信息等资料上传之后只能管理员在后台查看,成绩、评价数据按课程隔离显示。系统投入使用以后,教师可以通过平台把学习资料、作业要求等传给学生,降低纸质打印、人工分发的工作量。学生随时可以查看自己的学习进度以及作业的批改情况,家长想要了解孩子的学习状况可以要求学生自行将系统里显示的学习记录呈现出来。系统运行过程中不会对用户的个人数据进行商业用途的利用,不会推送商业广告,不会采集与教学无关的行为数据。因此,在社会上是可行的。
3.1.5 经济可行性
系统开发阶段主要的投入是开发人员工时成本,使用的是社区版IDE和开源框架,不需要支付商业软件的授权费。运行阶段的服务器可以部署在已经存在的机房设备上,操作系统以及数据库都采用开源的方式。系统上线之后管理员使用浏览器直接访问后台进行日常维护,不需要另外购买专用客户端。学生和教师用个人电脑或者移动设备通过校园网访问系统,不需要另外购买硬件。系统所具有的功能包括课程发布、作业流转、成绩反馈等主要的教学环节,可以取代一部分纸质的流程和分散的电子表格记录的方式。因此系统在经济上是可行的。
3.2 功能需求分析
管理员登录系统之后可以对管理员账号进行维护操作,对学生用户信息进行查看、添加、修改和删除处理,对教师用户信息进行查看、添加、修改和删除处理。管理员负责学习计划相关的内容管理,对课程类型进行添加、修改和删除,对课程信息进行发布、更新和下架,查看课程学习过程中各项记录。管理员可以查看作业布置情况,查看作业完成状态,对已经批改的作业进行复核,浏览课程评价内容。管理员角色用例图如图3-1所示。

图3-1管理员用例图
教师登录系统之后可以发布课程信息,对已经发布的课程内容进行更新维护。教师可以查看课程学习情况,了解学生参加课程的情况。教师可以布置作业,设定作业要求和截止时间,查看学生作业完成情况,对学生的作业进行批改并给予评分和评语。教师可以查看学生提交的课程评价,了解学生对教学的反馈。教师角色用例图如图3-2所示。

图3-2教师用例图
学生登录系统之后就可以制定自己的学习计划,设定学习目标和时间表。学生可以浏览课程信息、参加课程学习,查看课程视频和学习资料。学生可查看教师布置的作业,线上提交作业文档,查看已交作业的批改结果与评分。学生可以就所学的课程进行评价,填入分数及文字反馈。学生角色用例图如图3-3所示。

图3-3学生用例图
**
3.3 非功能需求分析
3.3.1 可用性需求
系统页面加载时间控制在3秒之内,用户进行查询操作之后结果在2秒之内显示出来。界面布局统一风格,导航菜单位置固定,功能按钮用通用命名规范。表单输入框有明确的字段标签,必填项用标识来区分,输入格式错误时给出具体的提示信息。用户完成作业提交或者课程评价等操作之后,系统会给出成功或者失败的状态提示。教师批改作业时批注框和评分输入框并排显示,降低页面切换次数。学生查看课程学习进度时进度条直接显示已学完的比例,未学完的章节用不同的颜色表示。系统帮助文档放在页面底部的链接处,用户点击之后就可以查看常见的操作说明。不同的角色登录之后的首页会显示对应的角色所对应的展示内容,管理员可以查看待审核的教师列表,教师可以查看待批改的作业数量,学生可以查看正在进行的课程进度。
3.3.2 可靠性需求
系统连续7天无由于程序出错而引起的宕机或者服务中断情况。用户提交数据的时候系统会做完整性校验,在网络异常或者服务器响应超时的情况下提示用户稍后重试,已经接收的数据不会重复写入。数据库定时做全量备份,备份文件存放在独立的存储设备上。服务器发生断电或者重启的时候,系统可以自动恢复运行,没有完成的事务操作会回滚到一致的状态。并发访问场景下二十名教师同时批改作业或者五十名学生同时提交作业时,系统可以保持正常的响应,不会出现数据混乱或者死锁的情况。作业提交截止时间到之后系统就关闭了提交入口,状态的改变很精确,没有出现差错。课程学习过程中视频播放器具有断点续播的功能,学生再次进入课程时从上次停止的位置开始播放。
3.3.3 安全性需求
用户登录时密码被加密传输和存储,数据库里不会存有明文密码。不同的角色访问权限由后端接口鉴权控制,学生不能访问教师后台功能,教师不能修改管理员账户信息。用户会话超时时间为30分钟,超时之后需要重新登录才可以继续使用。教师上传的课程资料、学生提交的作业文件限定文件类型和大小,可执行文件、脚本文件不允许上传。系统会将用户所有的操作都进行日志记录,日志内容包含管理员审核教师资质、教师批改作业、学生提交作业等,日志保存时间为6个月及以上。数据库访问采用最小权限原则,应用程序连接账户只具有业务表的读写权限,不能修改系统表或者执行数据库管理命令。用户密码修改要验证原密码,邮箱或者手机号变更需要通过验证码来确认。
第四章 系统设计
4.1 系统架构设计
系统使用前后端分离的模块化架构设计,前端界面是用异步请求和后端服务进行数据交互的。用户在浏览器端进行课程浏览、作业提交、学习进度查询等操作时,请求会被封装之后发往后端接口。后端采用Spring框架来搭建业务逻辑层,控制器接收到请求之后会调用相应的服务类去处理具体的业务。服务层对数据进行校验、执行业务规则、做计算任务,并且最后会和MySQL数据库交互。数据库用来保存用户信息、课程内容、作业记录和评价数据这些主要业务信息,查询结果按照原来的方向回传给前端去展示。分层设计使各个模块的职责明确,控制器层处理请求和响应,服务层封装业务规则,数据访问层隔离数据库操作,之后的功能扩展只需要修改对应层次的代码即可17。系统整体架构如图4-1所示。

图4-1系统架构图
4.2 系统结构功能设计
系统以管理员、教师、学生三个用户角色为基础来建立功能模块。管理员主要是对后台所有的工作进行管理,即用户信息的管理、课程资源的分配、作业流程的监督等工作。教师用个人工作台发布课程、上传学习资料、布置作业并批改作业。学生使用个人学习空间制订学习计划,参加课程学习,提交作业,查看批改反馈。各个角色的功能互相衔接形成了一个完整的业务闭环,管理员审核通过的课程给教师发布,教师布置的作业由学生完成,批改好的结果同步到学习进度记录里。该系统功能结构如图4-2所示。

图4-2系统功能结构图
4.3 系统流程设计
4.3.1 总体业务流程设计
系统总体业务流程从用户登录开始,根据角色身份进入不同操作界面。管理员登录后执行用户审核与课程配置,教师登录后发布课程并布置作业,学生登录后制定学习计划并参与课程学习。学生提交作业后教师进行批改,批改结果反馈至学生学习档案,课程结束后学生可提交评价。各环节数据在系统中流转形成完整教学闭环,管理员监控整体运行状态。总体业务流程如图4-3所示。

图4-3系统总体业务流程图
4.3.2 课程发布流程设计
教师登录系统后进入课程管理界面,填写课程名称、课程类型、课程难度等基本信息,上传课程封面与教学视频文件。系统对提交内容进行格式校验,校验通过后生成待审核课程记录。管理员登录后台查看待审核列表,查阅课程资料与教师资质,审核通过后课程状态变更为已发布。课程发布流程如图4-4所示。

图4-4课程发布流程图
4.3.3 作业布置流程设计
教师进入课程详情页后选择作业布置功能,填写作业名称、作业要求与提交截止时间,上传作业文档附件。系统保存作业信息并关联当前课程与授课教师,作业状态初始为进行中。学生登录后可在对应课程下查看新布置的作业,系统记录作业布置时间用于后续统计。作业布置流程如图4-5所示。

图4-5作业布置流程图
4.3.4 作业提交流程设计
学生登录系统后进入作业列表页面,查看待提交作业条目。点击作业卡片进入详情页查阅作业要求,上传本地完成的作业文档。系统检查文件类型与大小是否符合限制,符合要求后保存提交记录并更新作业状态为已提交。学生可在提交历史中查看已上传文档,截止时间前允许重新上传覆盖原文件。作业提交流程如图4-6所示。

图4-6作业提交流程图
4.3.5 作业批改流程设计
教师登录后首页显示待批改作业数量,点击进入批改列表查看学生提交的作业文档。教师逐份查阅作业内容,在评分输入框中填写分数并录入文字评语。系统保存批改结果后更新作业状态为已批改,学生端实时查看到批改反馈。批改完成后系统记录批改时间与批改教师信息。作业批改流程如图4-7所示。

图4-7作业批改流程图
4.4 数据库设计
数据库设计是指根据业务需求构建数据存储结构的过程,关系型模型通过二维表组织数据,利用主键与外键约束维护实体间的参照完整性。规范化理论指导表结构设计,减少数据冗余并避免更新异常。在本系统中,数据库承担用户信息、课程资源、作业记录与评价数据的持久化任务,事务机制保证并发操作下数据的一致性,索引策略提升查询响应速度。合理的数据模型为系统稳定运行提供基础支撑18。
4.4.1 E-R图设计
E-R图(实体关系图)是一种用来做数据建模的图形化工具,描述实体、属性以及实体之间的关系。以图示的形式来辅助数据库结构的分析与设计,清楚地表明数据间的相互联系,利于后续的数据库开发及管理工作。下面给出系统全局E-R图以及各个实体的属性图**19**。
课程信息实体主要包括课程名称、课程类型、课程难度、教师用户等属性。课程信息实体属性图如图4-8所示。

图4-8课程信息实体属性图
课程学习实体主要包括课程名称、学习进度、学生用户、教师用户等属性。课程学习实体属性图如图4-9所示。

图4-9课程学习实体属性图
作业布置实体主要包括作业名称、课程名称、作业文档、要求时间等属性。作业布置实体属性图如图4-10所示。

图4-10作业布置实体属性图
作业完成实体主要包括作业名称、完成文档、完成日期、学生用户等属性。作业完成实体属性图如图4-11所示。

图4-11作业完成实体属性图
作业批改实体主要包括作业名称、教师评分、评估内容、批改日期等属性。作业批改实体属性图如图4-12所示。

图4-12作业批改实体属性图
课程评价实体主要包括课程名称、满意程度、评价内容、学生用户等属性。课程评价实体属性图如图4-13所示。

图4-13课程评价实体属性图
学生用户实体主要包括学生姓名、学生学号、学生性别、学生电话等属性。学生用户实体属性图如图4-14所示。

图4-14学生用户实体属性图
教师用户实体主要包括教师姓名、教师电话、资质证书等属性。教师用户实体属性图如图4-15所示。

图4-15教师用户实体属性图
学习计划实体主要包括计划名称、计划目标、计划内容、计划日期等属性。学习计划实体属性图如图4-16所示。

图4-16学习计划实体属性图
课程类型实体主要包括课程类型属性。课程类型实体属性图如图4-17所示。

图4-17课程类型实体属性图

图4-18系统E-R图
4.4.2 数据库表设计
数据库表设计就是根据业务需求来确定数据库表的结构、字段类型和关系。通过规范化的设计,保证数据的完整性、一致性、效率,避免冗余的数据,为后续的数据查询、存储、维护提供清晰的结构。以下是系统的数据库表设计展示。
课程信息表主要用于存储教师发布的课程核心数据,包括课程名称、课程类型、课程难度、教师用户等字段。如表4-1所示。
表4-1课程信息表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | course_information_id | int | 11 | 是 | 是 | 课程信息ID |
| 2 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 3 | course_type | varchar | 64 | 否 | 否 | 课程类型 |
| 4 | course_difficulty | varchar | 64 | 否 | 否 | 课程难度 |
| 5 | teacher_user | int | 11 | 否 | 否 | 教师用户 |
| 6 | teachers_name | varchar | 64 | 否 | 否 | 教师姓名 |
| 7 | teaching_vuser_ideo | varchar | 255 | 否 | 否 | 教学视频 |
| 8 | course_files | varchar | 255 | 否 | 否 | 课程文件 |
| 9 | cover_image | varchar | 255 | 否 | 否 | 封面图片 |
课程学习表主要用于记录学生参与课程的学习情况,包含课程名称、学习进度、学生用户、教师用户等字段。如表4-2所示。
表4-2课程学习表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | course_learning_id | int | 11 | 是 | 是 | 课程学习ID |
| 2 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 3 | learning_progress | varchar | 64 | 否 | 否 | 学习进度 |
| 4 | student_users | int | 11 | 否 | 否 | 学生用户 |
| 5 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 6 | student_number | varchar | 64 | 否 | 否 | 学生学号 |
| 7 | teacher_user | int | 11 | 否 | 否 | 教师用户 |
| 8 | teachers_name | varchar | 64 | 否 | 否 | 教师姓名 |
| 9 | study_date | date | - | 否 | 否 | 学习日期 |
作业布置表主要用于存储教师发布的作业任务信息,包含作业名称、课程名称、作业文档、要求时间等字段。如表4-3所示。
表4-3作业布置表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | operation_arrangement_id | int | 11 | 是 | 是 | 作业布置ID |
| 2 | job_name | varchar | 64 | 是 | 否 | 作业名称 |
| 3 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 4 | job_document | varchar | 255 | 否 | 否 | 作业文档 |
| 5 | job_requirements | text | 65535 | 否 | 否 | 作业要求 |
| 6 | required_time | date | - | 否 | 否 | 要求时间 |
| 7 | teacher_user | int | 11 | 否 | 否 | 教师用户 |
| 8 | teachers_name | varchar | 64 | 否 | 否 | 教师姓名 |
作业完成表主要用于记录学生提交作业的具体情况,包含作业名称、完成文档、完成日期、学生用户等字段。如表4-4所示。
表4-4作业完成表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | job_complete_id | int | 11 | 是 | 是 | 作业完成ID |
| 2 | job_name | varchar | 64 | 否 | 否 | 作业名称 |
| 3 | complete_document | varchar | 255 | 否 | 否 | 完成文档 |
| 4 | complete_profile | text | 65535 | 否 | 否 | 完成简介 |
| 5 | completion_date | date | - | 否 | 否 | 完成日期 |
| 6 | student_users | int | 11 | 否 | 否 | 学生用户 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 8 | student_number | varchar | 64 | 否 | 否 | 学生学号 |
作业批改表主要用于存储教师对学生作业的评分与反馈信息,包含作业名称、教师评分、评估内容、批改日期等字段。如表4-5所示。
表4-5作业批改表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | homework_correction_id | int | 11 | 是 | 是 | 作业批改ID |
| 2 | job_name | varchar | 64 | 否 | 否 | 作业名称 |
| 3 | teacher_rating | double | - | 否 | 否 | 教师评分 |
| 4 | assessment_content | text | 65535 | 否 | 否 | 评估内容 |
| 5 | correction_date | date | - | 否 | 否 | 批改日期 |
| 6 | days_completed | double | - | 否 | 否 | 完成天数 |
| 7 | student_users | int | 11 | 否 | 否 | 学生用户 |
| 8 | teacher_user | int | 11 | 否 | 否 | 教师用户 |
课程评价表主要用于存储学生对课程的满意度评分与文字反馈,包含课程名称、满意程度、评价内容、学生用户等字段。如表4-6所示。
表4-6课程评价表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | curriculum_evaluation_id | int | 11 | 是 | 是 | 课程评价ID |
| 2 | course_name | varchar | 64 | 否 | 否 | 课程名称 |
| 3 | degree_of_satisfaction | varchar | 64 | 是 | 否 | 满意程度 |
| 4 | evaluation_content | text | 65535 | 否 | 否 | 评价内容 |
| 5 | student_users | int | 11 | 否 | 否 | 学生用户 |
| 6 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 7 | teacher_user | int | 11 | 否 | 否 | 教师用户 |
| 8 | teachers_name | varchar | 64 | 否 | 否 | 教师姓名 |
学生用户表主要用于存储学生身份信息与账号关联数据,包含学生姓名、学生学号、学生性别、学生电话等字段。如表4-7所示。
表4-7学生用户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | student_users_id | int | 11 | 是 | 是 | 学生用户ID |
| 2 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
| 3 | student_number | varchar | 64 | 否 | 否 | 学生学号 |
| 4 | student_gender | varchar | 64 | 否 | 否 | 学生性别 |
| 5 | student_phone | varchar | 64 | 否 | 否 | 学生电话 |
| 6 | user_id | int | 11 | 是 | 否 | 用户ID |
教师用户表主要用于存储教师身份信息与教学资质数据,包含教师姓名、教师电话、资质证书等字段。如表4-8所示。
表4-8教师用户表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | teacher_user_id | int | 11 | 是 | 是 | 教师用户ID |
| 2 | teachers_name | varchar | 64 | 否 | 否 | 教师姓名 |
| 3 | teachers_telephone | varchar | 64 | 否 | 否 | 教师电话 |
| 4 | qualification_certificate | varchar | 255 | 否 | 否 | 资质证书 |
| 5 | user_id | int | 11 | 是 | 否 | 用户ID |
学习计划表主要用于存储学生制定的个人学习安排,包含计划名称、计划目标、计划内容、计划日期等字段。如表4-9所示。
表4-9学习计划表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | learning_plan_id | int | 11 | 是 | 是 | 学习计划ID |
| 2 | plan_name | varchar | 64 | 否 | 否 | 计划名称 |
| 3 | plan_objectives | varchar | 64 | 否 | 否 | 计划目标 |
| 4 | plan_content | text | 65535 | 否 | 否 | 计划内容 |
| 5 | planned_date | date | - | 否 | 否 | 计划日期 |
| 6 | student_users | int | 11 | 否 | 否 | 学生用户 |
| 7 | student_name | varchar | 64 | 否 | 否 | 学生姓名 |
课程类型表主要用于存储课程所属分类信息,包含课程类型字段。如表4-10所示。
表4-10课程类型表
| 序号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 备注 |
|---|---|---|---|---|---|---|
| 1 | course_type_id | int | 11 | 是 | 是 | 课程类型ID |
| 2 | course_type | varchar | 64 | 否 | 否 | 课程类型 |
第五章 系统实现
5.1 管理员功能实现
5.1.1 管理员管理功能实现
管理员管理模块用于维护平台管理员账号信息,支持对管理员账户进行添加或删除操作。新管理员注册时填写用户名与密码,系统对密码进行加密存储并分配操作权限。已有管理员登录后可在列表中查看其他管理员信息,必要时修改联系方式或重置密码。管理员管理界面如图5-1所示。

图5-1管理员管理界面
5.1.2 学生用户管理功能实现
学生用户管理模块集中展示已注册的学生信息,列表包含姓名、学号、性别、联系电话等字段。管理员进入该页面后可按条件筛选学生记录,审核新注册学生的身份信息。审核通过后学生账号状态变更为正常,被删除的学生记录移入回收站。学生用户管理界面如图5-2所示。

图5-2学生用户管理界面
5.1.3 教师用户管理功能实现
教师用户管理模块负责教师账号的审核与维护,教师提交注册申请后需上传资质证书材料。管理员查阅证书详情决定是否通过审核,审核通过后教师获得课程发布权限。管理员还可对已认证教师进行信息修改或账号禁用操作。教师用户管理界面如图5-3所示。

图5-3教师用户管理界面
5.1.4 学习计划管理功能实现
学习计划管理模块展示学生创建的所有学习计划,管理员可查看计划名称、目标内容与计划日期。系统按时间顺序排列计划记录,管理员通过计划列表了解学生整体学习安排。发现异常计划时可执行删除操作,删除后学生端计划同步消失。学习计划管理界面如图5-4所示。

图5-4学习计划管理界面
5.1.5 课程类型管理功能实现
课程类型管理模块用于维护课程分类信息,管理员可添加新的课程类型并填写类型名称。已存在的类型支持修改名称或删除操作,删除前系统检查该类型下是否存在关联课程。关联课程存在时提示管理员转移或处理后再执行删除。课程类型管理界面如图5-5所示。

图5-5课程类型管理界面
5.1.6 课程信息管理功能实现
课程信息管理模块展示教师提交的全部课程记录,管理员可查看课程名称、类型、难度与授课教师。待审核课程需查阅课程简介与教学视频,审核通过后课程状态变更为已发布。已发布课程若内容存在问题可执行下架操作,下架后学生端无法继续学习。课程信息管理界面如图5-6所示。

图5-6课程信息管理界面
5.1.7 课程学习管理功能实现
课程学习管理模块记录学生参与课程的学习数据,列表包含课程名称、学生姓名、学习进度与学习日期。管理员进入后可筛选特定课程查看学习完成情况,统计各课程的学生参与人数。异常学习记录可点击详情查看具体操作日志。课程学习管理界面如图5-7所示。

图5-7课程学习管理界面
5.1.8 作业布置管理功能实现
作业布置管理模块汇总教师布置的全部作业任务,管理员可查看作业名称、所属课程、要求时间与布置教师。列表按时间倒序排列,管理员通过筛选快速定位某门课程的作业记录。发现重复或错误布置的作业可执行删除操作。作业布置管理界面如图5-8所示。

图5-8作业布置管理界面
5.1.9 作业完成管理功能实现
作业完成管理模块展示学生提交作业的完成情况,列表包含作业名称、学生姓名、完成文档与完成日期。管理员可查看未提交作业的学生名单,导出完成统计报表用于教学评估。提交记录支持按课程或按班级筛选查看。作业完成管理界面如图5-9所示。

图5-9作业完成管理界面
5.1.10 作业批改管理功能实现
作业批改管理模块记录教师对学生作业的批改结果,列表展示评分、评语与批改日期。管理员进入后可查阅批改进度,统计各教师批改作业的数量。发现评分争议时可复核批改内容,必要时联系教师重新批改。作业批改管理界面如图5-10所示。

图5-10作业批改管理界面
5.1.11 课程评价管理功能实现
课程评价管理模块展示学生对课程的评分与文字反馈,管理员可查看评价内容、满意程度与评价时间。敏感词汇或不当言论可执行隐藏处理,隐藏后评价不再对学生和教师可见。管理员还可统计各课程的平均满意度。课程评价管理界面如图5-11所示。

图5-11课程评价管理界面
5.2 教师功能实现
5.2.1 课程信息功能实现
教师进入课程信息模块后可以查看自己发布的全部课程,列表按创建时间倒序排列。点击添加按钮进入课程填写页面,输入课程名称、选择课程类型与难度,上传封面图片与教学视频。提交后课程状态变为待审核,审核通过后学生方可选课学习。课程信息界面如图5-12所示。

图5-12课程信息界面
5.2.2 课程学习功能实现
课程学习模块展示选修某门课程的学生名单,教师可查看每位学生的学习进度百分比。点击学生姓名进入详情页,查阅该生视频观看时长与资料下载记录。学习进度异常的学生教师可单独发送提醒消息。课程学习界面如图5-13所示。

图5-13课程学习界面
5.2.3 作业布置功能实现
作业布置模块允许教师为所授课程添加新作业,填写作业名称、具体要求与提交截止时间,上传作业文档附件。已布置的作业显示在列表中,教师可随时修改作业要求或延长截止时间。作业布置界面如图5-14所示。

图5-14作业布置界面
5.2.4 作业完成功能实现
作业完成模块展示学生提交的作业文档列表,教师可查看每位学生的提交时间与完成状态。未提交学生名单以红色标记,点击文档名称可在线预览作业内容。提交记录支持按学号或姓名快速查找。作业完成界面如图5-15所示。

图5-15作业完成界面
5.2.5 作业批改功能实现
作业批改模块为教师提供评分与评语录入界面,教师逐份查阅学生提交的作业后填写分数。评语框支持文字输入,保存后批改结果实时同步至学生学习档案。已批改作业可再次修改评分。作业批改界面如图5-16所示。

图5-16作业批改界面
5.2.6 课程评价功能实现
课程评价模块展示学生对所授课程的评分与文字反馈,教师可查看每条评价的详细内容。评价列表按时间顺序排列,教师可通过评价了解教学效果,但无法修改或删除学生提交的内容。课程评价界面如图5-17所示。

图5-17课程评价界面
5.3 学生功能实现
5.3.1 学习计划功能实现
学习计划模块支持学生制定个人学习安排,填写计划名称、目标内容与计划日期后保存。已创建的计划显示在列表中,学生可随时修改计划内容或标记计划完成。计划过期后系统自动归档处理。学习计划界面如图5-18所示。

图5-18学习计划界面
5.3.2 课程学习功能实现
课程学习模块展示学生已选课程列表,点击课程封面进入学习页面观看教学视频。系统记录视频观看进度,下次进入时从上次停止位置继续播放。课程资料区提供课件下载链接。课程学习界面如图5-19所示。

图5-19课程学习界面
5.3.3 作业布置功能实现
作业布置模块汇总教师发布的所有作业任务,列表按截止时间排序,待提交作业突出显示。学生点击作业卡片进入详情页查阅作业要求与附件,确认无误后准备提交。作业布置界面如图5-20所示。

图5-20作业布置界面
5.3.4 作业完成功能实现
作业完成模块提供作业文档上传功能,学生选择本地文件后点击提交按钮上传。系统记录提交时间,截止时间前允许重新上传覆盖原文件。提交成功后作业状态更新为已完成。作业完成界面如图5-21所示。

图5-21作业完成界面
5.3.5 作业批改功能实现
作业批改模块展示已批改作业的评分与教师评语,学生可查看每份作业的批改结果。批改时间与评分一同显示,未批改作业显示等待批改状态。历史批改记录长期保存供复习参考。作业批改界面如图5-22所示。

图5-22作业批改界面
5.3.6 课程评价功能实现
课程评价模块允许学生对已学课程进行反馈,选择满意程度并填写文字评价后提交。提交后评价内容显示在列表中,学生可查看自己提交的历史评价但不可修改。课程评价界面如图5-23所示。

图5-23课程评价界面
第六章 系统测试
6.1 测试目的
系统测试旨在验证平台功能是否符合设计预期,检查各模块在实际运行环境中能否正确处理用户操作。通过执行预设的测试用例,发现程序中存在的逻辑错误与界面显示问题,确保学生、教师、管理员三类角色在使用过程中操作流畅。测试过程重点关注数据流转的准确性与系统响应的及时性,为后续系统部署与上线运行提供质量依据。
6.2 测试方法
本次测试采用黑盒测试方法,在不关注内部代码结构的前提下,通过输入数据验证输出结果是否正确。测试人员模拟学生、教师、管理员身份登录系统,按照功能模块逐一执行操作并记录实际结果。界面测试检查按钮点击是否生效、页面跳转是否符合预期,数据一致性测试验证数据库记录与界面显示是否匹配。测试过程覆盖所有核心功能点。
6.3 测试内容
课程信息管理测试用于验证管理员对课程内容的审核与发布功能是否正常运行。测试关注课程从提交待审核状态到审核通过后变为已发布状态的流程,同时检查已发布课程下架后学生端是否无法继续访问。课程信息管理测试如表6-1所示。
表6-1课程信息管理测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 课程审核功能 | 管理员登录后台查看待审核课程列表,选择一门课程点击审核通过 | 课程状态变更为已发布,教师端显示审核通过提示 | 符合预期 |
| 课程下架功能 | 管理员在已发布课程列表中选择一门课程点击下架 | 课程状态变更为已下架,学生端无法检索到该课程 | 符合预期 |
| 课程驳回功能 | 管理员审核课程时填写驳回意见并提交 | 课程状态变更为未通过,教师端收到驳回原因 | 符合预期 |
作业布置测试用于验证教师发布作业任务的功能是否准确实现。测试关注教师填写作业信息后系统是否正确保存数据,学生端是否及时显示新布置的作业。作业布置测试如表6-2所示。
表6-2作业布置测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 作业发布功能 | 教师选择课程后填写作业名称与截止时间,上传附件并提交 | 作业列表新增记录,状态显示进行中 | 符合预期 |
| 作业修改功能 | 教师对已发布作业修改截止时间后保存 | 作业截止时间更新,学生端看到修改后的时间 | 符合预期 |
| 作业删除功能 | 教师在作业列表中删除某条作业记录 | 学生端作业列表不再显示该作业 | 符合预期 |
作业完成测试用于验证学生提交作业的功能是否稳定可靠。测试关注学生上传文档后系统是否正确保存文件,提交状态是否及时更新,截止时间后提交入口是否自动关闭。作业完成测试如表6-3所示。
表6-3作业完成测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 作业提交功能 | 学生进入待提交作业页面,选择本地文档上传并确认提交 | 作业状态更新为已提交,提交时间正确记录 | 符合预期 |
| 重复提交功能 | 学生在截止时间前重新上传新文档覆盖原文件 | 完成文档被新文件替换,提交时间更新 | 符合预期 |
| 截止控制功能 | 学生在截止时间过后尝试进入提交页面 | 提交入口关闭,页面显示已截止提示 | 符合预期 |
作业批改测试用于验证教师对学生作业的评分功能是否准确执行。测试关注教师录入评分后学生端是否实时看到批改结果,评分数据是否与数据库记录一致。作业批改测试如表6-4所示。
表6-4作业批改测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 评分录入功能 | 教师查阅学生提交文档后填写分数与评语并保存 | 批改列表显示评分,学生端看到批改结果 | 符合预期 |
| 批改修改功能 | 教师对已批改作业修改评分后再次保存 | 评分更新,学生端显示修改后的分数 | 符合预期 |
| 批量批改功能 | 教师勾选多名学生后批量填写相同评分 | 所有选中学生均获得该评分,批改状态更新 | 符合预期 |
课程评价测试用于验证学生提交课程反馈的功能是否完整可用。测试关注学生选择满意度并填写评价后数据是否正确存储,教师端能否正常查看评价内容。课程评价测试如表6-5所示。
表6-5课程评价测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 评价提交功能 | 学生对已完成课程选择满意度等级并填写文字评价后提交 | 评价列表新增记录,教师端可见该评价 | 符合预期 |
| 重复评价限制 | 学生对同一门课程再次尝试提交评价 | 系统提示已评价过,禁止重复提交 | 符合预期 |
| 评价内容显示 | 教师登录后台查看课程评价列表 | 评价内容完整显示,包含学生姓名与评价时间 | 符合预期 |
学生用户管理测试用于验证管理员对学生账号的维护功能是否准确有效。测试关注管理员添加学生后该生能否正常登录,账号被禁用后登录是否受限。学生用户管理测试如表6-6所示。
表6-6学生用户管理测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 学生添加功能 | 管理员填写学生姓名、学号、班级信息后保存 | 学生列表新增记录,新账号可正常登录 | 符合预期 |
| 学生禁用功能 | 管理员将某学生账号状态修改为禁用 | 该学生再次登录时提示账号已被禁用 | 符合预期 |
| 学生信息修改 | 管理员修改学生联系电话后保存 | 学生个人资料页面显示更新后的电话 | 符合预期 |
学习计划测试用于验证学生创建与管理个人学习计划的功能是否运行正常。测试关注学生填写计划信息后系统是否正确保存,计划完成后状态更新是否准确。学习计划测试如表6-7所示。
表6-7学习计划测试用例表
| 测试内容 | 测试步骤 | 预期结果 | 实际结果 |
|---|---|---|---|
| 计划创建功能 | 学生填写计划名称、目标内容与计划日期后提交 | 计划列表新增记录,日期正确显示 | 符合预期 |
| 计划完成标记 | 学生点击计划卡片上的完成按钮标记计划已完成 | 计划状态变更为已完成,颜色变为灰色 | 符合预期 |
| 计划删除功能 | 学生在计划列表中删除某条计划记录 | 计划从列表中移除,数据库记录同步删除 | 符合预期 |
测试结论
对系统中的各个主要功能模块进行全面的测试,所有的测试用例按照计划完成,并进行验证。课程信息管理模块中,课程审核、下架、驳回等操作都达到了预期的效果。作业布置模块发布、修改、删除的数据流转正确。作业完成模块下学生的文档上传、重复提交以及截止时间控制均比较稳定。作业批改模块评分录入、修改和批量批改结果与学生端显示一致。课程评价模块中学生提交的评价被教师端自动拦截,不会出现重复提交的情况。学生用户管理模块中添加、禁用以及信息修改的功能都正确执行。学习计划模块的创建、完成标记和删除操作数据同步没有问题。从测试结果可知,本系统各个功能模块运行正常,数据处理满足设计要求。
源码获取
私信联系我即可~
大家点赞、收藏、关注、评论啦
👇 精彩专栏 推荐订阅👇
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️