肖坤峨+虞泉
摘要:本系統(tǒng)采用目前主流的WEB技術(shù)ASP.NET2.O構(gòu)建,實現(xiàn)了高校師生問題交流的信息化和智能化,幫助學(xué)生自動從系統(tǒng)中找到常見問題答案,從而提高了學(xué)生的學(xué)習(xí)效率和教師的教學(xué)質(zhì)量。系統(tǒng)中采用了VS2012.NET和SQLSERVER數(shù)據(jù)庫作為開發(fā)平臺,較好地實現(xiàn)了該答疑系統(tǒng)的設(shè)計與實現(xiàn)。
關(guān)鍵詞:ASP.NET;自動答疑;SQLSERVER
中圖分類號:TP311.1
文獻(xiàn)標(biāo)識碼:A
DOI:10.3969/j.issn.1003-6970.2015.06.007
本文著錄格式:肖坤峨,虞泉,基于WEB的智能答疑系統(tǒng)的研究與構(gòu)建叮]軟件,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引言
在教育信息化不斷深入的今天,我國各類學(xué)校都開展了信息化建設(shè),高等院校的教學(xué)模式發(fā)生了巨大的變化。答疑是教學(xué)中的一個重要環(huán)節(jié),通過答疑學(xué)生可以弄清楚課堂上沒有弄清的問題,教師也可以通過答疑,了解學(xué)生對課程的掌握和適應(yīng)情況[2,3],并利用這些信息修正課堂教學(xué),但隨著學(xué)校學(xué)生人數(shù)的增加,教師的答疑工作量會變得異常的繁重,特別是一些專業(yè)核心課,如C/C++語言,數(shù)據(jù)結(jié)構(gòu)等課程,為了充分發(fā)揮網(wǎng)絡(luò)技術(shù),特別是移動互聯(lián)網(wǎng)技術(shù)的優(yōu)勢,提高教育教學(xué)質(zhì)量,提高工作效率,學(xué)校信息化平臺的建設(shè)就變得異常重要,因此本文提出采用ASP.NET(C#)和SQLSERVER數(shù)據(jù)庫設(shè)計和開發(fā)一個能讓學(xué)生網(wǎng)上提出問題,系統(tǒng)白動實現(xiàn)答疑功能的智能答疑系統(tǒng)。
1ASP.NET技術(shù)簡介[1]
ASP.NET是.NETFramework的一部分,是一種動態(tài)網(wǎng)頁設(shè)計技術(shù),2005年已推出ASP.NET2.0版,用于在服務(wù)器上開發(fā)功能強大的Web應(yīng)用程序,提供了豐富的控件,大幅度減少代碼量,程序員只需要拖動控件,然后根據(jù)事件處理控件的屬性即可,采用在服務(wù)器上編譯后運行,運行效率較高。代碼層次清晰,前臺頁面代碼和中間層邏輯處理代碼分離,代碼可讀性強。在.NET架構(gòu)中的公共語言運行庫組件提供了對多種語言的支持,如C#、J#、C++、VB.NET等,C#和VB.NET是目前ASP.NET技術(shù)中的主流編程語言,C#是專門為.NET應(yīng)用而開發(fā)出的語言,他具有語法簡潔,面向?qū)ο螅嫦騑eb,功能強大,靈活性與兼容性,完整的安全性與錯誤處理等特點,因此本系統(tǒng)采用C#來進(jìn)行WEB頁的開發(fā),VS2012作為開發(fā)環(huán)境,嵌套C#語言的ASP.NE工作為編程環(huán)境,soLServer2008是數(shù)據(jù)庫環(huán)境。
2系統(tǒng)分析與設(shè)計
2.1系統(tǒng)分析本系統(tǒng)基于B/S結(jié)構(gòu),面向管理員、教師、學(xué)生三類對象答疑解惑系統(tǒng)平臺;從學(xué)生的學(xué),教師的教,以及管理員的管,三個維度構(gòu)筑了數(shù)字化測評系統(tǒng)架構(gòu)。在研究本系統(tǒng)時,首先確定需要做什么,進(jìn)行需求分析,確定系統(tǒng)應(yīng)該具備什么功能。
在研究需求時可以把系統(tǒng)劃分為以下三個大模塊,即管理員模塊,教師模塊和學(xué)生模塊。如圖1所示:
2.1.1教師模塊
系統(tǒng)公告:查看由管理員發(fā)布的公告信息。
管理問答庫:完成問題的查詢、維護(hù)、添加等操作。
熱點問題:是教師了解學(xué)生關(guān)注問題的途徑,并實現(xiàn)對熱點問題的管理。
添加問題:教師可以根據(jù)所學(xué)科目內(nèi)容白行添加問題。
答疑管理:回答學(xué)生提問的問題,刪除和修改問題等。
學(xué)生管理:教師可以對添加、修改和刪除學(xué)生的信息。
修改個人信息:教師可以修改自己的一些信息,如密碼等。
2.1.2學(xué)生模塊
系統(tǒng)公告:查看由管理員發(fā)布的公告信息。
發(fā)布問題:學(xué)生向教師提問問題,包括問題類型,問題標(biāo)題,問題內(nèi)容,并可附帶附件。
問題列表:提問的問題,經(jīng)教師回答之后可以從問題列表中查看。
熱點問題:經(jīng)常出現(xiàn)的問題,可以實現(xiàn)從問題列表中自動查詢回復(fù),實現(xiàn)自動答疑。
修改個人信息:學(xué)生可以修改自己的一些信息,如班級、專業(yè)、密碼等。
2.1.3管理員模塊
公告管理:公告信息的發(fā)布、修改、刪除等操作。
學(xué)生信息管理:學(xué)生信息的添加、修改、刪除等操作。
教師信息管理:教師信息的添加、修改、刪除等操作。
管理員信息管理:管理員信息的添加、修改、刪除等操作。
2.2數(shù)據(jù)庫設(shè)計
本系統(tǒng)采用的是MVC三層結(jié)構(gòu)[6],前臺作頁面設(shè)計和布局,中間層作業(yè)務(wù)邏輯處理,后臺使用數(shù)據(jù)庫存取數(shù)據(jù),因此數(shù)據(jù)庫設(shè)計是設(shè)計本系統(tǒng)的一個重要環(huán)節(jié)。根據(jù)數(shù)據(jù)庫設(shè)計的方法和步驟,首先第一步進(jìn)行數(shù)據(jù)的收集與分析,然后在此基礎(chǔ)上建立一種抽象的數(shù)據(jù)模型即E-R圖,最后在把E-R圖轉(zhuǎn)換為相應(yīng)的關(guān)系模式。由于本系統(tǒng)所涉及的實體較多,故在此不再呈現(xiàn)實體間的聯(lián)系圖,直接給出由E-R圖轉(zhuǎn)換得到的關(guān)系模式,得到以下幾個數(shù)據(jù)庫表:
Admin表(姓名,密碼,是否在線)
classlnfo表(班級名稱,專業(yè)代碼,專業(yè)名稱)
zhuanyelnfo表(專業(yè)代碼,專業(yè)名稱)
documentlnfo表(標(biāo)題,內(nèi)容,文件路徑,文件類型,類型id,添加時間)
documentType表(類型id,類型名稱)
news表(標(biāo)題,內(nèi)容,添加時間)
question表(問題id,主題,添加作者,添加時間,內(nèi)容,是否回復(fù))
answer表(回復(fù)內(nèi)容,回復(fù)作者,問題id,回復(fù)時間,回復(fù)標(biāo)題)
teacher表(姓名,性別,簡介,密碼)
student表(姓名,性別,班級,專業(yè),簡介,密碼)
由于本系統(tǒng)采用Sqlserver2008作為后臺數(shù)據(jù)庫,故表中各字段的類型與該數(shù)據(jù)庫的類型一致。實現(xiàn)數(shù)據(jù)庫連接時須在web.config文件中添加如下代碼段:
name="sqlcon" connectionString="Data Source-,:Initial Catalog-ZhiNengDY:Integrated Security-True:user id=sa;password=123456"providerName="System.Data.SqlClient"/> 3系統(tǒng)實現(xiàn) 3.1母版頁的設(shè)計與實現(xiàn) 在ASP.NET2.0中,母版頁與頁面模板一樣,使用母版頁創(chuàng)建統(tǒng)一的用戶界面與樣式,可以將WEB應(yīng)用程序中的靜態(tài)文本,如網(wǎng)站標(biāo)志、廣告條、導(dǎo)航條、版權(quán)聲明、HTML元素和服務(wù)器控件的預(yù)定義布局等內(nèi)容整合到母版頁中[1,4]。后臺母版頁的設(shè)計如圖2所示: ContentPlaceHolder為占位符控件,可在內(nèi)容頁面中替換成設(shè)計者需要的內(nèi)容。在本系統(tǒng)中針對管理員、教師、學(xué)生三個模塊采用了三個不同的masterpage.master. 3.2用戶登錄功能的關(guān)鍵技術(shù) 根據(jù)登錄類型為管理員還是學(xué)生,導(dǎo)入不同的系統(tǒng)界面。用戶登錄頁面index.aspx.cs中的關(guān)鍵代碼如下: protectedvoidibtnLogin_Click(objectsender,ImageClickEventArgse) {if(DropDownListl.SelectedValue="學(xué)生") {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(){)的方法類似。實現(xiàn)界面如圖3所示: 3.3學(xué)生模塊的實現(xiàn) (1)問題發(fā)布功能的關(guān)鍵技術(shù) 在addTopic.aspx頁面中管理員可以添加新的問題、發(fā)布問題,關(guān)鍵代碼在addTopic.aspx.cs中實現(xiàn): 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("發(fā)布成功")i
Response.Redirect("LyList.aspx"):
)
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("SearchList.aspx?key-"+tb_title.Text):
)
(2)問題列表的管理
在newList.aspx頁面可以查詢已經(jīng)提問的問題及熱點問題等,點擊查看按鈕實現(xiàn)問題答案的查看。關(guān)鍵代碼在newList.aspx.cs中實現(xiàn):
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)//鼠標(biāo)移動變色
//當(dāng)鼠標(biāo)放上去的時候先保存當(dāng)前行的背景顏色并給附一顏色
{e.Row.Attributes.Add("onmouseover","currentcolor-this.style.backgroundColor:this.style.backgroundColor='#f6f6f6',this.style.fontWeight=”:");//當(dāng)鼠標(biāo)離開的時候?qū)⒈尘邦伾€原的以前的顏色
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教師模塊的實現(xiàn)
在ShowTopic.aspx頁面中實現(xiàn)對問題的回復(fù)和管理,關(guān)鍵代碼在ShowTopic.aspx.cs中實現(xiàn):
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("回復(fù)成功!","ShowTopic.aspx?id="+id):
BinderTopic():
BinderReplay():
}}}3.5管理員模塊的實現(xiàn)
在管理員模塊中實現(xiàn)對教師信息的管理、學(xué)生信息的管理、管理員信息的管理及公告信息的發(fā)布,其中公告信息的發(fā)布在AddNews.aspx文件中實現(xiàn),關(guān)鍵代碼在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結(jié)束語
本系統(tǒng)采用了目前B/S模式系統(tǒng)[5,7]開發(fā)的主流技術(shù)ASP.NET2.O,實現(xiàn)了高校學(xué)學(xué)生答疑功能的信息化和智能化,改變了傳統(tǒng)的面對面、BBS、QQ、論壇等答疑的方式,該系統(tǒng)問題庫的管理,答疑的管理,學(xué)生信息、教師信息的管理等,從很大程度上減輕了科任教師的負(fù)擔(dān),提高了工作效率和教學(xué)質(zhì)量,具有一定的實用價值。
參考文獻(xiàn)
[1]秦學(xué)禮,張峰.Web應(yīng)用程序設(shè)計-ASP.NET(第二版)[M].北京:清華大學(xué)出版社,2010.
[2]任紅霞,梁朋舉.智能答疑系統(tǒng)在電大開放教育中的應(yīng)用研究.濮陽職業(yè)技術(shù)學(xué)院學(xué)報[J],2012,25(3):155-156.
[3]王燕,沈銳.網(wǎng)絡(luò)教學(xué)平臺中智能答疑系統(tǒng)的模型構(gòu)建.軟件導(dǎo)刊[J].2012,11(5):75-77.
[4]肖坤峨.基于ASP.NET的學(xué)生信息管理系統(tǒng)的設(shè)計與實現(xiàn).電腦編程技巧與維護(hù)[J].2014,310(16):33-35.
[5]余翠蘭.基于ASP.NET的學(xué)生住宿管理系統(tǒng)的設(shè)計與實現(xiàn)[J].軟件,2014,35(4):160-164.
[6]程寧.基于NETMVC架構(gòu)的網(wǎng)上考試系統(tǒng)的設(shè)計與研究[J].軟件,2013,34(6):20-22.
[7]馮海平.開放式上網(wǎng)學(xué)習(xí)管理系統(tǒng)研究與實現(xiàn)[J].軟件,2012,33(11):99-100.