随着信息技术的迅猛发展和在线教育的广泛应用,传统教学模式正在向数字化、智能化方向转型。尤其在计算机网络课程的教学中,开发一个高效、灵活的在线学习平台成为提高教学质量和学生学习体验的重要途径。针对现有在线学习系统功能单一、用户体验不足等问题,本研究设计并实现了一个基于Spring Boot的计算机网络课程在线学习系统,以满足现代教育的多样化需求。
该系统采用Spring Boot作为核心框架,结合前端技术如HTML、CSS、JavaScript,以及数据库技术MySQL,实现了一个功能全面、用户体验友好的在线学习平台。
该系统通过学生端、教师端和管理员端的多功能集成,实现了在线教育的全面覆盖。学生端整合了在线考试、公告通知、课程资讯、实时通讯、课程信息、学习资料、课程书库和个人中心等功能,帮助学生随时随地学习,掌握学习进度,并通过在线考试巩固知识,同时还能记录错题和收藏重要内容,提升学习效果。教师端则包括课程信息管理、学习进度跟踪、学习资料上传及在线考试管理,帮助教师高效管理教学内容,合理安排考试,并实时掌握学生的学习情况,提升教学效率。管理员端负责系统的整体运作和维护,涵盖系统用户管理、课程信息维护、学习进度监控、学习资料与课程书库管理、系统管理、公告发布、资源管理及在线考试管理,确保系统运行的稳定性和安全性。
关键词:计算机网络课程在线学习系统;Java;springboot;Mysql
With the rapid development of information technology and the widespread application of online education, traditional teaching models are transforming towards digitization and intelligence. Especially in the teaching of computer network courses, developing an efficient and flexible online learning platform has become an important way to improve teaching quality and student learning experience. In response to the problems of single functionality and insufficient user experience in existing online learning systems, this study designs and implements a computer network course online learning system based on Spring Boot to meet the diverse needs of modern education.
The system adopts Spring Boot as the core framework, combined with front-end technologies such as HTML, CSS, JavaScript, and database technology MySQL, to achieve a comprehensive and user-friendly online learning platform.
The system achieves comprehensive coverage of online education through multifunctional integration of student, teacher, and administrator ends. The student end integrates functions such as online exams, announcement notifications, course information, real-time communication, course information, learning materials, course library, and personal center, helping students learn anytime, anywhere, grasp learning progress, consolidate knowledge through online exams, and also record mistakes and save important content to improve learning effectiveness. The teacher side includes course information management, learning progress tracking, learning material uploading, and online exam management, helping teachers efficiently manage teaching content, arrange exams reasonably, and real-time grasp students' learning situation to improve teaching efficiency. The administrator is responsible for the overall operation and maintenance of the system, including user management, course information maintenance, learning progress monitoring, management of learning materials and course libraries, system management, announcement publishing, resource management, and online exam management, ensuring the stability and security of the system operation.
Keywords: Computer Network Course Online Learning System; Java;springboot;Mysql
目 录
1.1选题背景
随着计算机网络技术的普及和信息技术的快速发展,在线学习系统在教育领域中扮演着越来越重要的角色,计算机网络技术为其提供了基本的保证。传统的课堂教学模式已经无法满足人们对学习方式的多样化需求,因此,设计一个基于Spring Boot的计算机网络课程在线学习系统是顺应时代发展的要求,并具有重要的实践意义。
基于springboot的在线学习平台能够为人们提供了一个更灵活、便捷的学习和教学方式的在线学习平台和渠道,并为管理者提供高效便捷的管理方法,springboot计算机网络课程在线学习系统设计与实现,将会使在线学习管理具有统一性、规范性和导向性,并且具有简便、安全、高效等特点。因此建立一个计算机网络课程在线学习系统是十分必要的。
1.2选题意义
本课题促进了教育的数字化转型,通过开发多功能集成的在线学习系统,突破了传统教学在时间和空间上的限制,使学生能够随时随地进行自主学习,满足现代教育对灵活学习的需求。其次,本系统提升了教学质量和效率,为学生提供了丰富的学习资源和互动功能,并为教师和管理员提供了高效的教学管理工具,极大地提高了教学管理的效率和学生的学习效果。此外,针对现有在线学习平台的功能性和用户体验不足的问题,本研究采用Spring Boot等先进技术,设计并实现了一个功能全面、用户体验良好的系统,为在线教育领域提供了一个具有实际应用价值的解决方案,进一步推动了在线教育的深入发展。
1.3论文结构安排
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代项目的背景、开发这个系统的现状以及论文的章节安排情况。
第2章 对系统的具体需求展开分析。
第3章 阐述了系统的设计,其中涵盖了功能设计以及数据库的设计。
第4章 阐明了系统各个功能模块的实现,以图文的形式进行展示。
第5章 罗列了部分系统调试与测试的记录。
第6章 介绍了系统的结论。
1.4相关技术说明
本系统采用了Java语言开发,后端使用Spring Boot框架以简化应用的开发与管理,结合MyBatis Plus增强的CRUD功能,实现了高效的数据操作。同时,前端采用Vue框架进行开发,优化了用户界面的渲染和交互体验,MySQL数据库则提供了强大的数据存储与管理支持。通过这些技术的集成,系统在开发效率、前后端分离、可维护性和稳定性方面得到了显著提升,满足了现代化应用的需求。
2.1系统可行性分析
2.1.1技术可行性分析
计算机网络课程在线学习系统存储所使用的是Mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用springboot框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前springboot框架也是很多用户选择的框架之一。
2.1.2经济可行性分析
在开发计算机网络课程在线学习系统中所使用的开发软件像Java开发工具、springboot框架、MySQL数据库等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
2.1.3操作可行性分析
此次项目设计的时候参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
2.2系统需求分析
2.2.1功能需求分析
springboot计算机网络课程在线学习系统针对用户需求进行划分,主要分为注册用户、教师用户和管理员三个模板,提供了丰富的功能,具体功能分析如下:
学生用户:
(2)首页:当注册用户进入计算机网络课程在线学习系统的时候,首先映入眼帘的是系统的导航栏,下面是轮播图以及系统内容。
(3)在线考试:学生可以参加系统提供的在线考试,实时提交答案,并在考试结束后查看成绩与错题记录。
(4)公告通知:点击“公告通知”这一菜单时,可查看通知公告、关于我们、联系方式和网站介绍等管理员发布的通知公告信息。
(5)课程资讯:可查看所有课程资讯信息,支持局部搜索和下拉(筛选和排序)搜索,可点击查看详情,并可进行点赞、收藏和评论。
(6)实时通讯:支持学生与教师或同学之间进行即时消息交流,方便在学习过程中进行沟通和讨论。
(7)课程信息:学生可以查看已选课程的详细信息,包括课程安排、学习任务、考核方式等,确保学习有序进行。
(8)学习资料:提供与课程相关的学习资料下载,如课件、参考书目、习题集等,供学生自主学习和复习使用。
(9)课程书库:学生可以查看课程书库的所有信息(书籍名称、书籍类型、书籍作者、出版社、出版日期、书籍介绍、书籍目录),方便学生查找和阅读,为学习提供丰富的文献支持。
(10)个人中心:
首页:展示学生的个人资料、学习进度、成绩概况等信息。
学习进度与错题记录:学生可以跟踪自己的学习进度,查看错题记录,以便有针对性地复习和巩固所学知识。
收藏:支持学生将重要的课程内容、学习资料等收藏,方便后续快速查阅。
教师用户:
(1)登录:教师用户由管理员添加,使用添加的账号和密码可进行登录,使用系统功能,同时可对个人信息、和密码资料进行管理。
(2)课程信息管理:可查看自己提交的课程信息,进行增删改查操作,支持课程名称、课程分类搜索,可点击查看详情。
(3)学习进度:教师可以监控学生的学习进度,查看每个学生的学习内容、学习进度、学习时长,便于针对性地调整教学计划和提供辅导。
(4)学习资料:教师能够上传和管理课程相关的课程名称、资料名称、资料类型、资料大小、资料内容等,为学生提供丰富的学习资源支持。教师也可以更新或删除过期的学习资料,保持内容的时效性。
(5)在线考试:
科目列表:展示教师所负责的考试科目,教师可以在此模块下创建、编辑和管理考试科目。
试题库:教师可以管理各科目的试题库,包括题目的录入、分类、编辑和删除等操作。
试卷列表:教师可以根据试题库中的试题生成考试试卷,设定考试时间、分值等信息,并在此模块中管理所有生成的试卷,包括预览、编辑、发布和删除试卷等功能。
管理员:
(1)登录:管理员的账号是在数据列表中直接设置生成的,不需要进行注册,可直接输入账号密码登录,同时可对个人资料和密码进行管理。
(2)系统用户:可对管理员、普通用户、教师用户进行管控,进行增删改查操作,点击可查看详情,教师用户注册以后由管理员确认,注册信息包含(头像、账号、密码、昵称、邮箱、状态、教师姓名、教师性别、教师电话、教师工号)。
(3)课程信息管理:可查看所有课程信息,进行增删改查操作,支持课程名称、课程分类搜索,可点击查看详情和评论。
(4)学习进度管理:监控所有学生的学习进度,生成统计报告,为系统管理和优化提供数据支持。
(5)学习资料管理:管理员可以统一管理系统内所有学习资料的上传、分类、删除等操作,确保学习资源的完整性和可用性。
(6)课程书库管理:可对课程书库进行管理,查看所有课程书库信息(书籍名称、书籍类型、书籍作者、出版社、出版日期、书籍介绍、书籍目录),进行增删改查操作,确保学生和教师能够方便地查阅和使用这些资源。
(7)系统管理:管理员可以在系统首页设置和管理轮播图,提升系统的视觉效果和用户体验,展示重要通知或内容。
(8)公告通知管理:负责发布和管理系统公告通知,确保所有用户及时获取系统的重要信息和动态。
(9)课程资讯:管理与课程相关的资讯内容,负责资讯的录入、更新和删除,确保信息的准确性和及时性。
(10)资讯分类:对系统内所有课程资讯进行分类管理,方便用户查找和浏览相关内容。
(11)在线考试管理:
科目列表:管理系统内所有在线考试的科目,进行创建、编辑和删除操作,确保考试科目信息的准确性。
试题库管理:管理员可以集中管理系统内所有试题,包括题目的分类、审核、删除等操作,确保试题库的规范和完备。
错题记录管理:统一管理学生的错题记录,便于统计和分析,提供针对性的学习建议和复习资源。
试卷列表管理:管理所有生成的考试试卷,包括试卷的创建、发布、编辑和删除,确保考试流程的顺畅进行。
2.2.2非功能性需求分析
计算机网络课程在线学习系统的非功能性需求比如计算机网络课程在线学习系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2.1 计算机网络课程在线学习系统非功能需求表
| 需求类 别 | 具体需求 | 说明 |
| 性能需求 | 响应时间 | 各功能模块应在毫秒级别内响应用户操作,尤其在高并发情况下,关键模块的响应时间需快速。 |
| 并发处理能力 | 系统需支持多用户同时在线操作,尤其在在线考试和实时通讯模块,确保高效的并发处理。 | |
| 可用性 | 系统稳定性 | 系统应具有高稳定性,定期备份和自动恢复功能,确保减少系统故障和数据丢失。 |
| 易用性 | 用户界面应友好直观,操作流程简洁,提供帮助文档和在线支持,适应不同技术水平用户。 | |
| 安全性 | 数据安全 | 用户数据应加密存储与传输,权限控制严格,确保数据安全性。 |
| 访问控制 | 实施多重身份验证机制,确保用户访问合法,防止未授权用户访问。 | |
| 可维护性 | 代码规范 | 遵循严格的编码规范,模块化设计,提升系统可读性与维护性。 |
| 日志管理 | 具备完善的日志记录功能,便于故障排查和性能优化。 | |
| 扩展性 | 模块扩展 | 系统应具备良好的扩展性,支持在不影响现有功能的前提下增加新功能模块。 |
| 平台兼容性 | 系统需兼容不同操作系统和浏览器,支持移动设备访问,保证一致的用户体验。 | |
| 可靠性 | 故障恢复能力 | 系统需具备快速恢复能力,确保在意外情况发生时能及时恢复服务并保证数据完整性。 |
| 备份机制 | 定期进行数据备份,并具备数据恢复功能,防止数据丢失。 |
2.3系统用例分析
计算机网络课程在线学习系统中注册用户角色用例图如图2.1所示:
图2.1学生用户角色用例图
计算机网络课程在线学习系统中教师用户角色用例图如图2.2所示:
图2.2教师用户角色用例图
计算机网络课程在线学习系统中管理员角色用例图如图2.3所示:
图2.3管理员角色用例图
3.1系统功能模块设计
系统功能模块包括学生用户模块、教师用户模块和管理员模块,登录进去对应相应的功能,具体的功能模块图如图3.1所示。
图3.1 计算机网络课程在线学习系统系统功能模块图
3.2数据库设计
数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。
3.2.1数据库概念结构设计
下面是根据计算机网络课程在线学习系统中主要的数据库表以及系统总E-R实体关系图。
图3.2 系统总E-R关系图
3.2.2数据库逻辑结构设计
通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
| 5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
| 6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | course_information_id | int | 10 | 0 | N | Y | 课程信息ID | |
| 2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
| 3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
| 4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
| 5 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
| 6 | course_hours | varchar | 64 | 0 | Y | N | 课程课时 | |
| 7 | course_cover | varchar | 255 | 0 | Y | N | 课程封面 | |
| 8 | course_introduction | text | 65535 | 0 | Y | N | 课程介绍 | |
| 9 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
| 10 | teacher_information | text | 65535 | 0 | Y | N | 教师信息 | |
| 11 | course_details | longtext | 2147483647 | 0 | Y | N | 课程详情 | |
| 12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | course_library_id | int | 10 | 0 | N | Y | 课程书库ID | |
| 2 | book_name | varchar | 64 | 0 | Y | N | 书籍名称 | |
| 3 | book_type | varchar | 64 | 0 | Y | N | 书籍类型 | |
| 4 | book_author | varchar | 64 | 0 | Y | N | 书籍作者 | |
| 5 | press | varchar | 64 | 0 | Y | N | 出版社 | |
| 6 | publication_date | date | 10 | 0 | Y | N | 出版日期 | |
| 7 | book_introduction | text | 65535 | 0 | Y | N | 书籍介绍 | |
| 8 | book_catalog | text | 65535 | 0 | Y | N | 书籍目录 | |
| 9 | book_details | longtext | 2147483647 | 0 | Y | N | 书籍详情 | |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
| 2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
| 3 | type | varchar | 20 | 0 | Y | N | 类型 | |
| 4 | title | varchar | 255 | 0 | Y | N | 题目 | |
| 5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
| 6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
| 7 | score | double | 9 | 2 | Y | N | 总分 | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | learning_materials_id | int | 10 | 0 | N | Y | 学习资料ID | |
| 2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
| 3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
| 4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
| 5 | data_name | varchar | 64 | 0 | Y | N | 资料名称 | |
| 6 | data_type | varchar | 64 | 0 | Y | N | 资料类型 | |
| 7 | data_size | varchar | 64 | 0 | Y | N | 资料大小 | |
| 8 | information_content | text | 65535 | 0 | Y | N | 资料内容 | |
| 9 | learning_tasks | text | 65535 | 0 | Y | N | 学习任务 | |
| 10 | data_files | varchar | 255 | 0 | Y | N | 资料文件 | |
| 11 | course_video | varchar | 255 | 0 | Y | N | 课程视频 | |
| 12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
| 2 | title | varchar | 125 | 0 | N | N | 标题: | |
| 3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | rate_of_learning_id | int | 10 | 0 | N | Y | 学习进度ID | |
| 2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
| 3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
| 4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
| 5 | course_type | varchar | 64 | 0 | Y | N | 课程类型 | |
| 6 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
| 7 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
| 8 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
| 9 | learning_duration | varchar | 64 | 0 | Y | N | 学习时长 | |
| 10 | learning_content | text | 65535 | 0 | Y | N | 学习内容 | |
| 11 | learning_record | text | 65535 | 0 | Y | N | 学习记录 | |
| 12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | content | varchar | 255 | 0 | Y | N | 内容: | |
| 4 | url | varchar | 255 | 0 | Y | N | 链接: | |
| 5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
| 2 | student_no | varchar | 64 | 0 | N | N | 学生学号 | |
| 3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
| 4 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | subject_id | int | 10 | 0 | N | Y | ||
| 2 | name | varchar | 255 | 0 | Y | N | ||
| 3 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | exam_id | mediumint | 8 | 0 | N | Y | 考试id | |
| 2 | subject_name | varchar | 255 | 0 | Y | N | ||
| 3 | name | varchar | 32 | 0 | N | N | 考试名称:[2,32] | |
| 4 | duration | int | 10 | 0 | Y | N | 答题时长 | |
| 5 | score | double | 9 | 2 | Y | N | 总分 | |
| 6 | status | varchar | 10 | 0 | Y | N | 状态:启用、禁用 | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | user_id | int | 10 | 0 | Y | N | 出题人 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
| 2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
| 3 | type | varchar | 20 | 0 | Y | N | 类型 | |
| 4 | title | varchar | 255 | 0 | Y | N | 题目 | |
| 5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
| 6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
| 7 | score | double | 9 | 2 | Y | N | 总分 | |
| 8 | question_order | int | 10 | 0 | Y | N | 排序 | |
| 9 | exam_id | mediumint | 7 | 0 | Y | N | 所属试卷 | |
| 10 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
| 2 | user_id | mediumint | 7 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 3 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
| 4 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
| 5 | answers | text | 65535 | 0 | Y | N | 答案 | |
| 6 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
| 7 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
| 8 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
| 9 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
| 10 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
| 11 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 13 | comment_desc | varchar | 255 | 0 | Y | N | 评语 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
| 2 | teacher_no | varchar | 64 | 0 | N | N | 教师工号 | |
| 3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
| 4 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
第4章 关键模块的设计与实现
4.1注册用户
4.1.1注册登录模块
注册用户可点击注册,填写账号+密码+昵称+邮箱+身份等信息点击注册即可对输入的信息进行验证,验证成功后即可完成注册,教师用户由管理员添加;注册用户、教师用户、管理员在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。
图4.1登录注册界面图
注册的代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
登录代码如下:
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
4.1.2在线考试模块
学生可以参加系统提供的在线考试,实时提交答案,并在考试结束后查看成绩与错题记录。界面如下图所示。
图4.2在线考试界面图
4.1.3课程信息模块
可查看所有课程信息,支持关键字(课程名称、课程分类)搜索和下拉(课程分类、排序)搜索,可点击查看详情(课程编号、课程名称、课程分类、课程课时、教师用户、课程介绍、课程内容),可进行点赞、收藏和评论。界面如下图所示。
图4.3课程信息界面图
4.1.4个人中心模块
可对个人首页、学习进度、错题记录、收藏等信息进行管理。点击“学习进度”,可查看所有提交的学习进度,进行查询操作,支持课程名称、学习时长搜索,可点击查看详情;点击“收藏”,可查看搜索收藏信息,包括对交流论坛、课程资讯和课程信息的收藏信息。界面如下图所示。
图4.4 个人中心界面图
4.2教师用户
4.2.1课程信息管理模块
可查看自己提交的课程信息,进行增删改查操作,支持课程名称、课程分类搜索,可点击查看详情。界面如下图所示。
图4.5课程信息管理界面图
4.2.2实时通讯管理模块
支持学生与教师或同学之间进行即时消息交流,方便在学习过程中进行沟通和讨论。界面如下图所示。
图4.6实时通讯管理界面图
4.2.3个人中心模块
可对个人中心进行管理。界面如下图所示。
图4.7个人中心界面图
4.3管理员
4.3.1系统用户模块
对管理员、普通用户、教师用户进行管控,可进行增删改查操作,点击可查看详情,教师用户由管理员添加(头像、账号、密码、昵称、邮箱、状态、教师姓名、教师性别、教师电话、教师工号)。界面如下图所示。
图4.8系统用户界面图
系统用户添加代码:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
4.3.2学习进度管理模块
可查看所有学习进度信息,进行增删改查操作,支持课程名称、课程时长搜索,可点击查看详情。界面如下图所示。
图4.9学习进度管理界面图
4.3.3学习资料管理模块
可查看所有学习资料信息,进行增删改查操作,支持课程名称、资料名称搜索,可点击查看详情(教师用户、教师姓名、课程名称、资料名称、资料类型、资料大小、资料内容、学习任务、课程视频)进行添加或查询。界面如下图所示。
图4.10学习资料管理界面图
4.3.4系统管理模块
可对首页轮播图进行管理,查看所有首页轮播图信息,进行增删改查操作,支持标题搜索,点击可查看详情。界面如下图所示。
图4.11系统管理界面图
4.3.5资源管理模块
可对课程资讯和资讯分类进行管理,查看所有课程资讯和资讯分类信息,进行增删改查操作,点击可查看详情和评论,课程资讯支持标题、标签、分类搜索。
图4.12资源管理界面图
4.3.6在线考试模块
可对在线考试的子菜单(科目列表、试题库、错题记录、试卷列表)进行增删改查操作。点击“错题记录”,可查看所有错题记录,进行查询操作,支持科目名称、题目名称搜索,可点击查看详情;点击“新增科目列表”,可新增科目。
界面如下图所示。
图4.13在线考试界面图
5.1测试的目的
从前面的章节中我们了解到,计算机网络课程在线学习系统已经完成了开发工作,但是否可以直接投入使用仍然存在不确定性。在任何项目正式上线之前,进行测试是必不可少的步骤。如果项目未经测试就投入使用,可能会出现许多不可预见的问题,例如因用户数量激增而导致系统崩溃,或某些功能存在漏洞,如信息录入错误等。这些问题不仅会影响用户体验,还可能造成更为严重的后果。因此,测试是项目上线前的最后一道防线,目的是确保系统能够稳定运行并满足用户的需求,从而提供一个流畅、高效的使用环境。
5.2系统部分测试
用户登录功能测试:
表5.1 用户登录功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
课程资讯添加功能测试:
表5.2课程资讯添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 课程资讯添加模块测试 | 课程资讯添加成功的情况 | 在资讯管理添加的页面中点击添加,输入课程资讯相关信息,然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 课程资讯添加模块测试 | 课程资讯添加失败的情况 | 在资讯管理添加页面中不填写的标题,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
通知公告查看功能模块测试:
表5.3 通知公告查看功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 查询通知公告功能测试 | 查询成功的情况 | 在通知公告界面输入通知公告名称进行查询 | 查询成功 | 正确 |
课程信息添加功能测试:
表5.4 课程信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 课程信息添加模块测试 | 课程信息添加成功的情况 | 在课程信息添加管理的页面中,输入课程信息添加信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 课程信息添加模块测试 | 课程信息添加失败的情况 | 在课程信息添加页面中不填写的教学内容,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.3系统测试结果
通过编写计算机网络课程在线学习系统的测试用例,已经检测完毕用户的登录模块、课程资讯添加模块、通知公告查看模块、课程信息添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
在本研究中,我们运用了Spring Boot框架,结合前端技术(如HTML、CSS、JavaScript)以及MySQL数据库,成功开发了一个功能齐全、体验优良的在线学习平台。系统涵盖了学生端、教师端和管理员端三个主要模块,分别实现了在线考试、课程管理、学习资料上传、系统维护等多项关键功能。这些技术的有机结合,不仅提高了系统的响应速度和稳定性,还大幅优化了用户交互体验。
回顾整个开发过程,我们不仅克服了各种技术挑战,还见证了一个完整的、能够真正改善教学效果的在线学习系统的诞生。从最初的设计构想到最后的测试上线,每一步都展现了技术创新在教育领域中的巨大潜力。看到这个系统为学生和教师带来实际便利,深感现代信息技术的力量以及它在推动教育数字化转型中的重要作用。这一经历不仅让我们对技术的应用有了更深的理解,也对未来教育的发展方向充满了信心与期待。
[1]赵彩霞,张栽培,杨璇.基于Java编程导航学习平台开发设计的研究[J].家电维修,2024,(03):62-64.
[2]施文怡,刘军军.在线学习满意度调查——以护理学专业课程为例[J].现代商贸工业,2024,45(06):249-251.
[3]毛艳玲.在线教育中的教学管理创新理论与研究——评《在线教育原理》[J].人民长江,2024,55(02):272-273.
[4]李紫梦,刘璟莹,杨丽君等.老年慢性病患者健康管理需求量表的构建及信效度研究[J].天津护理,2024,32(01):1-6.
[5]钱正春,李芳,郑勇等.数据驱动下的在线课程持续改进与实践研究[J].中国现代教育装备,2024,(03):17-20.
[6]申雪萍,原仓周,邵兵.面向软件实践能力的Java程序设计课程教学改革探索[J].计算机教育,2024,(02):20-25.
[7]粟梁.基于Java的汽车租赁管理系统[J].电脑编程技巧与维护,2024,(01):43-45+52.
[8]刘乂毓.应用Java的加密解密算法实验教学软件包[J].福建电脑,2024,40(01):89-93.
[9]韩小龙,司珍,吕晓峰等.基于面向对象编程的Java语言程序设计方法分析[J].集成电路应用,2024,41(01):228-229.
[10]石雨昕,关家兴,邹博华等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.
[11]谭光兴,甘景,戚秋晨.基于Java语言的远程数据采集系统设计与实现[J].科技与创新,2024,(01):19-22.
[12]韩前鹏,陈雨华,王星.基于Java的叶片机械自动设计平台研究与开发[J].工业控制计算机,2023,36(12):21-23.
[13]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[14]袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023,(12):87-89.
[15]马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.
[16]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.
[17]苏婉怡,揣小龙,刘美瑜等.基于Java技术的实验室管理系统设计与实现[J].无线互联科技,2023,20(23):58-60.
[18]刘莉.新工科背景下Java程序设计课程教学创新与实践探索[J].电脑知识与技术,2023,19(33):130-132+144.
[19]艾钰承,朱海风,刘舟.基于SpringBoot的“喵站”宠物服务平台的设计与实现[J].科技资讯,2023,21(22):22-25.
[20]黄赛英.基于Springboot的医院档案管理系统设计[J].集成电路应用,2023,40(11):384-385.
结束语
在本项目的开发过程中,我深刻体会到了坚持与努力的重要性。从最初的构思到最终的实现,每一步都充满了挑战,但也伴随着成长与收获。这不仅是一次技术上的探索,更是对自身毅力与信念的考验。每当面对困难与挫折时,正是对目标的坚定信念推动我不断前行。通过这次经历,我更加坚信,只要心怀梦想并为之不懈努力,任何看似遥不可及的目标终将实现。这份经历将激励我在未来的道路上继续追求卓越,不断超越自我。
在此,我要特别感谢我的同学、老师和父母。感谢同学们在我遇到困难时给予的帮助与支持;感谢老师们在项目的每个阶段给予我专业的指导和鼓励;感谢父母在我全身心投入项目时给予的理解和支持。是你们的帮助与关怀,让我有勇气和力量去克服一切困难,取得今天的成绩。感恩有你们一路相伴,我将继续努力,以不辜负大家的期望。
480

被折叠的 条评论
为什么被折叠?



