SSM线上教育培训系统-毕业设计源码54020

线上教育培训系统的设计与实现

摘  要

基于SSM(Spring+SpringMVC+MyBatis)框架,我们成功设计并实现了一个功能全面的线上教育培训系统。该系统不仅整合了课程信息管理、报课记录管理、课后作业管理、学生社区等核心功能,而且通过直观的用户界面和高效的数据交互,为教师、学生和管理员提供了便捷、高效的教学和学习体验。在系统的开发过程中,我们充分利用了SSM框架的优势,确保了业务逻辑的高效处理和数据库的稳定交互。经过全面的测试和优化,该系统已经成功部署到服务器上,并能够满足大规模用户访问的需求。未来,我们将继续完善和优化该系统,以满足更多用户的需求,并推动线上教育的发展。

关键词线上教育培训系统;Java;SSM框架

Design and Implementation of Online Education and Training System

ABSTRACT

Based on the SSM (Spring+SpringMVC+MyBatis) framework, we have successfully designed and implemented a fully functional online education and training system. This system not only integrates core functions such as course information management, course registration record management, homework management, and student community, but also provides a convenient and efficient teaching and learning experience for teachers, students, and administrators through an intuitive user interface and efficient data interaction. In the development process of the system, we fully utilized the advantages of the SSM framework to ensure efficient processing of business logic and stable interaction with the database. After comprehensive testing and optimization, the system has been successfully deployed on the server and can meet the needs of large-scale user access. In the future, we will continue to improve and optimize the system to meet the needs of more users and promote the development of online education.

Keywords: online education and training system; Java; SSM Framework

目   录

第1章 绪论

1.1. 研究背景和意义

1.2  国内外研究现状

1.3论文结构与章节安排

第2章 需求分析与可行性分析

2.1 可行性分析

2.1.1技术可行性

2.1.2经济可行性

2.1.3操作可行性

2.2 功能需求分析

2.2.1 功能性分析

2.3 系统用例分析

2.4 系统的流程分析

2.4.1登录流程

2.4.2添加信息流程

2.4.3删除信息流程

第3章 系统总体设计

3.1 系统架构设计

3.2开发流程设计

3.3系统功能模块设计

3.4数据库设计

3.4.1 数据库概念结构设计

3.4.2数据表

第4章 系统关键模块设计与实现

4.1 学生用户模块

4.1.1 前台首页界面

4.1.2 用户注册界面

4.1.3 学生用户登录界面

4.1.4 我的账户界面

4.1.5系统公告界面

4.1.6课程信息界面

4.2 教师用户模块

4.2.1 课程信息界面

4.2.2报课记录界面

4.3管理员功能模块

4.3.1管理员功能界面

4.3.2系统用户管理界面

4.3.3 科目分类管理

4.3.4 系统管理界面

4.3.5 系统公告管理界面

第5章 系统测试

5.1系统测试的目的

5.2系统测试方法

5.3功能测试

第6章 总结

参考文献

致  谢

  1.   绪论

1.1. 研究背景和意义

线上教育培训系统的设计与实现,特别是在SSM(Spring、Spring MVC、MyBatis)框架的支持下,具有重大的研究背景与实践意义。随着互联网技术的飞速发展和全球信息化时代的到来,教育行业正经历着前所未有的变革。传统面对面的教学模式逐渐向线上转型,线上教育因其灵活便捷、资源丰富、覆盖广泛等优势,成为了教育领域的新常态。这一转变不仅满足了人们在快节奏生活中对知识获取的多元化需求,还为偏远地区提供了高质量教育资源,促进了教育公平。

采用SSM框架构建线上教育培训系统,能够有效提升系统的可维护性、扩展性和安全性。Spring框架简化了企业级应用的开发复杂度;Spring MVC作为其web层框架,实现了模型-视图-控制器的分离,有利于构建清晰、易于管理的web应用;而MyBatis作为数据持久层框架,提供了高效且灵活的SQL操作能力,使得数据库访问更加直观和可控。三者的结合,为开发高效率、可扩展的线上教育平台提供了强大的技术支持。

基于SSM框架的线上教育培训系统设计与实现,不仅能够推动教育技术的进步,提高教育资源的利用效率,还能适应个性化学习的需求,为学习者提供更加丰富、个性化的学习体验,对促进全民终身学习体系的建设、提升国民整体素质具有深远的意义。

1.2  国内外研究现状

国内方面,“互联网+教育”的战略导向下,网易云课堂、腾讯课堂等本土平台迅速崛起,不仅在课程广度与深度上下功夫,也注重技术创新,比如引入智能批改系统与虚拟实验环境,旨在增强教学互动性与学习效果。同时,市场细分趋势明显,针对不同年龄段与职业需求的定制化课程服务日益增多。

国际上,以Coursera、Udacity等MOOCs平台为典范,正不断推动在线教育技术的边界,优化平台界面友好度与课程互动性,展现多样化教学内容与模式。这些平台依托于云计算与大数据技术,强化学习分析,为学习者提供更加个性化的内容推荐与学习进度追踪。

尽管如此,现有线上教育系统仍面临诸多挑战,包括如何进一步提升用户体验、保障教育公平、实现教育资源的深度整合与共享,以及如何有效利用大数据分析提升教学反馈与个性化学习策略等。因此,研发更加高效、智能、个性化的在线教育培训系统,仍是当前教育技术领域的研究热点与迫切需求。

1.3论文结构与章节安排

论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:

第一章:引言。第一章主要介绍了课题的研究背景和意义,选题开发的国内外研究现状和本文的研究内容与主要工作。

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

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

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

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

第六章:总结。

  1.   需求分析与可行性分析

2.1 可行性分析

2.1.1技术可行性

线上教育培训系统采用SSM(Spring、SpringMVC、MyBatis)框架进行开发,技术上是完全可行的。Java作为一种成熟、稳定的语言,在企业级应用中具有广泛的应用基础,而SSM框架作为Java领域的主流技术组合,具有高效、灵活、可扩展等优点,能够满足线上教育培训系统的开发需求。通过整合Spring的依赖注入和事务管理、SpringMVC的请求处理流程以及MyBatis的数据持久化操作,我们可以构建一个稳定可靠、易于维护的线上教育培训系统。因此,从技术角度来看,线上教育培训系统SSM框架开发是完全可行的。

2.1.2经济可行性

线上教育培训系统的经济可行性非常显著。Java作为一种开源语言,其使用成本相对较低,而SSM框架也是开源的,可以免费使用,这大大降低了系统的开发成本。Java和SSM框架在市场上的应用广泛,有大量的开发者社区和资源支持,这意味着在开发过程中遇到问题时,可以方便地找到解决方案和技术支持,减少了开发风险和维护成本。此外,线上教育培训系统可以提高教务管理的效率,减少人力和物力的投入,从而间接降低了学校的运营成本。因此,综合考虑开发成本、维护成本以及运营效率等因素,线上教育培训系统在经济上是完全可行的。

2.1.3操作可行性 

线上教育培训系统在操作可行性方面同样表现出色。系统采用直观的用户界面设计,使得学生和教师能够轻松上手,无需复杂的培训即可快速掌握使用方法。同时,系统提供了丰富的功能选项和友好的交互界面,使得用户能够方便快捷地完成选课、查看课程信息、提交记录管理等操作。此外,系统还具备完善的权限管理功能,确保不同用户只能访问其权限范围内的功能,保障了数据的安全性和操作的规范性。因此,线上教育培训系统在操作上是完全可行的,能够满足广大用户的使用需求。

2.2 功能需求分析

2.2.1 功能性分析

按照线上教育培训系统的角色,划分为了学生用户模块、教师用户模块和管理员模块这三大部分。

(一)学生用户功能模块:

注册登录:提供学生用户注册和登录功能,确保用户可以创建和访问自己的账户,以便享受系统提供的各项功能和服务。

首页:快速概览系统功能和最新课程推荐,为学生提供一站式学习入口。

学生社区:学习心得交流、资源共享,打造学生间互动学习的社交平台。

系统公告:实时发布系统更新、活动通知,确保学生不错过任何重要信息。

课程信息:提供课程的详细信息和介绍,包括课程目标、教学内容、教师信息等,帮助学生了解和选择课程。

我的账户:提供个人账户管理功能,包括查看个人信息、修改密码、管理通知设置等操作,方便学生管理自己的账户。

个人首页:展示学生的个人信息和相关操作入口,方便学生快速访问个人功能。

报课记录:已报名课程一目了然,方便学生随时查看和管理自己的课程。

课后作业:查看和完成课后作业,及时巩固学习成果,提升学习效果。

提交记录:记录作业提交情况,便于学生追踪作业进度和教师反馈。

消息通知:接收系统通知、作业反馈等,确保学生不错过任何重要消息。

(二)教师用户功能模块:

注册登录:提供教师用户注册和登录功能,确保教师可以创建和访问自己的账户,以便享受系统提供的服务和功能。

首页:展示教师的个人信息和相关操作入口,方便教师快速进行管理和监控。

课程信息:提供课程信息的管理功能,包括添加新课程、编辑课程信息、删除课程等操作,确保课程信息的及时更新和完善。

报课记录:教师可通过此模块了解学生的报名情况,以便更好地安排教学计划和课程进度。

课后作业:教师可以通过此模块发布作业、设置提交截止时间、查看作业提交情况等,同时在线批改学生作业,并给出及时的反馈和建议,帮助学生巩固学习成果和提升学习效果。

提交记录:教师可通过此模块查看学生的作业提交历史,方便追踪学生的学习进度和作业完成情况。

消息通知:教师可以通过此模块及时回复学生的提问和疑虑,同时了解系统的最新动态和通知,确保教学工作的顺利进行。

(三)管理员功能模块:

登录:提供管理员用户登录功能,确保只有授权的管理员可以访问系统后台,保障系统安全。

后台首页:展示管理员的个人信息和相关操作入口,方便管理员快速进行管理和监控。

系统用户管理:允许管理员管理系统用户,包括添加新用户、编辑用户信息、重置密码等操作,以确保系统的权限管理和安全性。

科目分类管理:提供课程类别的管理功能,包括添加新类别、编辑类别信息、删除类别等操作,方便对课程进行分类和管理。

课程信息管理:提供课程信息的管理功能,包括添加新课程、编辑课程信息、删除课程等操作,确保课程信息的及时更新和完善。

科目分类管理:提供科目分类的管理功能,包括添加新分类、编辑分类信息、删除分类等操作,方便对科目进行分类和管理。

报课记录管理:查看和监控学生的报课情况,处理报课相关的异常和疑问。包括增删改查等操作。

课后作业管理:监控教师布置的作业,确保作业内容的质量,同时处理学生作业提交的相关问题。包括增删改查等操作。

提交记录管理:管理学生作业的提交记录,查看批改状态和成绩,处理异常提交。包括增删改查等操作。

消息通知管理:发布系统通知,管理通知的发送和接收,确保信息传达的及时性和准确性。

系统管理:允许管理员管理系统首页的轮播图内容,包括添加、编辑、删除轮播图等操作,提升网站的视觉效果和用户体验。

系统公告管理:提供系统公告的管理功能,包括发布、编辑、删除公告等操作,让管理员能够及时发布重要通知和信息。

交流管理:管理员可以管理学生社区和社区分类这两个子菜单,监控学生社区的动态,维护社区的秩序和氛围。设置和管理社区的分类,方便用户查找和参与讨论。

权限管理:为不同角色分配系统权限,确保系统的安全性和操作的合规性。2.2.2 非功能性分析

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

2-1线上教育培训系统非功能需求表

安全性

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

可靠性

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

性能

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

可扩展性

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

易用性

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

可维护性

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

2.3 系统用例分析

通过2.2功能的分析,得出了系统的用例图:

学生用户用例图如下所示。

图2-1 学生用户用例图

教师用户用例图如下所示。

图2-2 教师用户用例图

管理员用例图如下所示。

图2-3 管理员用例图

2.4 系统的流程分析

2.4.1登录流程

系统登录流程图,如图所示:

图2-4登录流程图

2.4.2添加信息流程

添加信息流程图,如下图所示:

图2-5添加信息流程图

2.4.3删除信息流程

删除信息流程图,如下图所示:

图2-6删除信息流程图

  1.   系统总体设计

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所示。

图3-3线上教育培训系统功能模块图

3.4数据库设计

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

3.4.1 数据库概念结构设计

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

 图3-4 系统总体ER图

3.4.2数据表

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_information_id

int

10

0

N

Y

课程信息ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

course_name

varchar

64

0

Y

N

课程名称

4

course_id

varchar

64

0

Y

N

课程编号

5

cover_photo

varchar

255

0

Y

N

封面图片

6

teachers_name

varchar

64

0

Y

N

教师姓名

7

course_subjects

varchar

64

0

Y

N

课程科目

8

course_cycle

text

65535

0

Y

N

课程周期

9

teaching_location

text

65535

0

Y

N

授课地点

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_registration_records (报课记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_registration_records_id

int

10

0

N

Y

报课记录ID

2

course_registration_account

int

10

0

Y

N

0

报课账号

3

student_name

varchar

64

0

Y

N

学生姓名

4

grade_information

varchar

64

0

Y

N

年级信息

5

course_name

varchar

64

0

Y

N

课程名称

6

course_id

varchar

64

0

Y

N

课程编号

7

enrollment_time

date

10

0

Y

N

报课时间

8

course_registration_notes

text

65535

0

Y

N

报课备注

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

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_after_class (课后作业)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

homework_after_class_id

int

10

0

N

Y

课后作业ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

course_registration_account

int

10

0

Y

N

0

报课账号

4

course_name

varchar

64

0

Y

N

课程名称

5

course_id

varchar

64

0

Y

N

课程编号

6

distribution_date

date

10

0

Y

N

发放日期

7

deadline

datetime

19

0

Y

N

截止时间

8

assignment_content

text

65535

0

Y

N

作业内容

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表message_notification (消息通知)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

message_notification_id

int

10

0

N

Y

消息通知ID

2

notification_number

varchar

64

0

Y

N

通知编号

3

message_source

varchar

64

0

Y

N

消息来源

4

notification_date

date

10

0

Y

N

通知日期

5

notification_content

text

65535

0

Y

N

通知内容

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

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_age

int

10

0

Y

N

0

学生年龄

4

learning_subjects

varchar

64

0

Y

N

学习科目

5

grade_information

varchar

64

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_classification (科目分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

subject_classification_id

int

10

0

N

Y

科目分类ID

2

subject_name

varchar

64

0

Y

N

科目名称

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表submit_records (提交记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

submit_records_id

int

10

0

N

Y

提交记录ID

2

student_account

int

10

0

Y

N

0

学生账号

3

student_name

varchar

64

0

Y

N

学生姓名

4

course_name

varchar

64

0

Y

N

课程名称

5

course_id

varchar

64

0

Y

N

课程编号

6

upload_homework

varchar

255

0

Y

N

上传作业

7

upload_time

datetime

19

0

Y

N

上传时间

8

remarks_description

text

65535

0

Y

N

备注说明

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teachers_name

varchar

64

0

Y

N

教师姓名

3

teacher_age

int

10

0

Y

N

0

教师年龄

4

teaching_subjects

varchar

64

0

Y

N

授课科目

5

teacher_introduction

text

65535

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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

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

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

  1.   系统关键模块设计与实现

4.1 学生用户模块

4.1.1 前台首页界面

进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图展示,再往下是课程信息推荐,其主界面展示如下图所示。

图4-1 学生用户首页界面图

4.1.2 用户注册界面

注册模块满足用户两部分,当用户想要进行资料相关信息的查询管理的时候,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好账号、密码、昵称、邮箱、身份、用户姓名、用户性别、联系电话等注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,注册主界面展示如下图所示。

图4-2用户注册界面图

4.1.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;

        QueryWrapper wrapper = new QueryWrapper<User>();

        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());

            tokenService.save(accessToken);

            // 返回用户信息

            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, "账号或密码不正确");

        }

}

    public String select(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("select ");

        sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

        sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

        if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

            sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

        }

        if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

            sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

        }

        if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

            int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

            int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

            sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

        }

        log.info("[{}] - 查询操作,sql: {}",table,sql);

        return sql.toString();

}

    public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

4.1.4 我的账户界面

在右上角点击“我的账户”可以对个人头像、个人昵称、密码进行修改。我的账户界面如下图所示。

图4-4我的账户界面图

4.1.5系统公告界面

用户进行公告的阅览,查看管理者发布的系统公告、关于我们、联系方式、网站介绍等信息。系统公告界面图如下图所示。

图4-5系统公告界面图

4.1.6课程信息界面

学生可以查看课程的详细信息和介绍,包括课程名称、课程科目、教师信息等,帮助了解和选择课程。在详情页面可以报名学习等。课程信息界面如下图所示。

图4-6课程信息界面图

4.2 教师用户模块

4.2.1 课程信息界面

提供课程信息的管理功能,包括添加新课程、编辑课程信息、删除课程等操作,确保课程信息的及时更新和完善。课程信息界面如下图所示。

图4-7课程信息界面图

4.2.2报课记录界面

教师可通过此模块了解学生的报名情况,以便更好地安排教学计划和课程进度。报课记录界面如下图所示。

图4-8报课记录界面图

报课记录的关键代码如下:

 @RequestMapping(value = {"/sum_group", "/sum"})

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

        Query count = service.sum(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.3管理员功能模块

4.3.1管理员功能界面

在管理员功能页面中可以查看后台首页、系统用户、课程信息管理、科目分类管理、报课记录管理、课后作业管理、提交记录管理、消息通知管理、系统管理、系统公告管理、交流管理、权限管理等功能,并可进行相应操作。管理员功能界面如下图所示。

图4-9管理员功能界面图

4.3.2系统用户管理界面

在系统用户页面中可以对管理员、学生用户、教师用户三种角色进行管控,还可以对三种角色进行查询、重置、添加和删除。系统用户界面如下图所示。

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

系统用户管理关键代码如下所示。

public List selectBaseList(String select) {

        List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

        List<E> list = new ArrayList<>();

        for (Map<String,Object> map:mapList) {

            list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

        }

        return list;

}

4.3.3 科目分类管理

提供科目分类的管理功能,包括添加新分类、编辑分类信息、删除分类等操作,方便对课程进行分类和管理。科目分类管理界面如下图所示。

图4-11科目分类管理界面图

4.3.4 系统管理界面

管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。

图4-12系统管理界面图

4.3.5 系统公告管理界面

点击“系统公告管理”这个菜单,可以查看到系统中所有添加的通知公告,支持通过标题对系统公告进行查询,添加、删除等操作。系统公告管理界面如下图所示。

图4-13系统公告管理界面图

  1.  系统测试

5.1系统测试的目的

程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。

软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。

线上教育培训系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在线上教育培训系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。

5.2系统测试方法

在对线上教育培训系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让线上教育培训系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个线上教育培训系统开发所牵扯的该问题都必须一一解决,提高线上教育培训系统的安全性、稳定性。

白盒测试与黑盒测试是测试中比较常用的两种方法。

①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。

②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。

5.3功能测试

用户登录测试:

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:admin   密码:123  

弹出错误提示,提示密码错误

弹出错误提示,提示密码错误

通过

登录模块

用户名:123   

密码:admin   

弹出错误提示,提示用户名错误

弹出错误提示,提示用户名错误

通过

登录模块

用户名:admin   

密码:admin   

管理员登录成功

管理员登录成功

通过

删除分类测试:

模块名称

测试用例

预期结果

实际结果

是否通过

删除分类模块

分类名:最新通知  

删除成功、页面自动跳转

删除成功、页面自动跳转

通过

修改密码测试:

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:666

新密码:123

确认密码:123  

弹出错误提示,提示原密码错误

弹出错误提示,提示原密码错误

通过

修改密码模块

原密码:admin   新密码:123

确认密码:333  

弹出错误提示,提示确认密码不一致

弹出错误提示,提示确认密码不一致

通过

修改密码模块

原密码:admin   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

通过对功能的测试,线上教育培训系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。

  1.   总结

在2024年的今天,计算机技术已经发展得相当成熟,为许多行业带来了巨大的变革。特别是教育领域,计算机技术的引入使得线上教育培训系统得以快速发展和优化。线上教育培训系统,结合SSM框架和MySQL数据库技术,已经成为高校教务管理的重要组成部分。

本文所描述的线上教育培训系统,通过分析学生选课的实际需求,结合现代软件工程的最佳实践,完成了系统的设计和实现。系统提供了学生选课、查看课程信息、提交记录管理等功能,界面简洁美观,操作便捷,符合用户的使用习惯。

然而,由于时间限制和开发经验的不足,本系统仍存在一些不足之处。首先,数据输入的格式检验尚不完善,可能存在不符合规则的数据通过验证的情况,这在一定程度上影响了数据的准确性。其次,系统功能还有待进一步扩展和完善,以满足更多元化的用户需求。

尽管系统存在一些漏洞和不足,但在实际应用中仍能够基本满足学生选课的需求。我们相信,通过不断的改进和完善,这个线上教育培训系统将会变得更加成熟和稳定,为高校教务管理提供更加高效、便捷的服务。同时,我们也期待更多的开发者和教育工作者能够参与到这一领域的研究和实践中,共同推动线上教育培训系统的进步和发展。

参考文献

  [1]  王建国,张争,汤来锋,等.  基于SSM框架的学生信息管理系统的设计与实现    [J].  现代信息科技,  2024,  8  (07):  30-33.  DOI:10.19850/j.cnki.2096-4706.2024.07.007.

  [2]  李昊聪,李喜龙,曹俊鹏,等.  基于SSM框架的安全生产费用审核管理系统设计    [J].  轻工科技,  2024,  40  (02):  87-90.  

  [3]  宋蕙帆.  基于SSM的精准就业服务平台设计与实现    [J].  科技创新与应用,  2024,  14  (08):  102-105.  DOI:10.19981/j.CN23-1581/G3.2024.08.023.

  [4]  吕玫霞,张海韬,丁洁琼,等.  基于SSM框架的交通气象站监控系统    [J].  中国交通信息化,  2024,    (S1):  389-391+400.  DOI:10.13439/j.cnki.itsc.2024.S1.102.

  [5]  王兵杰,蔡蕾.  基于生态系统理论构建学前融合教育园本培训体系    [J].  现代特殊教育,  2024,    (05):  11-13.  

  [6]  林红.  基于SSM的共享单车管理系统设计    [J].  现代信息科技,  2024,  8  (05):  17-20+26.  DOI:10.19850/j.cnki.2096-4706.2024.05.004.

  [7]  朴明,于湘菲.  基于SSM框架技术的线上工艺品商城设计与实现    [J].  造纸装备及材料,  2024,  53  (02):  85-87.  

  [8]  申娇娣.  基于SSM框架的大学生创新创业申报系统构建    [J].  中国新技术新产品,  2024,    (03):  27-30.  DOI:10.13612/j.cnki.cntp.2024.03.018.

  [9]  高俊杰,孙鹏霞,刘义汉,等.  基于SSM的网上订餐管理系统    [J].  软件,  2024,  45  (01):  168-173.  

  [10]  白茹鑫.  基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现    [J].  现代信息科技,  2024,  8  (01):  44-49.  DOI:10.19850/j.cnki.2096-4706.2024.01.009.

  [11]  袁爱平,陈畅,孙士兵,等.  基于SSM框架的高校学生信息管理系统设计与实现    [J].  工业控制计算机,  2023,  36  (12):  127-129.  

  [12]  单厚信,刘舒心,程文远,等.  基于SSM架构的图书资料管理系统设计与实现    [J].  现代信息科技,  2023,  7  (23):  46-51.  DOI:10.19850/j.cnki.2096-4706.2023.23.010.

  [13]  Liang C .  School Vehicle Management System Based on JAVA Language    [J].  Academic Journal of Computing & Information Science,  2023,  6  (9):    

  [14]  杨丽平,王晓庆.  教育管理系统在护理实习生线上培训中的应用效果评价    [J].  现代医药卫生,  2022,  38  (15):  2678-2680.  

  [15]  Hongying Z .  A Study on the Design of English Speaking Examination System Based on SSM Framework    [J].  Journal of Sensors,  2022,  2022

  [16]  Shittu D M ,Soneye J T ,Ibitoye A S .  The Study and Prediction of Corrosion Rate of Ductile Iron in Cassava Fluid Using Java  Oriented Program    [J].  Current Journal of Applied Science and Technology,  2022,28-34.  

  [17]  林永朋.  基于互联网的培训监管系统设计与应用    [J].  集成电路应用,  2021,  38  (04):  172-173.  DOI:10.19339/j.issn.1674-2583.2021.04.076.

  [18]  Xin H ,Chaobing Y .  Development and application of JAVA language development test evaluation system software    [J].  Journal of Computational Methods in Sciences and Engineering,  2020,  20  (4):  1-12.  

  [19]    Design and Implementation of ERP System Based on SSM Framework    [J].    2020,  440  (5):    

  [20]  李峰.  培训中心数字化校园建设发展战略及目标规划    [J].  中国电力教育,  2011,    (36):  91-92.  

  

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设能够完成离不开老师的帮助。我对老师由衷的表示感谢,

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

请关注点赞+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值