概括
科学技术的快速发展给人们的日常生活带来了巨大的变化,电子信息技术的快速发展使得电子信息技术的应用水平在各个领域得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展史进入了新时代。在实际应用中,应用该软件的工作规则和开发流程,利用Java技术构建了师生问答预约系统。
本设计主要实现一个教师和学生问答预约系统,集人性化、高效、便捷的优点于一体,首页、网站管理(轮播照片、公告)人员管理(管理员、学生、老师)和完整的内容管理(校园信息) 、信息分类)模块管理(教师信息、学生预约、预约取消、在线留言、在线问答)个人管理等功能模块。系统通过浏览器与服务器进行通信,实现数据交换和修改。该系统以科学的管理方法和便捷的服务,提高了工作效率,减少了数据存储错误和遗漏。师生问答预约系统采用Java语言,基于MVC模式,采用Springboot技术开发。数据方面,主要使用微软的MySQL关系数据库。系统开发采用HTML+CSS技术配合前台完成。
关键词:师生问答时间表,关系数据库;
Spring Boot交互式响应和预订系统
抽象的
科学技术的快速发展给人们的日常生活带来了巨大的变化,电子信息技术的快速发展提高了电子信息技术在各个领域的应用水平,使得信息时代的到来成为必然趋势。它变成了。在实际应用中,应用软件的工作规则和开发步骤均采用Java技术,构建教师和学生的交互式应答和预约系统。
本设计主要实现师生互动应答预约系统、主页、网站管理(播放地图、公告)、人力资源管理(管理员、学生、教师)等人性化、高效、便捷等优点。内容管理(校园信息、信息分类) 模块管理(教师信息、学生预约、预约取消、在线留言、在线回复) 个人管理等功能模块系统通过浏览器与服务器通信,交换和更改数据实现。系统管理科学、服务便捷,提高了工作效率,减少了数据存储错误和遗漏。基于MVC模式,使用Java语言和Springboot技术开发,使用Eclipse 2017 CI。 10编译器编写并使用微软的MySQL关系数据库作为数据的数据存储介质,配合前台HTML+CSS技术完成系统开发。
关键词: 教师和学生互相解答问题并制定计划。 关系型数据库。
目录
第1 章;
1.1 研究背景及意义
1.2 发展现状
1.3 本文结构
第二章相关技术介绍
2.1 开发技术说明
2.2 MVVM模式概述
2.3 MySQL数据库
2.4 B/S结构
2.5 Spring引导框架
2.6 Vue.js的主要特点
第三章系统分析
3.1 可行性分析
3.1.1 技术可行性分析
3.1.2 经济可行性分析
3.1.3 可操作性分析
3.2 功能需求分析
3.3 非功能需求分析
第四章系统设计
4.1 系统架构设计
4.2 系统功能配置
4.3 功能模块设计
4.4 数据库设计
4.4.1 概念模型
4.4.2 数据表
第五章系统介绍
5.1 实现登录模块
5.2 用户子系统模块的实现
5.2.1 用户主页模块
5.2.2 注册模块
5.2.3 在线问答模块
5.2.4 评论模块
5.2.5 在线问答模块
5.2.6 问答模块
5.3 实现管理员子系统模块
5.3.1 学生管理模块
5.3.2 个人信息管理模块
第六章系统测试
6.1 测试目的
6.2 测试过程
6.3 测试结果
第七章总结与展望
参考
致谢
介绍
研究背景及意义
互联网技术的广泛应用和网络技术的持续发展对传统的回答问题方式产生了重大影响。基于网络的教育系统是当今计算机应用的热门话题。由于大学学生数量的增加,以及教师、课程和教师的定期更换,师生之间的交流日益减少,导致师生之间的问题难以解答。因此,开发面向师生的问答预约系统更为实用。随着互联网技术的普及,在线进行的教育活动变得越来越普遍。师生问答预约系统是利用互联网开展教育活动的工具。这主要体现在师生问答互动上。
通过该系统,学生可以根据自己的时间制定提问计划,不受时间和地点的限制,还可以向网站上注册的导师提问和预约课程。对于老师来说也是如此。老师解答问题后,学生无需在特定教室约定时间查看问题。实现常规教育无法实现的“个性化教育”。在线问答系统有助于加深师生关系,同时解决学生的问题,提高学习效率。这个毕业项目的目的是设计和实现一个跨学科的、通用的模块化在线学习平台,以提高学生的学习兴趣,促进当今大学教育模式和教学方法的创新。采用非面对面教学方式的在线问答系统,让学生不受时间、地点的限制,提交作业、提出问题、回答问题,凸显了在线教育的开放性、互动性,体现了性别性和独立性。因此,有必要开发一个基于Springboot的教师和学生问答预约系统,它有其自身的技术和管理意义。
发育状况
宋海民(2017) at 《基于B/S模式课程网上答疑系统的设计》 我国网络技术发展迅速,基于互联网的应用越来越多。教学方法、教具和工具也在迅速变化。为了帮助学生更好地解决学习过程中遇到的问题,在线问答系统突破时间和空间的限制,涵盖系统结构、系统性能、功能,帮助学生解决学习过程中遇到的问题。在这方面,系统详细地设计了基于B/S模式课程的在线问答系统。
杨培基(2017)《基于微信和Java Web的高校答疑系统的设计与实现》 教育为了解决高校师生问答环节面临的空间和时间限制,提高高校教学质量,本文开发了一个基于微信的高校在线系统。开发问答系统。基于微信公众平台,教师可以通过微信平台管理课程、学生、学生问题,学生可以通过微信平台提出问题并获得解答。该系统可以有效降低师生在问答环节花费的成本,提高问答质量。
蒋立群(2017)在《网络答疑反馈系统在Java教学中的应用》中介绍了自主开发的Java课程网络问答反馈系统。通过系统分类和反馈,将该系统应用于Java课程教学。根据学生的提问,帮助教师了解学生的学习信息和问题,提高课程教学质量。
王振铎、王振辉、林智慧、张守军(2017)针对当前翻转课堂教学环节不完善的问题,提出了一种简单可行的一体化翻转课堂模型。通过课前、课中、课后三个一体化教学环节的建设,保证了翻转课堂教学工作的完整性,有效提高了翻转课堂的教学效果和质量。
耿立伟(2017)在《翻转课堂课内外一体化教学模式的构建》中介绍,问答系统在在线远程教育中得到广泛应用,越来越受到教育界的关注。问答系统不仅可以减轻教师的负担,提高学生的学习效率,还可以节省教学成本,充分利用在线教学资源。我们将结合在线教育的特点,阐述在线远程教育中问答系统的必要性和使用方法,并介绍问答系统的基本功能。
本文的结构
第一章为绪论,文章开头阐述了本课题的研究背景和重要性。
第二章研究了教师和学生相互问答预订系统的开发技术和工具。
第三章是系统分析部分,包括系统总体需求的描述、从功能角度对系统需求的分析以及系统是否可实现的非功能分析。
第四章是系统设计部分,本文的重要部分提供了系统架构的详细设计以及一些关键功能模块的设计步骤。
第五章是系统的具体实现,介绍了系统各模块的具体实现。
第6 章在前几章的基础上测试和运行系统。
最后,我们对该系统进行了仔细的总结,以期为未来提供新的视角。
相关技术介绍
开发技术说明
本系统前端部分基于MVVM模型采用B/S模式开发,后端部分基于Java springboot框架开发。
前端部分:前端框架采用流行的渐进式JavaScript框架Vue.js。使用Vue-Router 和Vuex 进行动态路由和全局状态管理,使用Ajax 进行前端和后端通信,并使用Element UI 组件库快速创建和使用项目前端以实现网格布局的响应能力。适用于PC、平板、手机等。适合各种屏幕尺寸的布局显示。
后端部分:采用springboot作为开发框架,集成MyBatis、Redis等相关技术。
MVVM 模式概述
MVVM 是模型-视图-视图模型的缩写。这本质上是MVC的改进版本。 MVVM 抽象视图状态和行为,允许您分离视图UI 和业务逻辑。当然,ViewModel 已经完成了这些工作,并帮助您获取模型数据并处理需要显示内容的视图中包含的业务逻辑。微软的WPF带来了Silverlight、音频、视频、3D和动画等新技术体验,从而产生了更详细和可定制的软件UI层。同时,在技术层面上,WPF还带来了新功能,如绑定、依赖属性、路由事件、命令、DataTemplate、ControlTemplate等新功能。 MVVM(模型-视图-视图模型)框架源于一种新的体系结构框架,该框架是根据将MVP(模型-视图-呈现器)模式与WPF 相结合的应用方法开发的。它基于原有的MVP框架,并融入了新的WPF功能,以满足客户日益复杂的需求。
MySQL数据库
科学技术的进步给日常生活带来了许多便利。例如,教室投影仪采用虚拟成像技术,数码相机采用光电检测技术。例如,超市需要一个信息仓库来记录货物进出仓库的移动情况。这个信息仓库就是一个数据库,教师和学生的问答预约系统也需要这个技术的支持[7]。
MySQL软件用于接受多个用户的访问,该软件中存在Archive等。通过对数据进行分类并将其存储在单独的表中,数据管理系统本身变得更快,数据库变得更加灵活。 MySQL代码是公开的,可以被其他人重新编译和升级。此功能与正确的软件相结合,可以为用户降低成本并形成一个出色的网站系统。尽管有其缺点,但它仍然是用户的主要应用对象[8]。
B/S结构
B/S(浏览器/服务器)是一种比其前身更加良性的架构。使用网络服务器发送和交换数据。只需要下载一个浏览器作为客户端,工作就“缩小”了,而且不用考虑不断安装软件的问题[9]。
春季启动框架
所谓技术可行性,是指初期规划的功能能否在有限的时间内实现。您在开发或设计过程中是否遇到过无法解决的问题?完成的项目是否能够顺利使用,如果存在缺陷,后续维护是否会异常困难?对系统进行评估后,确定现有技术可以实现目标。通过使用Java技术实现动态页面,并结合低依赖的设计模式、灵活的数据库和稳定的服务器,大大提高了系统的整体运行效率。这说明,从技术层面实现目标并不是一个不合理的想法。
经济可行性分析
由于项目中使用的大部分工具现在都是通用开源且免费的,因此项目在开发初期所使用的资金明显减少,并且软件的开发在项目期间是独立于资金的。由于它还处于早期阶段,因此在经济上仍然可行。我们力争用最少的钱满足用户的需求。节省人工和设备成本。我们将在无纸化、高效化的道路上不断前行。
运营可行性分析
该系统的功能非常易于操作,并且由于它适用于普通的计算机配置,因此任何具有基本计算机操作知识的人都可以顺利使用它。计算机具有连接互联网的能力,操作人员不需要特殊的能力,他只需要了解业务流程并根据自己的专业知识执行正确的操作即可。学生问答预订系统可以运行。
功能需求分析
在开发和设计一个系统之前,需要对功能有一个初步的了解,管理系统将由哪些部分组成,每个部分将具有哪些功能,以及整体设计是否满足用户的需求。必须在清楚地了解正在发生的事情的情况下进行分析和总结。随着所开发的系统的运行,一个完整的系统被设计和实现。用户和开发人员之间的沟通分析,以实现最高水平的理解和优化系统功能。
学生用例图如下所示。
图3-1 学生用例图
管理员用例图如下所示。
图3-2 管理员使用示例图
教师用例图如下所示。
图3-3 教师用例图
通过对师生互问预约系统的需求分析,整个系统主要分为管理员和学生两部分,各模块下的分支功能有所不同。功能描述如下:
学生模块:
注册一个帐户。
帐号登录认证。
管理您的个人资料信息并更改可编辑信息字段。
您可以在线提问并查看您过去的问题历史记录。
回复问题并查看您的回复历史记录。
预订课程并查看过去的预订记录。
取消预订并检查取消历史记录。
教师模块:
管理您的个人资料信息并更改可编辑信息字段。
课程预订和学生课程预订的确认。
取消预订、审核学生取消预订
管理员模块:
我们维护学生留下的评论数据并删除非法评论。
存储学生留下的预订数据。
管理学生、查看学生帐户、冻结学生登录权限或删除学生帐户。
非功能性需求分析
系统有很多非功能性需求,比如性能需求、可支持的最大用户数、稳定性、易用性等。分析该系统时,请考虑易用性。系统既然是人使用的,就需要简单易懂、易于使用,并考虑到用户体验。易于操作。
系统设计
系统架构设计
目前B/S系统主要的数据访问方式是用户通过浏览器页面访问系统,系统自动处理用户向服务器发送的请求。当您在系统后台的页面上进行相应的操作时,您可以看到服务器下发的处理结果。师生问答预约系统主要分为视图、模型、控制三层架构设计。在视图层中,反馈并显示给客户端的数据主要是在服务器端进行操作。模型层主要处理相关的业务逻辑和数据集成。最终的控制层位于视图与视图之间。它协调模型和两个主要层之间的关系,最终实现数据传输。
系统配置图如下所示。
图4-1 系统配置图
系统功能配置
系统设计的目的是分析系统所包含的所有功能结构,以便开发人员为系统的设计、开发和实现做好准备。经过初步的需求调研、分析、分类,确定的总体需求主要包括多个模块:消息管理、学生管理、教师管理、精选学生预约等。整个系统角色分为三部分:一为教师,一为学生,最后一为管理员。权限分配也非常明确:除了查看信息外,学生还可以查询和管理自己的账户信息,进行学生预订、取消预订、在线回答问题等。马苏。管理者是最高权力的持有者。
系统功能配置图如下所示。
图4-2 系统功能配置图
功能模块设计
在线问答模块
学生和课程之间是一对多的关系,根据课程编号将算子路由到问题数据并生成问题列表。您可以查看您的个人历史调查问卷并丢弃您的数据。
课程维护模块
教师输入课程数据,点击课程输入按钮,循环显示要输入的课程数据,点击提交按钮将数据发送到数据库并更新课程数据页面。课程数据页面有一个删除按钮和一个编辑按钮。在每条数据的右侧完成相应的删除和更新功能。
问答模块
老师和问题之间是一对多的关系,问题数据根据题号传递,老师生成答案列表。您可以查看您的个人历史回复列表并丢弃您的数据。
学生预约管理模块
学生登录系统后,可以在学生预约模块中预约课程。管理员可以在后台查看或搜索预约信息,并可以回复或删除预约信息。
评论信息管理模块
评论模块分为用户评论和管理员管理的评论信息,用户登录系统后选择自己想要评论的课程并添加评论。管理员拥有查看和管理评论信息的权限。包括删除。
数据库设计
概念模型
对于您开发的系统,您可以使用E-R图来帮助其他人快速、轻松地理解系统的事务以及它们之间的关系。根据系统分析阶段得出的结论,发现师生问答预约系统中存在多个实体(学生、管理员、课程、问题、教师)。
整个系统的ER图如下图所示。
图4-4 整个系统ER图
数据表
数据库逻辑
结构就是将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
用户编号:
表article (文章:用于内容管理系统的文章)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
article_id
mediumint
8
0
N
Y
文章id:[0,8388607]
2
title
varchar
125
0
N
Y
标题:[0,125]用于文章和html的title标签中
3
type
varchar
64
0
N
N
0
文章分类:[0,1000]用来搜索指定类型的文章
4
hits
int
10
0
N
N
0
点击数:[0,1000000000]访问这篇文章的人次
5
praise_len
int
10
0
N
N
0
点赞数
6
create_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
创建时间:
7
update_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
更新时间:
8
source
varchar
255
0
Y
N
来源:[0,255]文章的出处
9
url
varchar
255
0
Y
N
来源地址:[0,255]用于跳转到发布该文章的网站
10
tag
varchar
255
0
Y
N
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开
11
content
longtext
2147483647
0
Y
N
正文:文章的主体内容
12
img
varchar
255
0
Y
N
封面图
13
description
text
65535
0
Y
N
文章描述
表article_type (文章分类)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
type_id
smallint
5
0
N
Y
分类ID:[0,10000]
2
display
smallint
5
0
N
N
100
显示顺序:[0,1000]决定分类显示的先后顺序
3
name
varchar
16
0
N
N
分类名称:[2,16]
4
father_id
smallint
5
0
N
N
0
上级分类ID:[0,32767]
5
description
varchar
255
0
Y
N
描述:[0,255]描述该分类的作用
6
icon
text
65535
0
Y
N
分类图标:
7
url
varchar
255
0
Y
N
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置
8
create_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
创建时间:
9
update_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
更新时间:
表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
varchar
500
0
Y
N
添加字段:
14
field_set
varchar
500
0
Y
N
修改字段:
15
field_get
varchar
500
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
更新时间:
表cancel_reservation (取消预约)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
cancel_reservation_id
int
10
0
N
Y
取消预约ID
2
teacher_no
int
10
0
Y
N
0
教师工号
3
teacher_name
varchar
64
0
Y
N
教师姓名
4
college
varchar
64
0
Y
N
学院
5
teaching_course
varchar
64
0
Y
N
教学课程
6
student_no
int
10
0
Y
N
0
学生学号
7
student_name
varchar
64
0
Y
N
学生姓名
8
time_of_appointment
datetime
19
0
Y
N
预约时间
9
reason_for_cancellation
text
65535
0
Y
N
取消原因
10
recommend
int
10
0
N
N
0
智能推荐
11
create_time
datetime
19
0
N
N
CURRENT_TIMESTAMP
创建时间
12
update_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
更新时间
表collect (收藏)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
collect_id
int
10
0
N
Y
收藏ID:
2
user_id
int
10
0
N
N
0
收藏人ID:
3
source_table
varchar
255
0
Y
N
来源表:
4
source_field
varchar
255
0
Y
N
来源字段:
5
source_id
int
10
0
N
N
0
来源ID:
6
title
varchar
255
0
Y
N
标题:
7
img
varchar
255
0
Y
N
封面:
8
create_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
创建时间:
9
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:
表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:
表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
更新时间:
表online_qa (在线答疑)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
online_qa_id
int
10
0
N
Y
在线答疑ID
2
question_name
varchar
64
0
Y
N
问题名称
3
problem_type
varchar
64
0
Y
N
问题类型
4
related_majors
varchar
64
0
Y
N
相关专业
5
question_content
text
65535
0
Y
N
问题内容
6
answer
text
65535
0
Y
N
问题答案
7
related_resources
varchar
255
0
Y
N
相关资源
8
hits
int
10
0
N
N
0
点击数
9
praise_len
int
10
0
N
N
0
点赞数
10
recommend
int
10
0
N
N
0
智能推荐
11
create_time
datetime
19
0
N
N
CURRENT_TIMESTAMP
创建时间
12
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 (学生)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
student_id
int
10
0
N
Y
学生ID
2
student_no
varchar
64
0
N
N
学生学号
3
student_name
varchar
64
0
Y
N
学生姓名
4
college
varchar
64
0
Y
N
学院
5
examine_state
varchar
16
0
N
N
已通过
审核状态
6
recommend
int
10
0
N
N
0
智能推荐
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
更新时间
表student_reservation (学生预约)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
student_reservation_id
int
10
0
N
Y
学生预约ID
2
teacher_no
int
10
0
Y
N
0
教师工号
3
teacher_name
varchar
64
0
Y
N
教师姓名
4
college
varchar
64
0
Y
N
学院
5
teaching_course
varchar
64
0
Y
N
教学课程
6
student_no
int
10
0
Y
N
0
学生学号
7
student_name
varchar
64
0
Y
N
学生姓名
8
time_of_appointment
datetime
19
0
Y
N
预约时间
9
examine_state
varchar
16
0
N
N
未审核
审核状态
10
examine_reply
varchar
16
0
Y
N
审核回复
11
recommend
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
更新时间
表teacher (教师)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
teacher_id
int
10
0
N
Y
教师ID
2
teacher_no
varchar
64
0
N
N
教师工号
3
teacher_name
varchar
64
0
Y
N
教师姓名
4
college
varchar
64
0
Y
N
学院
5
examine_state
varchar
16
0
N
N
未审核
审核状态
6
recommend
int
10
0
N
N
0
智能推荐
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
更新时间
表teachers_message (教师留言)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
teachers_message_id
int
10
0
N
Y
教师留言ID
2
teacher_no
int
10
0
Y
N
0
教师工号
3
teacher_name
varchar
64
0
Y
N
教师姓名
4
title
varchar
64
0
Y
N
标题
5
message_content
text
65535
0
Y
N
留言内容
6
proposal
text
65535
0
Y
N
建议
7
recommend
int
10
0
N
N
0
智能推荐
8
create_time
datetime
19
0
N
N
CURRENT_TIMESTAMP
创建时间
9
update_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
更新时间
表teacher_information (教师信息)
编号
名称
数据类型
长度
小数位
允许空值
主键
默认值
说明
1
teacher_information_id
int
10
0
N
Y
教师信息ID
2
teacher_no
int
10
0
Y
N
0
教师工号
3
teacher_name
varchar
64
0
Y
N
教师姓名
4
college
varchar
64
0
Y
N
学院
5
photo
varchar
255
0
Y
N
照片
6
title
varchar
64
0
Y
N
职称
7
teaching_course
varchar
64
0
Y
N
教学课程
8
education
varchar
64
0
Y
N
学历
9
teaching_field
text
65535
0
Y
N
教学领域
10
scope_of_answering_questions
text
65535
0
Y
N
答疑范围
11
office_hours
text
65535
0
Y
N
答疑时间
12
personal_profile
text
65535
0
Y
N
个人简介
13
hits
int
10
0
N
N
0
点击数
14
praise_len
int
10
0
N
N
0
点赞数
15
recommend
int
10
0
N
N
0
智能推荐
16
create_time
datetime
19
0
N
N
CURRENT_TIMESTAMP
创建时间
17
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
create_time
timestamp
19
0
N
N
CURRENT_TIMESTAMP
创建时间:
表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
更新时间:
系统实现
登录模块的实现
系统的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,后台处理判断是否为合法用户,进行页面跳转,进入系统中去。
登录合法性判断过程:用户输入账号和密码后,系统首先确定输入输入数据合法性,然后在login.jsp页面发送登录请求,调用src下的mainctrl类的dopost方法来验证。
用户登录模块的IPO如下所示:
输入:用户名和密码。
处理:
1)检测用户输入的账号、密码是否正确及在数据库已对应存在。
2)从数据库中提取记录,并储存在本地的session中(timeout默认=30min)。
3)根据用户名,将其显示在系统首页上。
输出:是否成功的信息。
登录流程图如下所示。
图5-1登录流程图
系统登录界面如下所示。
图5-2系统登录界面
用户登录的逻辑代码如下。
/**
* 登录
* @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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && \”\”.equals(email) == false){
map.put(\”email\”, email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && \”\”.equals(phone) == false){
map.put(\”phone\”, phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,\”用户组不存在\”);
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = \”select examine_state from \”+ userGroup.getSourceTable() +\” WHERE user_id = \” + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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, \”账号或密码不正确\”);
}
}
用户子系统模块的实现
用户首页模块
系统呈现出一种简洁大方的首页:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对系统使用群体广泛的顾虑,应有良好性能的后台。
如下图所示为系统的首页界面。
图5-3系统首页界面
其中载入前台页面的主要代码如下。
@SpringBootApplication
@EnableJpaRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
注册模块
此页面实现学生的注册,必须注册登录后才能使用系统大部分功能,用户名不允许重复如果重复将会注册失败,并弹出相应的提示,通过js实现对输入的验证。
用户注册流程图如下所示。
图5-4用户注册流程图
用户注册界面如下图所示。
图5-5用户注册界面
用户注册关键代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping(\”register\”)
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put(\”username\”,user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, \”用户已存在\”);
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = \”user_id\”)
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = \”state\”)
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = \”user_group\”)
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = \”login_time\”)
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = \”phone\”)
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = \”phone_state\”)
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = \”username\”)
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = \”nickname\”)
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = \”password\”)
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = \”email\”)
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = \”email_state\”)
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = \”avatar\”)
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = \”create_time\”)
@JsonFormat(pattern = \”yyyy-MM-dd HH:mm:ss\”)
private Timestamp createTime;
@Basic
@Transient
private String code;
}
在线答疑模块
用户在lyblist查看在线答疑信息,先使用sql语句查询出所有在线答疑表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,然后放入页面模板中,用户点击我要在线答疑则跳转至lyb.jsp。
用户在线答疑流程图如下所示。
图5-6用户在线答疑流程图
用户在线答疑界面如图所示。
图5-7用户在线答疑界面
在线答疑管理界面如图所示。
图5-8在线答疑管理界面
在线答疑添加关键代码如下所示。
@RequestMapping(value = \”/del\”)
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
@Transactional
public void delete(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer(\”DELETE FROM \”).append(\”`\”).append(table).append(\”`\”).append(\” \”);
sql.append(toWhereSql(query, \”0\”.equals(config.get(FindConfig.GROUP_BY))));
log.info(\”[{}] – 删除操作:{}\”,table,sql);
Query query1 = runCountSql(sql.toString());
query1.executeUpdate();
}
评论模块
首先使用sql语句查询出所有课程表的数据,用户在课程页查看课程信息和评论信息,点击评论,跳转至评论添加页面,添加评论则将发布的评论数据封装在HashMap,中然后调用CommDAO的insert方法将评论内容插入评论表中,评论管理页面则调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,然后放入页面模板中。
用户评论流程图如下所示。
图5-9用户评论流程图
用户评论界面如图所示。
图5-10用户评论界面
评论添加关键代码如下所示。
@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());
}
在线答疑模块
在线答疑过程中,首先使用getmap(id,\”xinxi\”),通过课程ID得到课程数据,将课程数据赋值给在线答疑,调用CommDAO的insert方法将提问数据插入提问表中,最后查看个人历史在线答疑记录,可以销毁历史提问数据。
在线答疑流程图如下所示。
图5-11在线答疑流程图
在线答疑界面如图所示。
图5-12在线答疑界面
在线答疑关键代码如下所示。
@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);
}
问题回复模块
问题回复过程中,首先使用getmap(id,\”xinxi\”),通过问题ID得到问题数据,将问题数据赋值给问题回复,调用CommDAO的insert方法将回复数据插入回复表中,最后查看个人历史问题回复记录,可以销毁历史回复数据。
问题回复流程图如下所示。
图5-13问题回复流程图
问题回复界面如图所示。
图5-14问题回复界面
问题回复关键代码如下所示。
@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());
}
管理员子系统模块的实现
学生管理模块
学生在yhzhgl查看学生信息,先使用sql语句查询出所有学生表的数据,然后调用PageManager.getPages(url,4,sql, request ),返回一个ArrayList的对象,在for循环里,使用jsp得到每个ArrayList对象的数据,在jsp页面中解析ArrayList对象,得到其各个键值对的值。
学生管理界面如下图所示。
图5-15学生管理界面
系统学生管理关键代码如下所示。
server:
port: 5000
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
default-property-inclusion: ALWAYS
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
个人资料管理模块
用户点击登录填写账号信息登录后,会切换内容为“某某用户欢迎您”和历史订单,并给出注销链接。当用户登录成功后会将个人信息保存在session作用域中,点击自己的用户名时,会跳转到个人详细信息页面,由后台通过Freemarker取出session作用域中的用户信息进行动态渲染,例如,邮箱、电话号码、用户名等等。同时页面上会显示修改个人信息和修改密码的按钮,这时客户可以修改自己的登录密码以保障账号的安全性,防止被人窃取账号,通过UserController.java的updatePassword()实现,同时也可以根据自己的个人信息是否变动做出相应的修改,通过updateUserInfo()实现。
密码修改流程图如下所示。
图5-16密码修改流程图
密码修改关键代码如下所示。
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping(\”change_password\”)
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader(\”x-auth-token\”);
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get(\”o_password\”);
query.put(\”user_id\” ,String.valueOf(userId));
query.put(\”password\” ,service.encryption(o_password));
Query ret = service.count(query, service.readConfig(request));
List list = ret.getResultList();
Object s = list.get(0);
int count = Integer.parseInt(list.get(0).toString());
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put(\”password\”,service.encryption(data.get(\”password\”)));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,\”密码修改失败!\”);
}
系统测试
测试目的
在对该系统进行完详细设计和编码之后,就要对师生互伴答疑预约系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
测试过程
在软件的测试过程中,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业务逻辑上是否与真实的业务逻辑相对应,及时发现代码上或逻辑上的缺陷,以此来来完善系统,提高软件产品的质量,使软件具有良好的用户体验。
注册测试用例表如下所示。
表6-1注册测试用例
测试性能
新用户注册
用例目的
测试系统新用户个人信息注册功能的功能和安全性
前提条件
进入注册页面填写个人信息
输入条件
预期输出
实际情况
各项基本信息输入不完整
不允许注册,无法点击注册按钮
一致
填写已存在的用户名
系统显示出提示信息,要求重新填写
一致
两次密码输入不一致
系统显示出提示信息,要求重新填写
一致
填写的各项信息没有符合提示的长度和字符要求
系统显示出提示信息,要求重新填写
一致
胡乱填写电话号码
收不到验证码
一致
填写验证码与收到的不一致
系统显示提示信息告知用户验证码错误,不予注册
一致
登录测试用例表如下所示。
表6-2登录测试用例
测试性能
用户或操作员登录系统
用例目的
测试用户或操作员登录系统时功能是否正常
前提条件
进入用户登录页面或操作员登录页面
输入条件
预期输出
实际情况
各项信息不予填写,直接点击登陆按钮
不允许登录,提示填写账号相关信息
一致
填写错误的登录名或密码后点击登录系统
提示用户名或密码错误,要求重新填写进行登录
一致
填写与验证码信息不一致的信息
系统显示出提示信息,表明验证码错误,要求重新填写
一致
在线答疑测试用例表如下所示。
表6-3在线答疑测试用例
测试性能
用户进行在线答疑的操作
用例目的
测试用户进行在线答疑操作时,该功能是否正常
前提条件
用户进入课程详情页,该课程能够被提问
输入条件
预期输出
实际情况
对着某课程点击“提问”按钮
界面跳转至提问界面
一致
在提问界面,输入必填项,点击“提交”按钮
提示“提问成功”,并返回上一级界面
一致
在提问界面,填写提问表单的时候未输入完整,点击“提交”按钮
提示“提问失败”
一致
学生预约测试用例表如下所示。
表6-4学生预约测试用例
测试性能
预约相关信息管理功能
用例目的
测试系统操作者对预约相关信息进行管理的功能是否正常
前提条件
登录系统进入相关管理页面
输入条件
预期输出
实际情况
进入学生预约界面,点击“录入”按钮,填写所有必填项,点击提交
提示“录入成功”,并返回查询界面
一致
进入学生预约界面,点击“录入”按钮,未填写一个或者多个必填项,点击提交
提示“录入失败”,请填写必填项
一致
进入学生预约界面,选择要修改的一条数据,点击该条数据后面的“修改”按钮
节目跳转至修改界面
一致
在修改界面,修改可修改项后,点击“提交”按钮
提示“修改成功”,并返回查询界面
一致
进入学生预约界面,点击某条数据后面的删除按钮
提示“是否要删除该数据”,如果用户点击“确定”按钮,则成功删除该条数据,并提示“删除成功”,之后返回查询界面
一致
测试结果
经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起来才能更加的完美。
总结与展望
通过师生互伴答疑预约系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
参考文献
[1]徐佩.新时期计算机软件开发技术的应用及发展趋势[J].农家参谋,2019(08):167.
[2]张帅,崔婀娜,魏立波.互联网+健康在线服务平台的设计与实现[J].科技创新与应用,2019(10):91-92.
[3]谷利国,陈存田,张甲瑞.基于B/S模式的人事教育信息管理系统的分析与设计[J].电脑知识与技术,2019,15(10):58-59.
[4]胥新政,强毅.基于JSP的常用金属材料标准检索平台开发设计[J].制造业自动化,2019,41(03):41-43+69.
[5]王祖维,南淮耀,张英.“互联网+”视域下的高校学生公寓管理系统设计与实现——以沈阳师范大学为例[J].现代商贸工业,2019,40(08):187-188.
[6]廖明华,齐攀.学生职业能力测评管理系统的设计与实现[J].广东交通职业技术学院学报,2019,18(01):48-52.
[7]李冬冬,刘华明,毕学慧,王秀友.旧衣申领系统的设计与实现[J].电脑知识与技术,2019,15(08):47-50.
[8]李庆年.“互联网+”视域下的人才招聘管理系统设计与实现[J].国际公关,2019(03):164-165.
[9]刘婷,彭焕峰,邵淑婷.基于云平台的高校监考管理系统[J].电脑知识与技术,2019,15(07):91-92.
[10]赵丙秀.基于百度AI平台的Web人脸注册和登录系统的实现[J].电脑知识与技术,2019,15(07):114-115.
[11]戴昭颖,尹涛.钢铁行业成本预算系统开发应用实践[J].电子技术与软件工程,2019(04):29-30.
[12]曹灿,刘志刚.基于SSH和Layui的工程科学前沿与实践系统[J].工业控制计算机,2019,32(02):91-92+96.
[13]谢路.基于Web的考务管理系统设计与实现[J].福建电脑,2019,35(01):136-137.
[14]张继东.MySQL数据库基于JSP的访问技术[J/OL].电子技术与软件工程,2017,(15):169(2017-08-03).
[15]韩思凡.Web开发中的JSP与HTML的基础应用[J].科学技术创新,2020(14):71-72.
[16]NastitiAndini,DaehaKim,JongAhnChun.Operationalsoilmoisturemodelingusingamulti-stageapproachbasedonthegeneralizedcomplementaryprinciple[J].AgriculturalWaterManagement,2020,231.
[17]A.D.Titisari,D.Phillips,I.W.Warmada,Hartono,A.Idrus.40Ar/39ArgeochronologyofthePongkorlowsulfidationepithermalgoldmineralisation,WestJava,Indonesia[J].OreGeologyReviews,2020,119.
[18]FranciscoOrtin,OscarRodriguez-Prieto,NicolasPascual,MiguelGarcia.HeterogeneoustreestructureclassificationtolabelJavaprogrammersaccordingtotheirexpertiselevel[J].FutureGenerationComputerSystems,2020,105.
[19]SatyaKrismatama,IndahRiyantini,IwangGumilar,LantunParadhitaDewanti.SelectivityofFishingGearforScomberomorusguttatus(Bloch&Schneider,1801)CommoditiesinPangandaranFishingGround,WestJava[J].AsianJournalofFisheriesandAquaticResearch,2020.
[20]ZhongXiangfu,PlaAlbert,RaynerSimon.Jasmine:aJavapipelineforisomiRcharacterizationinmiRNA-Seqdata[J].Bioinformatics,2020,36(6).
致谢
伴随着设计的完成,大学生涯也随之即将结束。大学期间是我最珍惜的时光,大学时光中学会了很多,也成长了很多,这段时光中每一段回忆都刻在脑海中。感谢一起学习,一起成长同学们,和成长过程悉心教导的老师们,非常感激有你们的陪伴。
首先感谢我的指导老师,设计的完成离不开老师的一系列指导。在毕业设计的完成过程中,老师给出了很多中肯的建议,正是由于老师一丝不苟的工作态度,我的设计才能顺利的完成。
最后,感谢在大学生涯中每一位教导我的老师,是你们教给了我丰富的知识,更教会了我遇到问题时,如何去应对并解决。谢谢你们的帮助与支持。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
#以上关于springboot师生互伴答疑预约系统的相关内容来源网络仅供参考,相关信息请以官方公告为准!
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91782.html