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