肖坤峨+虞泉
摘要:本系统采用目前主流的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.