摘要:為減輕教師閱卷工作量,提高教學效率,本人結合多年的教學經驗,利用ASP技術開發出了基于客戶端腳本的B/S結構的網上考試系統,集出題、組卷、發卷、收卷、批閱以及成績登記與分析等功能與一體。
關鍵詞:ASP;網絡教學;網上考試系統;數據庫
中圖分類號:G642
文獻標識碼:A
文章編號:1672-5913(2008)02-0113-03
1引言
隨著互聯網的廣泛應用,越來越多的傳統應用被移植到網上,考試系統就是一個典型示例。采用傳統的紙質考試流程是:教師出題→印刷→考場分發→收卷→逐份批閱→統計成績→填寫考試成績質量分析表。隨著近幾年高校的擴招,教師的任課班級人數大幅度增加,每到學期結束,教師的閱卷工作量非常大。為了提高工作效率,減輕工作負擔,筆者結合自己的工作經驗,開發了基于B/S架構的在線考試系統,客戶端無需安裝任何程序。
2系統概要設計
登錄該系統的用戶分為兩大類:教師和學生。教師登錄后可選擇課程、題型以及章號來輸入題目。題型包括主觀題和客觀題,其中主觀題包括單選題、多選題、判斷題和填空題,輸入題目的同時也確定參考答案,作為計算機自動閱卷的依據。客觀題包括簡答題(名詞解釋)和操作題(編程題),不配參考答案,需要人工批閱。輸入完題目之后,教師可手動或隨機從各種題型中抽取一定數量的題目,同時規定好各題型的分值,最后組成一套試卷。根據實際情況,教師可設定試卷是否公開以被其他教師采用或作為模擬試卷供學生練習之用。待到考試時,教師可選擇某套試卷發放給學生,并設置好考試時間。這樣,學生登錄后,可先下載試卷,然后調出試卷做題。在學生考試的過程中,可隨時提交答案,在結束考試之前可提交任意多次。
本系統開發環境為Windows 2003 + Access 2003 + IIS 6.0。
3教師管理模塊設計
教師管理模塊主要分為:題庫管理模塊、試卷管理模塊、考試管理模塊。
3.1出題模塊
該模塊主要用于添加、編輯修改以及刪除試題。

圖1顯示的是單選題的輸入界面。教師可在左邊的文本框中依次輸入題目、選項1~4以及該題的相關說明。除此之外,教師還可添加、編輯填空題和操作題,此模塊涉及的表如下所述。
單選題表(SelectTable)的字段有:ChapNO(章號)、Question(題目)、Select1~3、Answer(答案)、Comment(對題目或答案的提示說明)、TeacherName(出題教師的姓名)以及Paper(采用該題的試卷的編號)。
填空題表(BlankTable)的字段有:ChapNO(章號)、Question(題目)、Comment(對題目或答案的提示說明)、TeacherName(出題教師的姓名)以及Paper(采用該題的試卷的編號)。
操作題表(Program)的字段有:ChapNO(章號)、Question(題目)、QuestionType(素材文件的文件類型)、QuestionFileName(素材文件的文件名稱)、Question(素材文件的內容)、TeacherName(出題教師的姓名)以及Paper(采用該題的試卷的編號)。
3.2組卷模塊
組卷模塊主要提供了一個讓教師自由選擇題目數據庫中的題目并組成試卷的平臺。選擇好題目后,教師可給定各題型的分值,同時還可查看或修改試卷信息。默認情況下,剛組好的試卷是非公開、非模擬試卷。如果要讓自己組的試卷能被其他教師采用,可設置為“公開”。如果此試卷僅作為模擬試卷供學生練習使用,而不用做正式考試試卷,則可設為“模擬”。試卷編號從01~20,若某一題目被第n套試卷錄用,試卷編號n則添加到該題的Paper字段值中。
3.3考試管理模塊
考試管理模塊用以對選定班級設置允許/禁止考試、考試時間、試卷ID等(如圖2所示)。試卷列表中顯示的試卷包括當前教師所組的試卷以及其他教師組的但設為“公開”的試卷,不包括任何模擬試卷。若選擇試卷列表中的多套試卷,則隨機分發試卷。圖2中顯示的是選擇了3套試卷進行分發的情況。“分發”操作的實現代碼如下:

Set Cnn=Server.CreateObject(\"ADODB.Connection\")
StrCnn=\"Dbq=\" Server.Mappath(\"..\\db\\Student.asp\") \";Driver={Microsoft Access Driver (*.mdb)}\"
Cnn.Open StrCnn
if SelectUser=\"全班\" then
'分配試卷號
Dim a()
n=0
for eachitem inRequest.Form(\"TxtSelect\")
n=n+1
redim preserve a(n)
a(n)=item
next
if n=0 then
upd=\"Update user Set TestPaper='' where UserClass='\" classname1 \"'\"
set rs=Cnn.execute(upd)
elseif n=1 then
upd=\"Update user Set TestPaper='\" a(1) \"' where UserClass='\" classname1 \"'\"
set rs=Cnn.execute(upd)
elseif n>1 then
randomize
sql=\"Select * from user where UserClass='\" classname1 \"'\"
set rs=Cnn.execute(sql)
Do While not rs.eof
m=Int(n*rnd)+1
upd=\"Update user Set TestPaper='\" a(m) \"' where ID=\" rs(\"ID\")
set rs1=Cnn.execute(upd)
rs.MoveNext
Loop
end if
elseif SelectUser=\"個別\" then
'分配試卷號
redim a(0)
n=0
for eachitem inRequest.Form(\"TxtSelect\")
n=n+1
redim preserve a(n)
a(n)=item
next
if n=0 then
upd=\"Update user Set TestPaper='' where UserNumber='\" StartNumber1 \"'\"
set rs=Cnn.execute(upd)
elseif n=1 then
upd=\"Update user Set TestPaper='\" a(1) \"' where UserNumber='\" StartNumber1 \"'\"
set rs=Cnn.execute(upd)
elseif n>1 then
randomize
sql=\"Select * from user where UserNumber='\" StartNumber1 \"'\"
set rs=Cnn.execute(sql)
Do While not rs.eof
m=Int(n*rnd)+1
upd=\"Update user Set TestPaper='\" a(m) \"' where ID=\" rs(\"ID\")
set rs1=Cnn.execute(upd)
rs.MoveNext
Loop
end if
else
response.end
end if
4學生測試模塊設計
教師發完試卷并設置好考試時間后,在允許考試的情況下,學生即可下載試卷并開始答題。單擊“提交單選題和填空題”之后,系統自動批閱并將得分登記到成績數據庫中,同時還將學生答題的情況保存下來作為資料存檔。單擊“提交操作題”將學生填入的答案文件提交到服務器供教師人工批閱使用。
5結束語
目前,本系統主要供我校從事計算機公共教學的教師使用,教師反映良好,從一定程度上解決了操作性比較強的課程的考試問題。
Design of On-Web Examination Based on ASP
Abstract: Combined with the teaching experience, expected lightening the teacher’s work and increasing the efficiency. An On-Web examination system based on ASP technology was developed. The system includes all the test functions, it’s database is flexible to many courses.
Keywords:ASP, Network teaching, On-Web examination system, Data Base
收稿日期:2007-10
參考文獻
[1] 唐紅亮,王改性,秦戈亮. ASP動態網頁設計應用教程[M]. 北京:電子工業出版社,2006.
[2] 鄭阿齊. ASP程序設計教程[M]. 北京:機械工業出版社,
2005.
[3] 林義證,黃世陽. HTMLASP網頁制作教程[M]. 北京:中國鐵道出版社,2000.
聯系方式:jiangyinzhen@suda.edu.cn