摘要:分析現有計算機考試系統中Office主觀題的閱卷方法,介紹了較普遍的基于OLE技術的實現方法,同時提出了一種簡便的、懸浮窗流水評卷的人工輔助閱卷方式。比較了兩種不同處理方式的特點,以及相應的題庫建設、考試等環節的處理。人工參與的懸浮窗流水評卷法相對開發代價小、實現方便,在很難實現的文字類主觀題自動閱卷上具有一定的應用價值。
關鍵詞:計算機考試系統;自動閱卷;OLE;VBA;Office對象;懸浮窗
中圖分類號:TP317文獻標識碼:A文章編號:1009-3044(2008)29-0406-03
Study on Automatic Scoring of Office Operation Questions in Exam System
WANG Xiu-li, GE Ping-ju
(College of Information Science and Engineering,Shandong Agricultural University,Taian 271018,China)
Abstract: The paper pay close attention to automatic scoring of subjective questions in computerized exam system. The available OLE method is introduced, and a pipeline method with floating window is proposed. The ways that founding question database and examining style are different according to the scoring ways adopted. Although the floating window way is semiautomatic, it is still efficient in practical application. Because the scoring standard is simple, it can save a lot of work in database establishing. With flexible using and friendly interface, it can be promoted to other courses examinations with subjective questions written words.
Key words: computerized exam system; automatic scoring; OLE; VBA; Office application object; floating window
1 引言
傳統的利用紙張試卷考試的方式存在許多繁重的人工操作,于是人們開發各種計算機考試系統,借助計算機高效率的處理能力減輕負擔??荚囅到y涉及的問題很多,包括試題結構設計、選題算法、自動閱卷、防作弊技術等,我們重點討論計算機基礎課程考試中涉及的Office主觀題處理的相關問題。
計算機基礎考試的主觀題部分主要是Office操作題,現有各種系統的框架結構、自動閱卷的實現方法多種多樣,各具特色,其中借助OLE自動化技術操作Office對象的方式是最普遍的。有些系統在主觀題處理上還保留著人工輔助的方式,這類實現應更側重友好的用戶界面的實現,以最大程度提高效率。
2 考試系統構建方式選擇
分析現有的考試系統[1-8],實現方式主要有兩種:C/S(Client/Sever)方式和B/S(Brower/ Server)方式。兩者的區別突出表現在:B/S方式在客戶端友好用戶界面的實現上具有優勢,但其瀏覽器腳本語言的能力有限,網絡依賴性強;C/S方式對用戶而言建立和操作客戶端相對復雜,但其客戶端處理能力強,實現相對靈活、功能全面。
隨著網絡的普及和發展,B/S模式在許多應用中成為主要趨勢,但實際應用中仍不能單純認定哪種方式絕對好,應根據需求和具體應用環境綜合考慮。就考試系統而言,WEB方式的考試是現今主流的方式,但在一些功能實現上有難度,實際應用中還不會完全替代CS模式的考試系統。在考試系統的設計實現方式上也出現了很多C/S和B/S的混合模式,根據系統各應用環節的適用情況靈活構建。系統選擇的構建方式不同會直接影響后續細節設計和開發實現的復雜度。
一般需要實現靈活、功能豐富的可使用C/S方式,而友好用戶界面,方便操作可使用B/S方式。所以,我們在實現計算機基礎課程考試系統時選擇考試與閱卷部分使用C/S方式,而學生下載試題、部分題庫管理模塊等交互性強的使用B/S方式。
3 Office操作題自動閱卷技術
純主觀性的題目實現自動閱卷很難,會計電算化考試、銀行從業人員考試等一些資質考試都已計算機化,但都回避簡答、論述等文字類主觀題也是緣于此。雖然也有利用語句相似度等算法進行評判的方案,但較成熟的解決方案還沒有。計算機基礎考試操作題之所以可以實現自動化閱卷,在于有確定的客觀結果可對照,利用計算機編程具有可行性。利用COM、OLE技術操作Office對象對Office操作題進行自動評判是許多系統普遍的方法[1-5]。
3.1 OLE與VBA介紹
為了讓應用程序之間自動獲取彼此的最新數據,動態數據交換(Dynamic Data Exchange,DDE)的通信協定應運而生。但是,解決彼此之間的“數據格式”轉換仍然是程序員沉重的負擔。對象的鏈接與嵌入(Object Linking and Embedded,OLE)技術解決了該問題,它把應用程序的數據交換提高到“對象交換”,程序間不但獲得數據也同樣獲得彼此的應用程序對象,并且可以直接使用彼此的數據內容。
VBA就是典型的OLE技術。微軟公司不公開Office文檔的格式信息,但提供了訪問文檔的接口——VBA(Visual Basic for Applications),利用VBA的Office文檔訪問接口就可以創建、獲得Office文檔對象,并進行對象屬性等的操作,編程實現對Office文檔的各種處理。
3.2 VBA實現自動閱卷的方法
以VBA實現Office自動閱卷核心代碼實際上很簡單,生成學生答題文件的Office對象,獲取其特定對象屬性,將對象屬性和題庫中規定的對象值進行比較,從而實現主觀題閱卷。典型代碼如[3-4]:
wordApp=CreateOleObject(“Word.Application”)
wordDoc=wordApp.Documents.Open(“answer.doc”) // 打開Word 文檔
if wordDoc.Paragraphs(1).Alignment = wdAlignParagraphRight then
score=score+1
……
3.3 自動閱卷相關的題庫處理問題
對于每個操作題個體,其評分標準涉及的Office屬性各不相同,自動閱卷代碼中要考察的對象屬性應是通過循環讀取數據庫中屬性字段得到,并與同時獲得的數據庫標準答案進行比較。這些字段內容均需在試題錄入時寫入試題庫,實際上題庫錄入操作相對自動閱卷功能的實現更為繁瑣。
筆者接觸的某些商業方案在這方面有所改進。教師在錄入試題時只需給出原始素材文件和結果文件,由題庫系統自動掃描比較兩文件的不同,找出所有值不相同的Office對象屬性形成可選屬性列表,教師錄入試題只需進行選擇即可。錄入操作被極大地簡化了,但人工操作的簡化是以增加題庫錄入部分的開發復雜度。在實際使用上,教師還需要進行一定的培訓并熟悉Office各種對象屬性才能熟練出題,從而提高試題錄入效率。
4 人工輔助的半自動閱卷
我們在本校計算機基礎課程考試中探索了一種閱卷方法,特色在于利用懸浮窗實現人工干預下的主觀題半自動化閱卷。由于試卷結構相同,可對大量學生試卷中的操作題目按WORD、EXCEL、PPT等不同文件類型流水判分。批閱不同類型的題目打開的窗口界面類似,如圖1。批閱學號缺省定位在試卷文件夾的第一個上,選擇打開考生文件按鈕,程序自動打開該生答題文件,同時評分要點窗口以自動伸縮的方式出現并附著在桌面左邊。
4.1 懸浮窗流水閱卷的實現
評分懸浮窗口是評分的主要操作窗口,如圖2。利用時鐘監視鼠標坐標,控制窗口的伸縮實現懸浮效果。
主要代碼如下:
Private Sub Form_Load()
frmdefen.Left = 0 '窗體始終放在屏幕左部
dl = GetWindowRect(frmdefen.hwnd, MyRect)' MyRect As RECT
…
Private Sub Timer1_Timer()
dl = GetCursorPos(MyPoint)
If PtInRect(MyRect, MyPoint.X, MyPoint.Y) Then' MyPoint As POINTAPI
frmdefen.Width = max Else frmdefen.Width = 30'窗口伸縮
…
Private Sub Form_Paint()'窗體始終置于最前面
SetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / Screen.TwipsPerPixelX, Me.Top \\ Screen.TwipsPerPixelY, Me.Width \\ Screen.TwipsPerPixelX, Me.Height \\ Screen.TwipsPerPixelY, conSwpNoActivate Or conSwpShowWindow
懸浮窗上列有操作題的評分要點及各要點最高分值,方便閱卷老師在瀏覽考生答題文件的同時對各要點進行增減分操作,程序自動計算合計分值并顯示得分。評分結束后點“OK”,程序自動存儲該生成績的小分,計算累計總分,自動關閉當前考生的文檔并打開下一個考生的文檔進行批閱。根據不同類型操作題自動關閉文件,ShellExecute函數不再適合,選擇利用Office對象記錄打開文件,并在需要的時候自動關閉。
定義操作對象:Public OfficeApp As Object
打開文件操作:
Select Case czfenlei
Case \"WORD\", \"WIN\"
Set OfficeApp =New Word.Application
OfficeApp.Visible = True
OfficeApp.Documents.Open czfile
Case \"EXCEL\"
…
End Select
評分完畢后選擇OK鍵,自動關閉文件操作:
Select Case autocz.czfenlei
Case \"WORD\", \"WIN\"
Set temeApp = GetObject(, \"Word.Application\")
Case \"EXCEL\"
…
End Select
If Not temeApp Is Nothing Then autocz.OfficeApp.Quit
4.2 懸浮窗流水閱卷的特點
該半自動化方式思想是將主觀題閱卷最不容易實現的智能部分保留人工操作,而盡可能多的把機械性操作由程序承擔,包括:考試文件的打開與關閉、考點提示、考點小分的登記和計算、總分統計等。雖然半自動化方式在自動性上有所不足,但其開發復雜度低,實現迅速,能夠具有一定的通用性。
流水線操作是提高效率的基礎,由VBA技術實現,只需實現簡單的Office文檔自動打開和關閉,不需要對每道Office操作題進行復雜的Office對象屬性判斷,相應的試題庫也不需要記錄復雜的評分屬性,直接免去了繁瑣的Office對象屬性及答案的錄入。題庫錄入只需給出人工評分需要的基本信息:題干、考察要點、各要點分數等;人工操作機械性部分的縮減在很大程度上提高了效率。節約了開發成本就要以一定的人工操作為代價,我們努力在前期的題庫建設和后期的評閱處理上找尋這樣一個平衡。
考生總分由程序自動計算后保存到評分程序數據庫中,并且自動閱卷的過程根據試題所屬知識點給出相關統計值。教師還可利用閱卷窗口提供的導出選項,將數據庫中的成績及相關分析數據導入EXCEL文件保存,該功能同樣是利用VBA操作EXCEL表格,代碼此處不再贅述。
4.3 安全性處理
系統給每場考試的考生提供同一套操作題,這也是能夠流水作業的基本。為防止作弊更需要增強安全處理:
用亂序的方法達到基本的考試安全。
為防止非法用戶登錄試題,同時監測相同考號在不同機器的試卷登錄操作,考生登錄時,考試程序將讀取試卷數據庫里的考生信息進行檢查,只有學號合法的考生才能正常打開下載的試題。只要試題被打開,程序就獲取機器MAC地址存入考卷數據庫,并向FTP服務器發送包括學號、姓名、計算機IP及MAC地址等的登錄信息。
本系統考試過程不屏蔽網絡共享,而是為每套試卷記錄第一次打開機器的MAC地址,再次登錄機器與曾記錄MAC地址不符則無法打開試卷,也就限制了考卷復制傳播到不同的機器。監考教師可以利用快捷鍵和監考密碼進入考試程序的管理界面對考生試卷進行干預。如果有考生在考試途中需要更換機器,可由監考老師進入監考界面清除登錄時記錄的MAC信息。
5 結論
Office自動閱卷方法日漸成熟,我們在另一種方向進行了探索。利用懸浮窗評分法的考試系統在我校計算機基礎課程考試中已實際使用了三個學期,效果明顯,現正在向全自動閱卷方式提升,后續還需考慮融入B/S方式實現更友好的用戶操作界面。主觀題的半自動閱卷雖在減輕教師閱卷工作量上有不足,但相應的題庫操作簡便,作為一種簡單易行、可快速實現的方案,在過渡時期有一定的使用價值。對一些較難實現文字類主觀題閱卷的考試,本系統方法也可適用。
參考文獻:
[1] 郭慶北,曲守寧,王永燕.基于 Web的計算機文化基礎考試系統的研究與實現[J].計算機工程與應用,2003,39(20):223-226.
[2] 劉相濱,陽波,王勝春,等.基于組件的計算機考試系統研究與實現[J].計算機工程與應用,2006,42(5):210-212.
[3] 張丕振,劉勇.基于Web技術的計算機基礎考試系統軟件的設計與實現[J].計算機與信息技術,2007,16(17):411-412.
[4] 繆相林,杜紅,邵自剛,等.面向Web的計算機基礎課程考試系統的設計與實現[J].河北工業大學學報,2005,34(1):70-74.
[5] 劉建華.基于OLE自動化的Office操作考試評判系統[J].福建電腦,2005(7):125.
[6] 馮乃光.網上在線考試系統設計及應用研究[J].現代電子技術,2007,32(18):121-126.
[7] 郭躍周,張穎.基于校園網的計算機考試系統的設計與實現[J].現代電子技術,2006,31(4):121-123.
[8] 駱惠清.基于C/S和B/S混合結構的VFP考試系統[J].鄭州輕工業學院學報,2005,20(4):50-51.