基于Java网上教育系统的设计与实现 毕业设计-附源码95631

目  录

1 绪 论

1.1 选题背景与意义

1.2 国内外研究现状

1.3 论文结构与章节安排

2 系统分析

2.1 可行性分析

2.1.1技术可行性

2.1.2 经济可行性分析

2.1.3操作可行性分析

2.1.4社会可行性分析

2.2 系统流程分析

2.2.1 数据新增流程

2.2.2 数据删除流程

2.3 系统功能分析

2.3.1 功能性分析

2.3.2 非功能性分析

2.4 系统用例分析

2.5本章小结

3 系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 系统详细设计与实现

4.1 前台用户功能模块

4.1.1 前台首页界面

4.1.2 用户注册界面

4.1.3 用户登录界面

4.1.4 校园资讯界面

4.1.5 课程信息界面

4.1.6 个人中心界面

4.1.7在线测试界面

4.2 后台管理功能模块

4.2.1  后台首页界面

4.2.3 系统用户界面

4.2.4 课程信息管理界面

4.2.5 考试管理界面

4.2.6 作业成绩管理界面

4.2.7 作业信息管理界面

4.2.8 系统管理界面

4.2.9 资源管理界面

5系统测试

5.1 系统测试目的

5.2 系统测试用例

5.3 系统测试结果

结 论

参考文献

致 谢

 

在信息技术迅速发展和网络普及的今天,传统教育模式正面临着数字化转型的必然趋势。本文详述了一个基于Java的网上教育系统的设计与实现过程,该系统旨在顺应时代潮流,为学校、教师和学生提供一个高效、便捷的在线教学和学习平台。系统涵盖了学生用户、管理员和教师用户三大核心角色,并提供了丰富的功能模块以满足不同用户的需求。

本文介绍一个基于Java的网上教育系统的设计与实现过程。在系统设计中,采用了Spring Boot作为核心框架,结合Java语言和MySQL数据库,以确保系统的稳定性、可扩展性和数据安全性。通过需求调研和功能分析,充分考虑了学生和教师的多样化需求,确定了网上教育系统的主要功能模块,包括在课程信息管理、作业管理、考试管理、用户管理和个人中心等。通过系统的应用,可以推动教育领域的数字化转型,提升教学质量和学习效果,为未来的教育发展注入新的活力。

关键词:springboot框架;网上教育系统;Java语言;MySQL数据库

Abstract

 In today's rapidly developing information technology and widespread internet, traditional education models are facing an inevitable trend of digital transformation. This article elaborates on the design and implementation process of a Java based online education system, which aims to keep up with the trend of the times and provide an efficient and convenient online teaching and learning platform for educational institutions, teachers, and students. The system covers three core roles: student users, administrators, and teacher users, and provides rich functional modules to meet the needs of different users.

This article introduces the design and implementation process of a Java based online education system. In the system design, Spring Boot was adopted as the core framework, combined with Java language and MySQL database to ensure the stability, scalability, and data security of the system. Through demand research and functional analysis, the diverse needs of students and teachers were fully considered, and the main functional modules of the online education system were determined, including course information management, homework management, exam management, user management, and personal center. Through the application of the system, it can promote the digital transformation of the education field, improve teaching quality and learning effectiveness, and inject new vitality into future educational development.

Keywords: Springboot framework; Online education system; Java language; MySQL database

1  

1.1 选题背景与意义

数字化随着信息技术的持续进步和教育改革的不断深化,线上教育已经逐渐成为了现代教育体系的重要组成部分。特别是在全球疫情的冲击下,线上教育以其独特的优势,如灵活性、便捷性和广泛的覆盖范围,迅速成为了教育领域的新宠。然而,线上教育的快速发展也对在线教育系统的功能和性能提出了更高的要求。

Java作为一种广泛应用、成熟稳定的编程语言,其跨平台特性和强大的开发能力使其成为了开发在线教育系统的理想选择。而Spring Boot框架作为Java生态系统中的一颗璀璨明珠,以其快速构建、易于部署和高度可扩展的特性,为在线教育系统的快速开发提供了强有力的支持。

在此背景下,本文旨在结合Java和Spring Boot技术栈,设计和实现一个功能完善、性能稳定、用户体验良好的网上教育系统。该平台将满足学生、教师和学校对于网上教育的核心需求,提供课程管理、作业管理、考试管理、用户管理和权限管理等核心功能模块。同时,通过对系统架构和数据库的合理设计,确保系统的稳定性、可扩展性和安全性。

本研究的意义在于,通过设计和实现基于Java的网上教育系统,为网上教育的发展和创新提供新的解决方案。该系统的成功实现将有助于提高在线教育的教学质量和学习效率,推动教育资源的共享和普及,进一步促进教育信息化的进程。同时,本研究也为相关领域的研究和应用提供一定的参考和借鉴,为在线教育的发展注入新的活力。

1.2 国内外研究现状

国内研究现状方面,近年来我国网络教育用户规模呈现快速增长的态势。多样化的教学模式正在被国内的网络教育平台尝试,包括直播授课、录播课程、一对一辅导、小组讨论等,以满足不同学习者的需求。此外,许多网络教育平台开始探索个性化学习,利用大数据和人工智能技术为学习者提供个性化的学习建议和学习资源。同时,线上线下融合的教学模式也逐渐受到关注,通过线上提供理论教学,线下进行实践教学和辅导,以提高教学质量。

国外研究现状方面,网络教育研究相对国内更早起步,已经形成了一套成熟的理论和方法体系。开放教育资源是国际网络教育研究的一个重要方向,许多国外高校和教育机构在网络教育研究领域具有很高的声誉和影响力。此外,国外教育研究注重教师的专业发展,尤其关注教师在网络环境下的专业能力和素养提升。

综上所述,国内外在网络教育系统的研究和发展上各有特点。国内更注重多样化的教学模式和个性化学习,而国外则更注重开放教育资源和教师专业发展。两者都在不断探索和创新,以推动网络教育的更好发展。

1.3 论文结构与章节安排

论文将分层次进行编排,除去论文摘要致谢文献参考部分,论文主要架构如下:

第一章:绪论。主要介绍了课题研究的背景,研究意义和论文结构与章节安排。

第二章:系统分析。主要从系统的用户、功能等方面进行需求分析。

第三章:系统总体设计。主要对系统框架、系统功能模块、数据库进行功能设计。

第四章:系统详细设计与实现。主要介绍了系统框架搭建、系统界面的实现。

第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试。

第六章:总结。主要对系统的设计工作进行总结。

2 系统分析

系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。

2.1 可行性分析

2.1.1技术可行性

Java作为一种成熟、稳定的编程语言,具有跨平台特性和强大的开发能力,非常适合用于开发在线教育系统。Spring Boot框架作为Java生态系统中的轻量级框架,提供了快速构建、易于部署和高度可扩展的特性,为在线教育系统的开发提供了有力的支持。此外,Java和Spring Boot的社区活跃,拥有丰富的技术文档和开源项目,这为系统的开发和维护提供了良好的技术保障。

2.1.2 经济可行性分析

在线教育系统的建设可以大幅度降低教育机构的运营成本,如场地租赁、教材印刷等费用。同时,系统可以扩大教育资源的覆盖范围,吸引更多的学生,从而增加教育机构的收入。此外,系统的开发和维护成本相对较低,因为Java和Spring Boot都是开源技术,可以免费使用。因此,从经济角度来看,该系统的建设是可行的。

2.1.3操作可行性分析

该系统采用了用户友好的界面设计和简洁的操作流程,使得用户(包括学生、教师和管理员)可以轻松地掌握系统的操作方法。同时,系统提供了完善的帮助文档和在线客服支持,可以帮助用户解决在使用过程中遇到的问题。因此,从操作角度来看,该系统的建设是可行的。

2.1.4社会可行性分析

随着信息技术的普及和教育改革的深化,在线教育已经成为了一种新的趋势。该系统的建设可以满足社会对在线教育的需求,提高教育质量和效率,推动教育资源的共享和普及。同时,该系统还可以促进教育信息化的发展,提高教育行业的整体竞争力。因此,从社会角度来看,该系统的建设是可行的。

综上所述,基于Java和Spring Boot的网上教育系统在技术、经济、操作和社会等方面都是可行的。该系统的建设可以满足教育领域的实际需求,提高教育质量和效率,推动教育信息化的发展。

2.2 系统流程分析

系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。

2.2.1 数据新增流程

用户成功登入系统后就能够实现增加数据的操作,增加数据的编号由系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证通过后即可完成数据新增,数据新增的流程图如下图2-1所示。

图2-1  数据新增流程图

2.2.2 数据删除流程

如果系统里面存在一些没有用的数据,相关的管理人员还可以对这些数据进行删除,数据删除时流程图如下图2-2所示。

图2-2  数据删除流程图

2.3 系统功能分析

2.3.1 功能性分析

根据用户对系统的需求,要求系统简单操作,能够准确,完整的对信息进行管理。对体检套餐服务管理做需求做解析后,划分为了学生用户、教师用户和管理员三大功能板块。

学生用户模块:

  1. 注注册登录:学生可以通过注册成为系统用户,使用账号密码可进行登录,使用系统功能。
  2. 首页:学生用户可查看轮播图、网站公告、校园资讯、课程信息推荐,并可使用系统其他功能。
  3. 网站公告:学生用户可查看包括关于我们、联系方式、网站介绍等管理员发布的所有网站公告信息详情。
  4. 校园资讯:学生用户可查看发布的所有校园资讯信息详情,支持局部、筛选、排序搜索,同时支持热门文章推荐,进行点赞、收藏和评论。
  5. 在线测试:学生用户可以在线测试,如单选题、多选题、填空题等。可以设置考试时长、分数要求等支持自动批改和即时反馈,提供错题收集和分析功能,帮助查找薄弱环节
  6. 课程信息:学生用户可查看发布的所有课程信息信息详情,支持课程编号、课程名称、课程类别、排序搜索,可进行点赞、收藏,支持按学科、难度等维度进行课程筛选和排序,可以收藏感兴趣的课程,方便后续查看等操作。
  7. 我的账户:学生用户可对个人资料进行管理,包括修改密码(修改成功后需使用新密码登录)和修改资料(头像、昵称、邮箱、用户姓名、用户性别)。
  8. 个人中心:学生用户可对人首页、 作业信息、作业成绩、错题记录 收藏等信息进行管控和查阅信息详情。

教师用户模块:

  1. 注册登录:教师可以通过注册成为系统用户,使用账号密码可登录系统后台,使用系统功能,进行管理,并可对个人信息和密码进行管理。
  2. 课程信息管理:教师用户可查看自己的课程信息信息详情,进行增改删查操作,支持课程编号、课程名称、课程类别搜索。
  3. 作业信息管理:教师用户可做作业的发布、批改、评分等全流程管理,该功能提供作业提交情况的统计和分析,了解学生完成情况支持作业批改反馈的管理,方便与学生沟通。
  4. 作业成绩管理:教师用户可做成绩录入、修改、查询等操作,提供成绩分析报表,如班级成绩分布、学生排名等
  5. 考试管理包括以下:

科目列表管理:支持教师负责科目的增删改查

试题库管理:支持试题的录入、编辑、删除等操作

试卷列表管理:支持试卷的生成、发布、查看等功能

管理员模块:

  1. 登录:管理员账号密码由系统生成,可使用账号密码可登录系统后台,使用系统功能,进行管理,并可对个人信息和密码进行管理。
  2. 后台首页:管理员登录系统后台后,首先进入后台首页界面,可查看作业成绩、平均分等统计信息数据分析图表。
  3. 系统用户:管理员可对学生用户、教师用户和管理员等系统用户信息进行管控,进行增改删查操作。
  4. 课程信息管理:管理员可查看所有课程信息信息详情,进行增改删查操作,支持课程编号、课程名称、课程类别搜索。
  5. 作业信息管理:管理员可以管理系统中的作业信息,如发布作业、查看学生提交情况等。
  6. 作业成绩管理:管理员可以管理学生的作业成绩,如录入成绩、查看成绩分布等。
  7. 考试管理包括:科目列表管理:支持考试科目的增删改查。试题库管理:支持试题的录入、编辑、删除等操作。错题记录管理:查看和分析学生的错题情况。试卷列表管理:支持试卷的生成、发布、查看等功能
  8. 权限管理:支持角色权限的配置和修改可以为不同角色设置精细化的功能权限。支持权限日志记录,方便审查
  9. 系统管理:管理员可对首页的轮播图进行管理和查看其信息详情,进行增删改查操作,支持标题搜索。
  10. 网站公告管理:管理员可对网站公告进行管理和查看其信息详情,进行增删改查操作,支持标题搜索。
  11. 资源管理:管理员可对校园资讯和新闻列表进行管理理和查看其信息详情,进行增删改查操作;其中校园资讯支持标题、标签、分类搜索,可查看其查看评论信息;新闻列表支持类型名称搜索。

2.3.2 非功能性分析

网上教育系统的非功能性需求比如网上教育系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:

2-1网上教育系统非功能需求表

安全性

主要指网上教育系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指网上教育系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响网上教育系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着网上教育系统的页面展示内容进行操作,就可以了。

可维护性

网上教育系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.4 系统用例分析

通过2.3功能的分析,得出了本网上教育系统的用例图:

学生用户角色用例图如下图2-3所示。

图2-3 学生用户角色用例图

教师用户角色用例图如下图2-4所示。

图2-4教师用户角色用例图

管理员角色用例图如下图2-5所示。

图2-5管理员角色用例图

2.5本章小结

本章主要通过对网上教育系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个网上教育系统要实现的功能。同时也为网上教育系统的代码实现和测试提供了标准。

3 系统总体设计

本章主要讨论的内容包括网上教育系统的系统架构设计、功能模块设计、数据库系统设计。

3.1 系统架构设计

本网上教育系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1系统架构设计图

表现层(UI):又称UI层,主要完成本网上教育系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本网上教育系统时的舒适度。UI的界面设计也要适应不同版本的网上教育系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本网上教育系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本网上教育系统的数据是放在服务端的MySQL数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本网上教育系统的数据存储和管理功能。

3.2 系统功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本网上教育系统中的用例。那么接下来就要开始对本网上教育系统的主要功能和数据库开始进行设计。网上教育系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。

图3-2 系统功能模块图

3.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1 数据库概念结构设计

下面是整个网上教育系统中主要的数据库表总E-R实体关系图。

图3-3 系统总E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中网上教育系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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_id

varchar

64

0

N

N

课程编号

5

course_name

varchar

64

0

Y

N

课程名称

6

course_chapters

varchar

64

0

Y

N

课程章节

7

course_cover

varchar

255

0

Y

N

课程封面

8

course_video

varchar

255

0

Y

N

课程视频

9

course_courseware

varchar

255

0

Y

N

课程课件

10

course_outline

text

65535

0

Y

N

课程大纲

11

homework_requirements

text

65535

0

Y

N

作业要求

12

praise_len

int

10

0

N

N

0

点赞数

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表exam_question_database (试题库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表homework_grades (作业成绩)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

homework_grades_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

student_users

int

10

0

Y

N

0

学生用户

5

student_name

varchar

64

0

Y

N

学生姓名

6

student_id

varchar

64

0

Y

N

学生学号

7

course_id

varchar

64

0

Y

N

课程编号

8

course_name

varchar

64

0

Y

N

课程名称

9

course_chapters

varchar

64

0

Y

N

课程章节

10

assignment_number

varchar

64

0

N

N

作业编号

11

feedback_date

date

10

0

Y

N

反馈日期

12

homework_score

int

10

0

Y

N

0

作业分数

13

comment_content

text

65535

0

Y

N

评语内容

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表student_users (学生用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

student_users_id

int

10

0

N

Y

学生用户ID

2

student_name

varchar

64

0

Y

N

学生姓名

3

student_id

varchar

64

0

N

N

学生学号

4

student_gender

varchar

64

0

Y

N

学生性别

5

mobile_phone_number

varchar

16

0

Y

N

手机号码

6

examine_state

varchar

16

0

N

N

未审核

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表subject

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

表subject_exam (考试)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

出题人

表subject_exam_question (试题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表subject_user_answer (用户答题)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

评语

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teachers_name

varchar

64

0

Y

N

教师姓名

3

teacher_id

varchar

64

0

N

N

教师工号

4

teacher_gender

varchar

64

0

Y

N

教师性别

5

mobile_phone_number

varchar

16

0

Y

N

手机号码

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

整个网上教育系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 系统详细设计与实现

网上教育系统的详细设计与实现主要是根据前面的网上教育系统的需求分析和网上教育系统的总体设计来设计页面并实现业务逻辑。主要从网上教育系统界面实现、业务逻辑实现这两部分进行介绍。

4.1 前台用户功能模块

4.1.1 前台首页界面

学生用户可查看轮播图、网站公告、校园资讯、课程信息 在线测试等,并可使用系统其他功能。其主界面展示如下图4-1所示。

图4-1前台首页界面图

4.1.2 用户注册界面

游客可以通过注册成为系统用户,注册成功后,可使用账号密码进行登录,使用系统功能。点击右上角“注册”按钮进入注册页面填写账号、密码、确认密码、昵称、邮箱、身份等信息后点击“注册”按钮,系统会对输入的信息进行验证,验证通过后即可完成注册,其界面展示如下图4-2所示。

图4-2用户注册界面图

用户注册的关键代码如下:

    /**

     * 注册

     * @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);

}   

4.1.3 用户登录界面

用户注册后可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,系统会对输入的信息进行验证,验证通过后即可完成登录,其界面如下图4-3所示。

图4-3登录界面图

用户登录关键代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    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;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

4.1.4 校园资讯界面

学生用户可查看校园资讯信息详情,各类教育资讯,如名师讲座、教学活动、教育政策等热门资讯,支持分类浏览和全文检索,并可点赞收藏评论等。其界面如下图所示。

图4-4校园资讯界面图

4.1.5 课程信息界面

学生用户可查看发布的所有课程及课程信息详情,了解课程详情。并可点赞收藏根据课程信息上传作业等操作,其界面如下图所示。

图4-5课程信息列表界面图

图4-6课程信息详情界面图

4.1.6 个人中心界面

学生用户可对个人首页、作业信息、作业成绩、错题记录、收藏等信息进行管控和查阅信息详情。例如查看和提交当前课程的各项作业;查看已完成作业的成绩评定;查看在测试中出现的错题,方便针对性复习;管理已收藏的课程和资讯信息。其界面如下图所示:

图4-7个人中心界面图

4.1.7在线测试界面

学生用户可进行在线测试,如单选题、多选题、填空题等,系统根据考试时长、分数要求等支持自动批改和即时反馈,提供错题收集和分析功能,帮助学生查找薄弱环节。其界面如下图所示:

图4-8在线测试界面图

4.2 后台管理功能模块

4.2.1  后台首页界面

管理员登录系统后台后,首先进入后台首页界面,可查看试卷平均分。考试成绩等统计信息数据分析图表。界面如下图所示。

图4-9 管理员后台首页界面图

4.2.3 系统用户界面

管理员可对学生用户、教师用户和管理员等系统用户信息进行管控,进行增改删查操作。其界面如下图所示。

图4-10 管理员系统用户界面图

添加关键代码如下:

    @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

删除关键代码如下:

    @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

4.2.4 课程信息管理界面

管理员可查看所有课程信息信息详情,进行增改删查操作;教师用户添加发布课程信息,管理员审核通过的能在前户端展示。这里以管理员课程信息界面为例,其界面如下图所示。

图4-11  管理员课程信息管理界面图

4.2.5 考试管理界面

管理员可查看考试信息详情,对所有教师用户添加的考试数据和学生的错题记录具备增删改查权限其界面如下图所示。

图4-11 管理员考试管理界面图

4.2.6 作业成绩管理界面

管理员可查看所有作业成绩信息详情,进行查询和删除操作;教师用户只可查看自己的发布的作业成绩信息,并只可进行查询操作;支持学生姓名、课程名称、审核状态搜索,可审核学习进度信息。这里以教师用户学习进度界面为例,其界面如下图所示。

图4-12 教师用户作业成绩管理详情界面图

4.2.7 作业信息管理界面

管理员可查看所有作业信息详情,进行查询和删除操作;教师用户只可查看自己学生的作业信息,并只可进行查询操作;支持课程名称、课程类别、完成时间、审核状态搜索,可审核学生作业信息。这里以教师课程信息界面为例,其界面如下图所示。

图4-13 教师用户作业成绩管理界面图

4.2.8 系统管理界面

管理员可对首页的轮播图进行管理和查看其信息详情,进行增删改查操作,支持标题搜索。其界面如下图所示。

图4-14 管理员系统管理界面图

图片上传的代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }

4.2.9 资源管理界面

管理员可对校园资讯和新闻列表进行管理理和查看其信息详情,进行增删改查操作;其中校园资讯支持标题、标签、分类搜索,可查看其查看评论信息;新闻列表支持类型名称搜索。其界面如下图所示。

图4-15 管理员资源管理界面图

5系统测试

5.1 系统测试目的

无论什么样的系统,测试都至关重要,通过测试可以检查出潜藏的缺陷,从而确保系统的性能和稳定性,避免Bug的出现,并确保系统的功能和性价比达到预期的要求。

5.2 系统测试用例

系统测试包括:用户登录功能测试、校园资讯展示功能测试、课程信息添加功能测试、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

校园资讯展示功能测试:

表5-2 校园资讯展示功能测试表

用例名称

校园资讯展示

目的

测试校园资讯展示功能

前提

用户登录

测试流程

点击校园资讯

预期结果

可以查看到所有校园资讯信息

实际结果

实际结果与预期结果一致

课程信息添加界面测试:

表5-3 课程信息添加界面测试表

用例名称

课程信息添加测试用例

目的

测试课程信息添加功能

前提

用户正常登录情况下

测试流程

1)点击课程信息,填写课程信息相关内容。

2)填写完毕后点击进行提交。

预期结果

提交以后,个人中心会显示新的课程信息

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-4 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试密码修改功能

前提

学生用户和管理员用户正常登录情况下

测试流程

1)点击密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3 系统测试结果

通过编写网上教育系统的测试用例(已完成全部功能测试,不限于以上测试用例),已经检测完毕包括但不限于用户登录功能测试、校园资讯展示功能测试、课程信息添加功能测试、密码修改功能测试等,通过的测试能够确保系统运行正常,并发现和完善了系统的漏洞,为网上教育系统的后期推广运营提供了强力的技术支撑。

 

本研究成功实现了基于Java的网上教育系统,该系统功能完善、性能稳定,为用户提供了高效、便捷的在线教学和学习体验。通过合理的系统架构设计和数据库设计,确保了系统的稳定性、可扩展性和安全性。同时,结合用户反馈和实际应用场景,不断优化系统性能,提升了用户体验。

然而,在研究过程中也存在一些不足之处。首先,在系统设计过程中,对于某些功能的实现可能过于理想化,导致在实际应用中遇到一些挑战。其次,由于时间和资源的限制,本研究未能涵盖所有可能的教育需求,某些特定领域的功能可能需要进一步完善。

展望未来,我们将继续关注在线教育的发展趋势,根据用户需求和技术进步,对系统进行持续的优化和升级。具体而言,我们将进一步完善系统功能,如增加智能推荐、个性化学习路径规划等,以提升用户的学习效果。同时,我们也将关注系统的可扩展性和安全性,确保系统能够应对日益增长的用户量和复杂多变的安全威胁。我们相信,在未来的发展中,该系统将为在线教育领域的创新和发展做出更大的贡献。

参考文献

 [1]  Varunto L .  The Impact of COVID-19 on the School Education System: The Difficulties and Opportunities of Online Teaching    [J].  Journal of Educational Research and Policies,  2023,  5  (9):    

  [2]  荣蓉.  人工智能技术在计算机网络教学中的运用    [J].  数字技术与应用,  2023,  41  (09):  75-77.  DOI:10.19695/j.cnki.cn12-1369.2023.09.25.

  [3]  周自波,张新华.  人工智能赋能网络教育:逻辑、机理与路径    [J].  成人教育,  2023,  43  (07):  52-58.  

  [4]  王琰.  基于教育要素角度的网络生态系统教育规律探寻    [J].  继续教育研究,  2023,    (07):  126-131.  

  [5]  张惠娟.  应用人工智能进行远程教学的系统设计    [J].  福建电脑,  2022,  38  (07):  90-93.  DOI:10.16707/j.cnki.fjpc.2022.07.023.

  [6]  黄晶晶,刘宇佳.  试析教育评价数字化转型的原则、场域与方向    [J].  中国考试,  2022,    (06):  16-23.  DOI:10.19360/j.cnki.11-3303/g4.2022.06.003.

  [7]  G. E M ,J. M S ,B. R P , et al.  A systematic literature review to identify evidence-based principles to improve online environmental education    [J].  Environmental Education Research,  2022,  28  (5):  674-694.  

    [8]    殷悦.    幼儿教师体育教育能力智慧云培训系统构建研究[C]//    中国体育科学学会.    第十二届全国体育科学大会论文摘要汇编——墙报交流(学校体育分会).    北京体育大学;,  2022:    2.     DOI:10.26914/c.cnkihy.2022.010681.   

  [9]    《中医教育》网上采编系统及微信公众号    [J].  中医教育,  2022,  41  (01):  3.  

  [10]  孙方裕,赖俊.  WeBWorK作业系统在“高等数学”教学中的应用    [J].  大学数学,  2021,  37  (06):  24-27.  

  [11]  徐勤岸,布勒布丽汗·伊沙巴依,刘海涛.  混合式教学在开放教育中的应用——以操作系统课程为例    [J].  南京广播电视大学学报,  2021,    (03):  51-55.  

  [12]  章胜,祖钦先.  沐浴职教春风  创新育人模式  实现“提技能保安全”目标——祝贺中国职工教育和职业培训协会成立三十周年    [J].  中国培训,  2021,    (05):  29-33.  DOI:10.14149/j.cnki.ct.2021.05.014.

  [13]  马英瑞,陈廉元,李娟,等.  基于Spring Boot的网上在线教育系统的设计与实现    [J].  电脑知识与技术,  2021,  17  (13):  77-79+92.  DOI:10.14004/j.cnki.ckt.2021.1354.

  [14]  陈峰,王磊.  某专业训练评估系统软件设计与实现    [J].  电子技术与软件工程,  2021,    (09):  36-38.  

  [15]  李治,    合创云商教育管理系统V1.0.  甘肃省,  甘肃合创云商互联网科技有限公司,  2021-03-11.   

  [16]  华康民,冯桂林,元鲁艳.  基于LNM P架构的“民航学派”学习考试系统的设计与实现    [J].  科学技术创新,  2021,    (05):  69-71.  

  [17]  朱民.  打造工程实践教学新体系的若干思考与实践    [J].  实验技术与管理,  2020,  37  (10):  251-254.  DOI:10.16791/j.cnki.sjg.2020.10.057.

  [18]  张玮婷.  利用网上阅卷系统提升初中道德与法治教学质量——以南宁市青秀区2017级道德与法治期末测试质量分析为例    [J].  广西教育,  2020,    (37):  11-12+19.  

 

在论文完成之际,我要由衷感谢在整个研究过程中给予我无私帮助和支持的人们。首先,我要感谢我的指导老师(指导教师的姓名),在整个研究过程中给予我耐心的指导和宝贵的建议。您的专业知识和指导对我的研究工作产生了巨大的影响,让我受益匪浅。其次,我要感谢我的家人和朋友们,在我学业和研究工作中给予我的理解、支持和鼓励。最后,我还要感谢所有参与过这项研究的被调查者和志愿者,他们的宝贵意见和数据为本研究提供了重要的支持和帮助。

这些人的支持和帮助对我完成这篇论文起到了至关重要的作用,没有他们的支持,我将无法顺利完成这项研究工作。再次向他们表示最诚挚的感谢和致意。

点赞+收藏+关注 → 私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值