高校在线答疑系统的设计与实现.docx
- 文档编号:7292064
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:51
- 大小:1.04MB
高校在线答疑系统的设计与实现.docx
《高校在线答疑系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《高校在线答疑系统的设计与实现.docx(51页珍藏版)》请在冰豆网上搜索。
高校在线答疑系统的设计与实现
高校在线答疑系统的设计与实现
摘要
随着高校内学生人数的日益增长,教师和上课地点的不断变动使得学生和老师之间的交流受时间和空间限制,导致师生间的答疑工作难以开展。
为此开发一个高校在线答疑系统大有裨益。
本系统是基于B/S架构,使用JSP、SERVLET、JAVASCRIPT作为编程语言,结合MYSQL数据库和JavaWeb开发的三层架构来实现学生模块、教师模块和管理员模块功能。
学生模块主要功能包括学生对某位老师或所有老师提问、下载学习资料、查看并修改信息及根据提问数对学生进行排名。
教师模块主要功能包括回答问题并获得积分、上传资料、按积分对教师进行排名。
管理员模块主要功能包括对问题、学院、专业和用户的管理操作。
其中三层架构将整个系统划分为界面层、业务逻辑层和数据访问层,分层目的在于实现“高内聚低耦合”思想。
目前,大部分高校的答疑模块都是内嵌在网络教学系统中,独立存在的不多。
本系统主要作用于学生和教师之间的答疑互动,其特点有回答质量高,利于用户管理所有提问或回答信息。
关键词:
答疑系统;B/S架构;三层架构
DESIGNANDIMPLEMENTATIONOFONLINEQUESTIONANSWERINGSYSTEMINUNIVERSITIES
ABSTRACT
Withtheincreasingnumberofstudentsandcontinuouschangeofteachets,coursesandclassroom,thecommunicationbetweenstudentsandteachersbytimeandspaceconstraints,whichresultinginaQ&Abetweenteachersandstudentsisdifficulttocarryout.Soitisusefultodevelopanonlinequestionansweringsysteminuniversities.
Thecompletionofstudentmudule,teachermoduleandadministratormoduleisbasedonJSP,SERVLET,JAVASCRIPTprogramminglanguageandMYSQLandthreetierarchitectureofJavaWeb.ThemainfunctionofStudentmoduleincludesastudentaskquestionstooneparticularteacherorallteachers,downloadlearningfiles,viewandmodifythebaseinformation,rankstudentaccordingtotheirnumberofquestions.Themainfunctionofteachermoduleincludesanswerquestionsandgetpoints,uploadfiles,rankteacheraccordingtothetheirpoints.Administratormodulemainfunctionsincludeproblemmanagement,collegemanagement,professionalmanagementandusermanagement.Thesystemisdividedintointerfacelayer,businesslogiclayeranddataaccesslayer,thepurposeistodeepenthe"highcohesionandlowcoupling"idea.
Atpresent,mostofthequestionandanswermoduleisembeddedinthenetworkteachingsystem,therearenotmanyindependentsystem.Theaimofthissystemistointeractwithstudentsandteachers.Itsfeaturesarehighquality,tohelpusersmanageallquestionsoranswers.
Keywords:
questionansweringsystem;B/Sstructure;Threetierarchitecture
1绪论
高校学生人数的增加,教师、课程和教师的不断变动,导致教师和学生交流越来越少,师生间的答疑工作难以开展。
为此开发一个高校在线答疑系统实用性较大。
随着互联网技术的广泛应用,教学活动在网上进行已越发流行。
在线答疑系统便是借助网络来实行教学活动的工具,主要表现在教师与学生之间的问答互动。
1.1研究背景及意义
现如今,人们获知信息和交流的方式随着互联网的发展而不断进步。
尤其是Web2.0技术的推广,使得单向传递的信息交流模式逐渐倾向于以用户为中心、注重社会协作的网络交流模式[1]。
使用者在内容发布过程中在实现与服务器交互的同时,也实现了同一网站各使用者之间的交互,所以web2.0比web1.0越发强调互动性。
在本系统中,学生可以根据自己的时间安排自己的提问计划,不受时间地点限制,且可以向已在网站注册的任何导师提问,下载资源。
对老师也一样,不一定要安排某个时间某间教室进行答疑,当老师回答了问题后,系统会自动邮件提醒学生登录查看。
实现传统教育无法做到的"个性化教育"。
同时,系统有积分激励政策。
老师每回答一个问题便可获得2个积分。
同时还会根据积分对教师进行排名,对老师来说,积分越高则说明越关注学生的学习动态,与学生的互动越密切。
这样一来,一方面学生的问题得到解决,提高了学习效率,另一方面,有利于加深师生感情。
本毕业设计目的是设计实现一个多学科、通用、模块化的网上学习平台,以便提高学生学习兴趣,有利于当今高校教学模式和教学方法的改革。
1.2研究现状及发展趋势
目前,实现在线答疑系统的结构主要有
和
。
由于
结构的可扩展性、可靠性和可维护性不足,很难满足当今网络技术迅猛发展的需要[2]。
而
是对
的一种改进,由于大部分事务都在服务器端完成的特点极大地削减了客户端的负载,使得系统升级与维护的成本和工作量得到降低。
尤其一些跨平台语言出现之后,如JAVA等,B/S结构变得更加便捷和高效。
在答疑系统中,有两个关键点需要注意。
首先是在连续不断的问答中怎么获得答案,其次是答疑系统与用户之间互动的实现方法[3]。
动态WEB应用的实现手段非常之多,较为常见的有PHP、JAVASCRIPT、ASP、JAVASERVLET/JSP等。
因为JAVA语言面向对象、可移植性和安全可靠等优点JSP全部具备,故本系统采用JAVASERVLET和JSP来完成。
我国使用范围广且与本系统功能相近的有"XX知道"和"新浪爱问知识人"。
"XX知道"是一个集搜索与互动为一体的问答分享平台,使用者发布待解答问题,通过积分奖励机制鼓励其他用户共同出谋划策。
在此类合作方式下,使提问者和回答者能达到双赢状态。
同时,由于“XX知道”是一个共享平台,给出的回答同时会作为搜索结果供其他有相近疑问的使用者参考。
通过长期积累和组织回答,使得系统知识库得到不断更新。
"XX知道"具有反馈迅速、内容丰富等特点,同时充分结合了机器搜索和人力搜索的优势,改变了传统模式的网络信息资源的利用方式[4]。
"新浪爱问知识人"问答平台是一个旨在为用户解答的互动网络产品。
最先在我国推行这种互动问答模式的便是新浪,通过此系统,使用者可以通过发布问题来解决工作生活中的问题。
如果积累的知识库中已经有相同或类似的问题答案,就在提问页面中同步提示。
"新浪爱问知识人"提供了智能自然语言搜索技术,网友无须再纠结于关键词或分类,直接输入问题标题,智能引擎便能将其分类到相应目录下,实现操作智能化。
“新浪爱问”除了传统算法搜索网页功能强大之外,还以一个特有的互动问答平台完美地填补了传统算法在系统上互动性和界面性的缺陷[5]。
在近几年中,问答系统历经了爆发式飙升。
作为国内影响力最大的平台,截止到2016年5月12日,"XX知道"已累计解决413283081个问题,同时新浪爱问知识人已帮助40000000多名用户。
此外这些问答系统也逐渐产生更多的垂直领域,已普及到医疗、金融、通信等诸多范畴。
本系统主要功能与上述两大平台类似,但实现逻辑不同。
在范围上,"XX知道"和"新浪爱问知识人"是全民参与式平台,任何人可以在该平台上注册、提出问题和解答问题。
而本系统是针对高校学生与老师间的答疑,用户只有本校的师生,且只能由管理员进行添加。
在质量上,因为前者是任何人可提问并回答,虽然有不少认证的专家用户,但也不乏不经思索条理不清的用户,随意性较强,导致回答质量良莠不齐。
而本系统的回答者是问题所属专业的老师,学生之间不能互相回答只能查看问题详情,这样一来回答的质量得以保障。
在线答疑系统虽然得到了普遍使用,但真正既实用又智能的并不多。
绝大多数问答系统都尚未建立在人工智能等前沿技术基础上,还停留在传统的人工互动模式中。
当语义分析技术、自然语言处理技术和数据挖掘等先进技术取得更大突破,在线答疑系统的用户体验将会更加完美,故今后的发展趋势如下。
(1)智能化
未来用户提出问题应该更容易被系统所理解,通过算法去查找系统知识库更快更准地找到与问题相关的答案或资源。
因为在线答疑系统能通过更友好的接口和逻辑推理来实现[6]。
同时系统的知识库能自动更新和学习,并尽可能以简单明了的方式去展示问题与答案。
尽管在未来提问数量会越来越多,但是大部分在常见问题中可获得答案,系统支持中心的负担可以通过系统自动回答问题逐渐减少[7]。
(2)多媒体性
当前的答疑基本都是以文字和图片为媒介,随着多媒体信息的大量运用,网路带宽的增大及网络费用的降低,未来答疑系统的提问和答疑方式应该是音频、文字、图片和动画并存。
将以更直观的手段呈现问题和答案,让用户在使用答疑系统时更便利、更易上手。
1.3论文主要内容
本论文分为六个部分,从背景意义到系统具体实现及测试,囊括系统开发的各个阶段。
第一部分主要对系统的应用背景及其意义、研究现状以及发展趋势进行阐述说明。
通过高校师生间答疑现状分析来证明开发此系统的必要性。
同时和其他系统进行对比,说明本系统特点所在。
系统模块及主要功能、开发环境和使用技术的在第二部分做了详细介绍。
第三部分介绍系统的用户及功能的需求分析、系统架构设计、各个模块设计和数据库设计。
第四部分详细介绍各个模块及功能的具体实现方法,其中三类用户共有的功能放在通用功能小节里介绍。
第五部分对系统的各个功能进行详细测试并给出截图和测试结果,对主要功能进行系统测试用例设计。
最后一部分就是对本次系统的优缺点进行总结以及对系统未来的展望。
2系统及相关技术概述
综合前面对相关领域的分析以及现在高校内答疑现状,对整个设计方向有了大致认识。
而接下来是对相关实现技术基础的讨论。
本系统设计的技术或编程语言有JAVA、JSP、SERVLET和JAVASCRIPT,后台使用了MYSQL数据库,具体介绍如下。
2.1系统概述
本次要设计的是一个高校在线答疑系统,其主要是针对学生和教师之间的互动。
系统包括三个模块,分别是学生模块、教师模块和管理员模块。
学生模块主要包括提出提问、查看问题回答情况、下载资料、采纳老师的回答以及根据提问数对学生进行排名等功能。
其中提问分为针对某位老师提问和对所有老师提问两种。
当未采纳答案时,教师可继续回答,答案被采纳后,问题完结,无法继续解答。
教师模块主要包括回答问题、查看所有回答情况、上传资料和根据积分对教师进行排名。
管理员模块主要包括对问题、学院专业、学生和教师的管理,主要功能即添加、删除、修改、查询。
三个模块通用功能包含登录、注销、找回密码和修改基本信息,其中修改信息只能修改登录密码以及邮箱,姓名和专业为学生实名信息,只有管理员能修改。
2.2开发环境
本系统使用的编程语言技术为JSP、SERVLET和JAVASCRIPT。
开发工具为MyEclipse10.0,使用免费开源的Tomcat7.0作为Web应用服务器,后台数据库为MYSQL5.6,运行环境为Windows7操作系统及IE6以上浏览器。
2.3相关技术
2.3.1MYSQL数据库介绍
MYSQL是一个源码开放的、被广泛使用于中小型企业的关系型数据库管理系统。
MYSQL数据库具有运行速度快、轻量级、稳定性优越和简单易学等特点。
综合这些特点,本系统采用MYSQL来存储后台数据。
本系统使用了数据库连接池技术,因为当系统应用变复杂导致连接数很大时,系统资源会被频繁的建立和关闭连接所占用。
这一特点严重影响到Web服务的响应速度,达到极限时可能会引起服务器崩瘫痪。
国内大学一般人数都成千上万,当系统逐渐完善成为学生老师常使用的系统时,必须要考虑到数据库的复用,以此来降低系统开销。
预先建立一个“缓冲池”是数据库连接池的基本原理,当数据库连接需要建立时,从预先放入的数据库连接中取,使用完成后在一定时间内无须立即释放。
为防止无限制的进行数据库连接和请求,可以通过设置最多并发连接数和最大连接数来解决[8]。
2.3.2JSP语言介绍
JSP是一个创建显示动态网页的且运行在服务器端的技术标准。
JSP脚本的处理方式与常用的不同,是先转换再编译最后执行的方式。
JSP的全新处理方式使得运行效率得到了大大提高[9]。
JSP是建立在JAVASERVLET基础之上,因有诸多功能和优点使得其在动态网页的建设中崭露头角。
其优点包括
(1)JSP的平台适用性如JAVA一样,具有健壮性、安全性、平台无关性等特点。
(2)JSP可将内容的生成和显示分离开来。
(3)JSP非常关注可重用性,其组件都是跨平台可重用的。
(4)JSP连接数据库能力如JAVA一样,能访问Oracle、MSSQLServer、MYSQL等数据库。
这些特点使得JSP技术更能满足开发者和用户需求而成为web访问的一种主要技术。
2.3.2SERVLET技术介绍
SERVLET是通过交互式查看和修改数据来生成动态页面且运行在服务端的程序。
SERVLET通过处理前台传过来的HTTP请求并返回对应响应来完成其功能。
其工作模式为当服务器收到前台传来的请求时,服务器将请求发送给SERVLET。
SERVLET处理完成后生成响应内容并将其传送给服务器,服务器收到后将响应传递给客户端。
与传统的通用网关接口技术相比,SERVLET执行效率更高、可移植性强等鲜明优点。
SERVLET的生命周期从装入Web服务器便已开始,在终止或者重新装入SERVLET时结束[10]。
它的生命周期包括:
(1)装入SERVLET。
2)创建一个SERVLET实例。
(3)调用SERVLET的init方法。
(4)服务,容器在收到SERVLET请求时,直接调用service()方法。
service()被拆分为doGet()、doPost()、doDelete()、doPut()以及doTrace()。
(5)销毁实例。
在几个阶段中,对外提供服务阶段是至关重要的,service()方法更是重中之重。
SERVLET为客户端提供服务的过程如图2.1所示。
图2.1SERVLET提供服务过程
2.3.4JAVASCRIPT脚本语言介绍
JAVASCRIPT是一种常用来改进网页设计、检测浏览器和验证表单等各种应用的Web开发脚本语言。
通常JAVASCRIPT脚本和HTML代码是放在同一页面来配合实现其功能的。
其特点有
(1)可以直接在HTML页面里写JAVASCRIPT脚本,但为了实现结构和行为的分离最好是写成独立的JS。
(2)它是一种解释性语言,运行前不需要编译。
(3)支持绝大多数浏览器,可运行在多种平台下。
(4)主要用来向HTML页面添加交互行为。
3系统的总体设计
这一章主要论述系统的总体设计内容,主要包括对系统的三类用户及其功能的需求分析、系统总体框架概述、各个模块的功能设计以及数据库设计,具体内容如下。
3.1需求分析
在有网络的情况下,本系统允许提问者随时随地登录系统进行回答或查看等操作。
教师可解答只针对自己提问的问题,也可解答对所有老师提问的问题。
学生通过采纳答案来结束问题。
管理员可以对问题、学院专业和用户信息进行维护管理。
系统的三类用户及各个功能介绍如下所示。
本系统主要包括以下三类用户。
(1)学生用户即提问者,有以下四种种权限
1通过系统提出问题,并为问题选择相应分类。
提问分为对某位老师提问和对所有老师提问,如果是针对某位老师提问,其他老师看不到相应的问题信息。
2查看自己提出的所有问题及解答情况。
3采纳答案,学生选择最能解决问题的回答来结束问题。
4下载资料,学生可以从系统下载学习资料。
(2)教师用户即回答者,有以下三种权限
1通过系统回答问题,问题包括所有老师可答和只对自己提问的问题。
回答提交成功后系统会自动发送邮件给学生,让学生登录查看解答情况。
2查看自己解答过的所有问题详情。
3上传资料供学生下载学习。
(3)管理员用户,分为超级管理员和普通管理员两类。
普通管理员除了不具有添加和删除管理员功能之外,其他权限一致,具体如下。
1添加:
添加三类用户以及学院和专业信息。
2删除:
删除三类用户、学院和专业信息及问题内容。
为使数据更加安全,本系统的删除功能不是物理删除而是逻辑删除,数据库中的每个表都有一个字段名isDel,当isDel为1时表示已删除。
3修改:
修改学生、教师和学院信息。
4查看:
查看所有用户、学院专业和问题信息。
(4)三类用户都有其通用功能,通用功能设计如下。
1登录:
用户登录成功的充要条件为选择与之匹配的登录类型,输入正确的用户名、密码和验证码。
2注销:
当用户注销后,再进入首页查看提问情况时,只能是游客身份。
3找回密码:
当学生和教师用户忘记密码时,可通过接收系统发送的带有密码的邮件来找回密码。
4修改信息:
学生和教师用户只能修改自身基本信息如密码、邮箱。
其他信息如姓名、专业等实名信息,只有管理员能修改。
3.2系统架构
本系统分为三大模块,分别是学生模块、教师模块和管理员模块,框图如图3.1所示。
图3.1系统架构框图
3.3模块设计
(1)学生模块
学生模块主要功能包括学生提出问题、查看自己的所有提问情况、对教师提供的答案进行采纳来完结问题、下载教师上传的学习资料。
其中提问包括两种情况:
对某位老师提问,这种情况只有该老师可以回答,其他老师看不到该问题;另一种为对所有老师提问,所有老师都可见可回答。
其中提问情况包括问题的回答信息,以及对已解决和未解决的问题进行分类。
学生模块功能图如图3.2所示。
图3.2学生模块功能图
(2)教师模块
教师模块主要功能包括解答问题、查看自己参与的问题、上传资料、对教师进行排名。
其中解答问题逻辑处理为:
回答了问题后可获得系统固定的2个积分,当答案被采纳后,其他教师不能再进行解答。
教师模块功能框图如图3.3所示。
图3.3教师模块功能图
(3)管理员模块
管理员模块主要功能包括对问题、学院和专业以及用户的管理。
其中问题管理包括对问题进行查看、删除和搜索。
学院和专业管理为对学院和专业的增加、删除和修改功能。
用户管理包括对三类用户的删除、添加、修改和检索功能。
管理员模块功能图如图3.4所示。
图3.4管理员模块功能图
(4)通用功能
公共模块功能含义为其他三个模块都共有的功能,主要包括登录、注销、密码找回和修改自身基本信息。
其中登录功能设置了验证码来增加系统安全。
注销功能的实现即将用户设置为null,即变为游客身份无法进行提问。
当用户不记得密码无法登录时,可通过密码找回功能来重新得到保存在数据库中的密码。
系统会发送一封密码找回邮件至用户邮箱,通过邮件中的密码即可重新登录。
修改信息包括用户修改自身的邮箱和密码,姓名和专业等信息是用户的固有信息,只有管理员可修改。
通用功能图如图3.5所示。
图3.5通用功能图
3.4数据库设计
系统采用的是开源免费的MYSQL5.6数据库,管理工具为Navicat,数据库中各个表格设计如下。
(1)学生用户表aq_student的设计
学生用户表结构如表3-1所示,用于保存学生的基本信息,其中学生邮箱是用来找回密码和接收系统发送的查看回答邮件的。
在首页根据学生提问数进行排名。
表3-1学生表结构
字段
字段名
数据类型
是否为空
默认值
备注
studentNo
学生编号
int
否
主键
professionNo
专业编号
int
外键
studentName
学生姓名
Varchar(20)
否
studentPwd
学生密码
Varchar(20)
否
123
studentEmail
学生邮箱
Varchar(50)
questionCount
学生提问数
int
否
0
studentPic
头像路径
Varchar(30)
isDel
是否删除
int
否
默认0
0表示未删
1表示已删
(2)教师用户表aq_teacher的设计
教师用户表结构如表3-2所示,用户保存教师的基本信息,其中教师邮箱用于找回密码功能,答题积分会随着回答问题的数量不断变化。
在系统首页会根据积分对教师进行排名。
表3-2教师表结构
字段
字段名
数据类型
是否为空
默认值
备注
teacherNo
教师编号
int
否
主键
professionNo
专业编号
int
外键
teacherName
教师名字
Varchar(20)
否
teacherPwd
教师密码
Varchar(20)
否
123
teacherGrade
教师级别
Varchar(10)
teacherEmail
教师邮箱
varchar(50)
否
用来找回密码
teacherDescription
教师描述
Varchar(300)
points
答题积分
int
否
默认0
每回答一个问题获得2积分
status
状态
int
否
teacherPic
头像路径
Varchar(30)
isDel
是否删除
int
否
默认0
0表示未删
1表示已删
(3)管理员用户表aq_user的设计
管理员用户表结构如表3-3所示,其中管理员类型分为两类,普通管理员不具有删除和添加管理员的权限,其他功能一样。
表3-3管理员表结构
字段
字段名
数据类型
是否为空
默认值
备注
userNo
管理员编号
int
否
主键
userName
管理员名字
Varchar(20)
否
userPwd
管理员密码
Varchar(20)
否
userType
管理员类型
int
否
1表示超级管理员
0表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高校 在线 答疑 系统 设计 实现