周秀媛
(蘭州工業高等??茖W校軟件工程系 甘肅 蘭州 730050)
隨著計算機課程的改革與發展,采用.NET技術開發出一套功能強大、實用性強、題目多樣的Visual Basic(以下簡稱VB)考試系統[1][2]已迫在眉睫,通過提出以過程記錄為前提,采用模糊評分體系實現程序設計類主觀題的自動評閱來實現系統設計與研發。
熟識VB.NET語言的編程特點和理解.NET框架的開發經驗的基礎上,提出了一個基于Client/Server(簡稱C/S)與Browser/Server(簡稱B/S)混合模式的三層結構考試系統的設計方法[3][4],并使用大型數據庫Sql Server2000解決題庫問題。系統設計工程中引入模塊化設計的思想,該系統專門用于試題(卷)錄入、查詢、修改、刪除、組卷和參加考試。其最大的特點是開放性、方便性、靈活性及易維護性。
本系統采用B/S結構和C/S結構相結合的方式來實現系統的整體架構。其中面向教師維護試題庫模塊采用B/S結構,既簡化客戶端,又便于教師隨時訪問;面向學生考試模塊則處于安全性和網絡訪問量大的特點,采用C/S結構來實現,該考試系統結構如圖1所示。

圖1 VB考試系統模塊
1)題庫管理
題庫管理系統包括試題錄入、試題分類、試題庫維護等功能。試題錄入方式為集中錄入或隨時錄入;題庫中試題按知識點、題型、難度等進行分類管理;題庫維護包括對試題庫中的試題進行添加、刪除、修改、瀏覽、重新整理、分類統計等功能。
2)考生管理
該模塊實現需與教務系統建立連接,獲取參與該課程考試學生的相關信息,并按照教師考勤情況設置考生是否有參試資格,生成登錄考試時的驗證信息;允許對成績有疑問的考生向相關人員要求查看自己的答卷,答卷上顯示試卷的內容、考生的答案、標準答案、評分標準、每道試題的得分情況等;具備考生成績查詢等功能。
3)考試過程控制
考試控制模塊由考試系統服務器端完成,主要完成為客戶端提供考試服務、監控客戶端行為。包括實現考生考試資格的認證、取消、禁考、考試作廢等功能的設定,以及每場考生信息的回收、匯總、提交給系統服務器等功能;實現在線檢測,監測考生的考試狀態,包括應試人數、在線考試的考生情況,缺考的考生、提交的考生,相關信息供監考教師查看。
4)自動組卷
考生登錄成功后,系統根據考生登錄的情況,判別考生是否第一次登錄,如果是第一次登錄,系統則根據組卷規則產生隨機數來隨機抽取試題組成試卷,并進入考試界面。反之,說明考生可能在考試中因某種原因需重新進入考試,此時僅需恢復考生原來試卷即可。
5)自動評閱
針對選擇、判斷等客觀型試題,評分系統將逐一對比該題考生答案與評分答案,快速準確地給出考生成績。主觀題和操作題,通過不同算法實現自動評閱,最后得出考生的總分。
6)分析統計
統計考生總體的得分情況,考生總體的最高分、最低分、各個分數段的積累人數、平均分、標準差等,用圖形直觀地表示出考生在各個分數段的分布情況,以及考生成績是否符合正態分布,從而了解考生總體的掌握情況;也可分析單個考生各知識點的解答情況。
7)安全性保障
考試系統要保證數據的安全,其中包括:考前試卷保密;考后答題信息的保密,以防考生考試記錄丟失和意外情況處理,為后期匯總、評閱、備查做準備。
智能組卷原理為:由組卷人設定抽題參數,系統按照抽題參數自動抽取指定數量的符合組卷人要求的試題,將其追加到考生試卷庫中,并以指定的方式顯示在客戶端界面上提供給考生答題使用。其中隨機數由隨機函數生成。假如題目數為N,則產生1~N之間的一個隨機整數的計算公式如下:JLH=int(1+RAND(-1)*N)。其中JLH就是通過該隨機函數控制抽取的試題的記錄號。自動抽題參數設置界面如圖2所示。

圖2 智能組卷程序界面
知識點覆蓋率是指抽取的試題知識點占試題庫中知識點總數的百分比;試題難度比例指的是難度為“易”、“中”、“難”的題目的比例,由試題總量和試題難度比例可以算出各難度試題的數量。通過設置這三個參數,可得到每個知識點、每種試題難度的題目數,再利用隨機函數去控制抽題并將抽到的題目加入到考生試卷庫中。
考試結束后要對考生所做的試題進行評判,評分的結果至關重要。從某種意義上說,評分算法成為整個考試系統成敗的關鍵,也是整個系統的核心。
1)主觀題的特征分析及解決方案
在評分系統中對于標準性試題評閱,只需將考生答案與標準答案比較,即可實現評閱;而在實際考試中,主觀題是不可缺少的重要組成部分。由于主觀題的靈活多樣和解答結果的不確定性,因此實現主觀題的自動評分具有一定的難度,如程序改錯題、編程題等。對于同一個問題,不同考生的解答結果也是不盡相同的。因此,不必強求答案的一致性,這就給計算機自動評分帶來很大困難。
通過分析可知,評閱此類試題的關鍵是考察設計結果是否正確,即運行最終代碼,判斷運行結果是否與預設結果一致,因此提出一種切實可行的評分方案。但在實際操作中還應考慮以下幾種情況:
(1)圖文界面類試題。VB中的各類控件及圖形界面的設計為考核的重點之一。該類試題通常需在界面上創建若干控件對象并設置相應屬性,之后編寫事件代碼,完成指定功能。利用VB在操作過程時必然產生相關文件,閱卷系統通過掃描相關文件與正確操作應該產生的文件結構及內容進行比較,既可以達到分步計分的目的,又可避免有些考試系統中“一刀切”的評分算法。
(2)算法實現類試題。VB支持結構化程序設計語言,而順序、分支與循環結構在實際問題中的應用是VB的核心與重點,解決方案就是逐字符進行比較。
除了以上所述特點之外,更重要的一點是必須嚴禁抄襲現象,有效防止作弊。本系統從實際出發,采用“記錄解答過程”的方法。評分時如搜索不到指定文件,就可認定為“抄襲”。
2)實現方法與技術
本系統采用VC++設計核心模塊,采用VB.NET設計復雜的功能界面。本節以主觀題自動評分模塊進行簡要分析,如圖3所示。

圖3 自動評分流程圖
本文解決了如何開發一個基于.NET架構的VB考試系統的方法,系統中涉及到面向對象編程、三層結構、Web服務以及同類軟件先進的設計理念及思想。設計的系統具有穩定性好、操作便捷、便于維護等特點,適合高校的語言類課程考試,具有較強的推廣性,相關模塊已體現于實踐教學環節中,收到了良好的效果。
[1]汪永明.基于 B/S模式的在線考試系統[J].微機發展,2004,14(1):59-60.
[2]秦政,張秀彬,曾國輝,等.基于XML在線考試系統[J].福建電腦,2004(12):47-49.
[3]趙睿,張太芳,等.基于C/S+B/S混合模式的網絡考試系統原型分析與設計[J].Vol.34,No.3,2005:32.
[4]劉紅軍,唐瑞春.基于B/S架構的網上考試系統的設計與實現[J].灘坊學院學報,2005(4):50-52.