摘 要: 異步多線程的答疑系統實現了異步多線程。學生可以提出問題,查看問題,教師提供解答,并且還可以對問題進行管理工作。
關鍵詞: 異步多線程 答疑系統 數據庫
1.引言
在遠程教學中,由于教師與學生不能處在同一場所,學生不能直接與教師交流,只能通過各種媒介來向教師提問,請求解答,因此為答疑帶來了很多不便,如何使遠程教學系統較好地滿足學生提出問題和教師解答問題的需要,成為遠程教育系統的一個重要功能。為了解決這個問題,筆者設計了一個異步多線程的答疑系統。
2.答疑系統的分析與設計
2.1 需求分析
2.1.1系統的需求分析
本課題希望針對遠程教學這一專門領域,為通過網絡學習的學生提供一個能夠解答學生疑問,幫助學生更好地掌握所學知識,以及減輕教師工作負擔的網絡環境。
2.1.2數據庫的需求分析
根據系統需求,可以列出以下數據結構:
答疑信息:包括提問標題、問題內容、回答內容、提問時間、顯示標記、回答標記等。
后臺數據庫可以使用SQL Server或Access ,數據庫服務器和Web服務器可以配置在同一臺計算機上,也可在兩臺計算機上。本系統是在 Windows 2000 Professional下開發的,開發數據庫使用的是Access 2000。
2.1.3系統的運行環境
本系統的運行環境可以是Windows 2000+IIS、Windows NT+IIS、Windows 95/98+PWS。
2.2 系統功能分析
根據系統功能的要求,答疑系統可以分為兩個模塊:教師模塊和學生模塊,首先用戶登錄,系統根據用戶及密碼自動區分用戶類型,進入各自的用戶頁面。如果是第一次使用本系統,則需要進行用戶注冊。
答疑功能分為非實時答疑和實時答疑。非實時答疑需要完成一個討論組的功能,以使學生和教師能順利提問和解答。實時答疑功能類似于聊天室,學生和教師可以同時登錄到系統,進行實時交流。我們現在主要討論一下非實時答疑系統的功能。
2.2.1教師模塊功能分析
其功能模塊劃分如圖1所示:

圖1 教師子系統功能模塊劃分
(1)管理功能:管理功能可以對冗余數據進行處理,同時維護問題關聯的一致性。
(2)解答問題:登錄到答疑系統的解答問題頁面,所有未被解答的問題都列于其中,教師需要逐一解答。
(3)提出新問題:教師可以向答疑系統提出新問題,由學生解答,學生也可自問自答。學生可以先檢索問題資源,查看是否有類似的解答,若有,則直接瀏覽獲取答案;若沒有,學生可以進入問題中心,提出自己的新問題。
(4)查詢問題:答疑系統就是為學生和教師提供多方面的查詢功能。主要的查詢方式有:按照關鍵字查找、按照問題的標題查找、按照問題的內容查找及按照問題的作者查找。
(5)關鍵字維護:教師可以將一些使用頻率較高的詞設置為關鍵字,系統可以依據關鍵字匯表進行智能答疑。
2.2.2學生模塊功能分析
其功能模塊劃分如圖2所示:

圖2 學生模塊功能模塊劃分
(1)問題收藏:收藏夾的主要功能是存放用戶感興趣的問題。
(2)提新問題:學生提出有疑問的問題,等待教師解答。
(3)查詢問題:同教師查詢功能。
(4)問題交流:將問題按照提問人來分類,點擊某位提問者可以查詢此人的所有問題。
(5)熱點問題:顯示當前答疑中心的所有問題及其解答,按照點擊率排序,點擊次數多的問題排名靠前。
2.3 系統結構
在本課題中,我們將實現一個簡單的答疑系統,結構如圖3所示,頁面通過ASP腳本程序訪問數據庫和文件系統。

圖3 系統結構設計
2.4 數據庫設計
關系數據庫中存在許多記錄表,各個記錄表通過表中的關鍵字段和其他表中的數據建立連接,從而形成一個龐大的記錄系統。關系就體現在數據表之間通過關鍵字段進行的連接。
數據庫:newdata.mdb。
答疑信息:包括提問標題、問題內容、回答內容、提問時間、顯示標記、回答標記等。
答疑信息表(problem)如表1所示:
表2-1 數據庫信息表

id:輸入問題的記錄號。
title:問題的標題。
flag_show:顯示標記(缺省值設為是)。
flag_answer回答標記(缺省值設為否)。
detail:問題的詳細內容。
answer:問題的解答。
time_qry:提問的時間。
3.答疑系統的詳細設計
3.1 模塊說明
3.1.1提問列表模塊
problem.asp:提問列表。
進入答疑教室,學生可以看到所有的提問列表。學生所有提出的問題都顯示于其中,并且在問題提出的時間后面有回答標志。如圖4所示(以下功能模塊圖示略)。

圖4 答疑列表頁面
3.1.2問題詳細信息模塊
problem_item.asp:提問詳細信息。
學生點擊提問列表中的問題,則顯示問題的詳細內容和解答。
3.1.3提出新問題模塊
insertproblem.asp:提出新問題。
學生可以向答疑系統提出自己的新問題,輸入完畢后點擊“提交問題”。
3.1.4教師瀏覽問題列表模塊
problemadmin.asp:教師工作區答疑主頁面。
教師和學生一樣可以看到所有問題的列表,可以對過期的問題進行刪除。
3.1.5教師解答問題模塊
problem_detail.asp:答疑詳細信息頁面。
教師點擊教師主頁面中未回答的問題進入答疑詳細信息頁面,在解答框中給出答案。操作結束后后點擊確定。
3.1.6教師刪除信息模塊
problemdelete.asp:刪除一條答疑記錄。
對問題庫進行維護,刪除無用的問題,減少數據庫冗余。
4.系統的具體編碼實現
4.1 數據庫的連接
4.1.1對數據庫操作的頁面,可以通過調用下面的函數實現。
<%
sub cod_AdoOpen(objConnection,rsCoursesList,dsn,rss)
Set objConnection = Server.CreateObject(\"ADODB.Connection\")
objConnection.Open dsn
Set rsCoursesList = Server.CreateObject(\"ADODB.Recordset\")
rsCoursesList.ActiveConnection = objConnection
rsCoursesList.CursorLocation = adUseClient
rsCoursesList.CursorType = adOpenForwardOnly
rsCoursesList.LockType = adLockReadOnly
rsCoursesList.Source = rss
rsCoursesList.Open
end sub
sub cod_AdoClose(objConnection,rsCoursesList)
rsCoursesList.close
objConnection.close
set rsCoursesList = nothing
set objConnection = nothing
end sub
%>
4.1.2數據庫連接具體實現方法。
<%@ Language = \"VBScript\" %>
<%'-包含數據庫常數定文件和數據庫調用函數文件%>
<!-- #Include file=\"include/adovbs.inc\" -->
<!-- #Include file=\"include/cod_ado.inc\" -->
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">
<title></title>
<%'-包含頁面風格定義文件%>
<!-- #Include file=\"include/style.inc\" -->
</head>
<body>
<%
‘-建立數據庫連接
strPage = Request.queryString(\"page\")
dim objCnn,rs
strDSN = Application(\"dsn\")
%>
(3)關閉數據庫的實現方式:
<%
‘-關閉數據庫連接
call cod_AdoClose(objCnn,rs)
%>
因篇幅以限,其它具體編碼略。
5.結語
本研究課題是網絡教學答疑系統,為通過網絡學習的學生及教授的教師提供一個友好、高效的答疑環境。本課題為實現網絡教學完整的答疑系統進行了基礎性的研究,但也有許多不足和需要探討的地方,僅供大家參考。
參考文獻:
[1]陳亞杰.基于WWW的船舶電站CAI軟件及答疑平臺的開發.武漢交通科技大學.碩士論文,2000,4.
[2]董少春,金瑩,劉峻誠,徐士進,陸現彩.基于WWW的在線答疑系統.南京大學.
[3]李存斌,樊建平.ASP高級編程及其項目應用開發.中國水利水電郵版社,2003,3.