APP下载

基于WEB的智能答疑系统的研究与构建

2015-12-26肖坤峨虞泉

软件 2015年6期

肖坤峨+虞泉

摘要:本系统采用目前主流的WEB技术ASP.NET2.O构建,实现了高校师生问题交流的信息化和智能化,帮助学生自动从系统中找到常见问题答案,从而提高了学生的学习效率和教师的教学质量。系统中采用了VS2012.NET和SQLSERVER数据库作为开发平台,较好地实现了该答疑系统的设计与实现。

关键词:ASP.NET;自动答疑;SQLSERVER

中图分类号:TP311.1

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.06.007

本文著录格式:肖坤峨,虞泉,基于WEB的智能答疑系统的研究与构建叮]软件,2015,36(6):31-36

ResearchandConstructionoflntelligentQuestionAnsweringSystemBasedonWeb

XIAOKun-e,YUQuan[Abstract]:WiththecurrentmainstreamwebtechnologyASP.Net2.0constructions,thesystemrealizestheinformatizationandintellectualizationofcollegeteachersandstudentsexchangesandhelpsstudentsautomaticallyfindanswerstofrequently-askedquestionsfromthesystem,soastoimprovethestudents'learningefficiencyandteachers'teachingquality.ThesystemutilizesVS2012.NETandSERVERSQLdatabaseastheplatformtorealizethedesignandimplementationofthequestionansweringsystem.

[Keywords]:ASP.NET;Automaticquestionanswering;SQLSERVER

0引言

在教育信息化不断深入的今天,我国各类学校都开展了信息化建设,高等院校的教学模式发生了巨大的变化。答疑是教学中的一个重要环节,通过答疑学生可以弄清楚课堂上没有弄清的问题,教师也可以通过答疑,了解学生对课程的掌握和适应情况[2,3],并利用这些信息修正课堂教学,但随着学校学生人数的增加,教师的答疑工作量会变得异常的繁重,特别是一些专业核心课,如C/C++语言,数据结构等课程,为了充分发挥网络技术,特别是移动互联网技术的优势,提高教育教学质量,提高工作效率,学校信息化平台的建设就变得异常重要,因此本文提出采用ASP.NET(C#)和SQLSERVER数据库设计和开发一个能让学生网上提出问题,系统白动实现答疑功能的智能答疑系统。

1ASP.NET技术简介[1]

ASP.NET是.NETFramework的一部分,是一种动态网页设计技术,2005年已推出ASP.NET2.0版,用于在服务器上开发功能强大的Web应用程序,提供了丰富的控件,大幅度减少代码量,程序员只需要拖动控件,然后根据事件处理控件的属性即可,采用在服务器上编译后运行,运行效率较高。代码层次清晰,前台页面代码和中间层逻辑处理代码分离,代码可读性强。在.NET架构中的公共语言运行库组件提供了对多种语言的支持,如C#、J#、C++、VB.NET等,C#和VB.NET是目前ASP.NET技术中的主流编程语言,C#是专门为.NET应用而开发出的语言,他具有语法简洁,面向对象,面向Web,功能强大,灵活性与兼容性,完整的安全性与错误处理等特点,因此本系统采用C#来进行WEB页的开发,VS2012作为开发环境,嵌套C#语言的ASP.NE工作为编程环境,soLServer2008是数据库环境。

2系统分析与设计

2.1系统分析本系统基于B/S结构,面向管理员、教师、学生三类对象答疑解惑系统平台;从学生的学,教师的教,以及管理员的管,三个维度构筑了数字化测评系统架构。在研究本系统时,首先确定需要做什么,进行需求分析,确定系统应该具备什么功能。

在研究需求时可以把系统划分为以下三个大模块,即管理员模块,教师模块和学生模块。如图1所示:

2.1.1教师模块

系统公告:查看由管理员发布的公告信息。

管理问答库:完成问题的查询、维护、添加等操作。

热点问题:是教师了解学生关注问题的途径,并实现对热点问题的管理。

添加问题:教师可以根据所学科目内容白行添加问题。

答疑管理:回答学生提问的问题,删除和修改问题等。

学生管理:教师可以对添加、修改和删除学生的信息。

修改个人信息:教师可以修改自己的一些信息,如密码等。

2.1.2学生模块

系统公告:查看由管理员发布的公告信息。

发布问题:学生向教师提问问题,包括问题类型,问题标题,问题内容,并可附带附件。

问题列表:提问的问题,经教师回答之后可以从问题列表中查看。

热点问题:经常出现的问题,可以实现从问题列表中自动查询回复,实现自动答疑。

修改个人信息:学生可以修改自己的一些信息,如班级、专业、密码等。

2.1.3管理员模块

公告管理:公告信息的发布、修改、删除等操作。

学生信息管理:学生信息的添加、修改、删除等操作。

教师信息管理:教师信息的添加、修改、删除等操作。

管理员信息管理:管理员信息的添加、修改、删除等操作。

2.2数据库设计

本系统采用的是MVC三层结构[6],前台作页面设计和布局,中间层作业务逻辑处理,后台使用数据库存取数据,因此数据库设计是设计本系统的一个重要环节。根据数据库设计的方法和步骤,首先第一步进行数据的收集与分析,然后在此基础上建立一种抽象的数据模型即E-R图,最后在把E-R图转换为相应的关系模式。由于本系统所涉及的实体较多,故在此不再呈现实体间的联系图,直接给出由E-R图转换得到的关系模式,得到以下几个数据库表:

Admin表(姓名,密码,是否在线)

classlnfo表(班级名称,专业代码,专业名称)

zhuanyelnfo表(专业代码,专业名称)

documentlnfo表(标题,内容,文件路径,文件类型,类型id,添加时间)

documentType表(类型id,类型名称)

news表(标题,内容,添加时间)

question表(问题id,主题,添加作者,添加时间,内容,是否回复)

answer表(回复内容,回复作者,问题id,回复时间,回复标题)

teacher表(姓名,性别,简介,密码)

student表(姓名,性别,班级,专业,简介,密码)

由于本系统采用Sqlserver2008作为后台数据库,故表中各字段的类型与该数据库的类型一致。实现数据库连接时须在web.config文件中添加如下代码段:

name="sqlcon"

connectionString="Data

Source-,:Initial

Catalog-ZhiNengDY:Integrated

Security-True:user

id=sa;password=123456"providerName="System.Data.SqlClient"/>

3系统实现

3.1母版页的设计与实现

在ASP.NET2.0中,母版页与页面模板一样,使用母版页创建统一的用户界面与样式,可以将WEB应用程序中的静态文本,如网站标志、广告条、导航条、版权声明、HTML元素和服务器控件的预定义布局等内容整合到母版页中[1,4]。后台母版页的设计如图2所示:

ContentPlaceHolder为占位符控件,可在内容页面中替换成设计者需要的内容。在本系统中针对管理员、教师、学生三个模块采用了三个不同的masterpage.master.

3.2用户登录功能的关键技术

根据登录类型为管理员还是学生,导入不同的系统界面。用户登录页面index.aspx.cs中的关键代码如下:

protectedvoidibtnLogin_Click(objectsender,ImageClickEventArgse)

{if(DropDownListl.SelectedValue="学生")

{chkUser():)

if

(DropDownListl.SelectedValue=="管理员"){

ChkAdmin():)

el.se

{ChkT():

))

privatevoidChkAdmin()

{if(UserName.Text二二""&&PassWord.Text=""∥∥)

{Alert.AlertAndRedirect("没有输入账号和密码!","Login.aspx");)

el.se

{dr=data.GetDataReader("select*from

[Admin]whereName-'"+UserName.Text.Trim()+"andPassword="+PassWord.Text.Trim()+"'"):

if(dr.Read()){

Session["User"]=dr["Name"].ToString():

Session["Userld"]二dr["id"].ToString():

Re.sponse.Redirect("Admin/Default.aspx"):)

else

{Alert.AlertAndRedirect(”账号或者密码不对请重新登陆!","Login.aspx"):))

privatevoidChkT(){)方法和privatevoidchkUser(){)的方法类似。实现界面如图3所示:

3.3学生模块的实现

(1)问题发布功能的关键技术

在addTopic.aspx页面中管理员可以添加新的问题、发布问题,关键代码在addTopic.aspx.cs中实现:

publicpartialclassAddTopic:System.Web.UI.Page

{

protectedvoidPage_Load(object.sender,EventArgse)

{if(!IsPostBack){

if(Session["Userld"]==null){

Alert.AlertAndRedirect("对不起您还没有登录","Login.a.spx");)))protectedvoidButtonl_Click(objectsender,EventArgse)

{SqlHelperdata-newSqlHelper():

data.RunSql("insertintoTopic(Topic,AddUser,Contents)values("+tb_title.Text+","+Session["User"].ToString()+","+ArticleContent.Value+")"):"

Alertjs-newAlert():

js.Alertjs("发布成功")i

Response.Redirect("LyList.aspx"):

protectedvoidButton2_Click(objectsender,EventArgse)

{

Response.Redirect("SearchList.aspx?key-"+tb_title.Text):

(2)问题列表的管理

在newList.aspx页面可以查询已经提问的问题及热点问题等,点击查看按钮实现问题答案的查看。关键代码在newList.aspx.cs中实现:

publicpartialclassNewList:System.Web.UI.Page

{

SqlHelperdata=newSqlHelper():

Alertalert=newAlert():

protectedvoidPage_Load(objectsender,EventArgse)

{if(!IsPostBack)

{getinfo():

))

privatevoidgetinfo()

{try{

dlinfo.DataSource-GetCodeBy(0):

dlinfo.DataBind():

)catch{}{

protectedvoiddlinfo_PageIndexChanging(objectsender,GridViewPageEventArgse)

{

dlinfo.Pagelndex=e.NewPagelndex;

getinfo();}

protectedvoiddlinfo_RowDataBound(objectsender,GridViewRowEventArgse)

{

if(e.Row.RowType==DataControlRowType.DataRow)//鼠标移动变色

//当鼠标放上去的时候先保存当前行的背景颜色并给附一颜色

{e.Row.Attributes.Add("onmouseover","currentcolor-this.style.backgroundColor:this.style.backgroundColor='#f6f6f6',this.style.fontWeight=”:");//当鼠标离开的时候将背景颜色还原的以前的颜色

e.Row.Attributes.Add("onmouseout","this.style.backgroundColor-currentcolor,this.style.fontWeight-':"):

}

if(e.Row.RowType==DataControlRowType.DataRow)

//单击行改变行背景颜色

{e.Row.Attributes.Add("onclick",

"this.style.backgroundColor='#f6f6f6':this.style.color-'buttontext':this..style.cursor-'default';"):

}}

3.4教师模块的实现

在ShowTopic.aspx页面中实现对问题的回复和管理,关键代码在ShowTopic.aspx.cs中实现:

privatevoidBinderTopic()

{intid二Int16.Parse(Request.QueryString["id"].ToString()):

SqlDataReaderdr;

dr-data.GetDataReader("select*fromTopicwhereid:"+id):

dr.Read():

Labell.Text-dr["Topic"].ToString():

Labe12.Text-dr["Addtime"].ToString():

Labe13.Text-dr["Contents"].ToString():

Label14.Text-dr["AddUser"].ToString():

protectedvoidImageButtonl_Click(objectsender,ImageClickEventArgse)

{intid=Int16.Parse(Request.QueryString["id"].ToString()):

data.RunSql("insertintoReplay(Replay,ReplayUser,Topicld)values("+ArticleContent.Value+","+Se.ssion["User"].ToString()+","+id+")"

data.RunSql("updateTopicsetisReplay-'l'whereid="+id):

Alert.AlertAndRedirect("回复成功!","ShowTopic.aspx?id="+id):

BinderTopic():

BinderReplay():

}}}3.5管理员模块的实现

在管理员模块中实现对教师信息的管理、学生信息的管理、管理员信息的管理及公告信息的发布,其中公告信息的发布在AddNews.aspx文件中实现,关键代码在AddNews.aspx.cs中。

usingSystem;

u.singSy.stem.Data;

u.singSy.stem.Configuration:

usingSystem.Collections:

usingSystem.Web:

usingSystem.Web.Security;

u.singSy.stem.Web.UI;

usingSystem.Web.UI.WebControls:

u.singSy.stem.Web.UI.WebControl.s.WebParts:

usingSystem.Web.UI.HtmlControls:

publicpartialclassAdmin_AddNews:System.Web.UI.Page

{

SqlHelperdata-newSqlHelper():

protectedvoidPage_Load(objectsender,EventArg.se)

{

protectedvoidLinkButtonl_Click(objectsender,EventArgse)

{

data.RunSql("n.sert

into

New.s(Name,Content.s)value.s("+txtname.Text+","+txtcontents.Value+,,)"):

Alert.AlertAndRedirect("添加成功","NewsManger.aspx"):

}}

4结束语

本系统采用了目前B/S模式系统[5,7]开发的主流技术ASP.NET2.O,实现了高校学学生答疑功能的信息化和智能化,改变了传统的面对面、BBS、QQ、论坛等答疑的方式,该系统问题库的管理,答疑的管理,学生信息、教师信息的管理等,从很大程度上减轻了科任教师的负担,提高了工作效率和教学质量,具有一定的实用价值。

参考文献

[1]秦学礼,张峰.Web应用程序设计-ASP.NET(第二版)[M].北京:清华大学出版社,2010.

[2]任红霞,梁朋举.智能答疑系统在电大开放教育中的应用研究.濮阳职业技术学院学报[J],2012,25(3):155-156.

[3]王燕,沈锐.网络教学平台中智能答疑系统的模型构建.软件导刊[J].2012,11(5):75-77.

[4]肖坤峨.基于ASP.NET的学生信息管理系统的设计与实现.电脑编程技巧与维护[J].2014,310(16):33-35.

[5]余翠兰.基于ASP.NET的学生住宿管理系统的设计与实现[J].软件,2014,35(4):160-164.

[6]程宁.基于NETMVC架构的网上考试系统的设计与研究[J].软件,2013,34(6):20-22.

[7]冯海平.开放式上网学习管理系统研究与实现[J].软件,2012,33(11):99-100.