李敏軍, 劉邦濤
(瀘州醫(yī)學(xué)院數(shù)學(xué)與信息技術(shù)教研室,四川瀘州 646000)
上機(jī)考試是對(duì)學(xué)生的計(jì)算機(jī)操作能力進(jìn)行考核的一種重要手段,也是計(jì)算機(jī)程序設(shè)計(jì)課程最有效的考核方式。目前上機(jī)考試主要有單機(jī)考試和網(wǎng)絡(luò)考試兩種方式,單機(jī)考試一般由監(jiān)考教師分發(fā)紙制試卷,學(xué)生用軟盤或者U盤提交答案。單機(jī)考試方式不僅使監(jiān)考教師工作量加大,而且考試的安全性較差,難以防止考試作弊,保證考試的公平性[1]。同時(shí)因閱卷時(shí)需要頻繁插、取盤導(dǎo)致閱卷效率低,而且當(dāng)磁盤損壞時(shí)無(wú)法閱卷。網(wǎng)絡(luò)考試方式的應(yīng)用越來(lái)越多,網(wǎng)絡(luò)考試通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)收、發(fā)試卷,由計(jì)算機(jī)監(jiān)控考試時(shí)間,而且對(duì)于客觀題可以直接利用計(jì)算機(jī)自動(dòng)閱卷,不僅減輕了教師的工作量,大大提高了閱卷速度,還可以減少人工閱卷帶來(lái)的差錯(cuò)。網(wǎng)絡(luò)考試系統(tǒng)是為了解決無(wú)紙化考試而研發(fā)的軟件,具有較強(qiáng)的目的性和專業(yè)性[2],課題研究開發(fā)應(yīng)用于計(jì)算機(jī)程序設(shè)計(jì)的上機(jī)考試系統(tǒng)。
計(jì)算機(jī)語(yǔ)言是計(jì)算機(jī)程序設(shè)計(jì)的基礎(chǔ),主要的計(jì)算機(jī)語(yǔ)言有匯編語(yǔ)言、C、C++、VB、VC、Delphi、Java等。不同的計(jì)算機(jī)語(yǔ)言具有不同的編程環(huán)境,使用的編程工具差別很大。為了實(shí)現(xiàn)各種計(jì)算機(jī)語(yǔ)言的上機(jī)考試,上機(jī)考試系統(tǒng)需要提供一個(gè)公共的考試環(huán)境,在編程工具的支持下進(jìn)行考試。整個(gè)系統(tǒng)包括試題發(fā)送與回收、考試計(jì)時(shí)、信息記錄等功能,考慮到計(jì)算機(jī)程序設(shè)計(jì)試題的多樣性、靈活性和復(fù)雜性,系統(tǒng)采用固定多套試卷的組卷策略,不提供自動(dòng)閱卷的功能。此外,系統(tǒng)還應(yīng)滿足以下需求[3]:
(1)完善的考試控制功能,包括允許、禁止、延時(shí)和重新考試等功能。
(2)靈活的組卷方案,既可以固定選擇一套試題考試,也可以隨機(jī)選擇幾套試題考試。
(3)豐富的考試提示功能,包括定時(shí)提示、消息提示和交卷提示等功能。
(4)動(dòng)態(tài)監(jiān)控考試,檢測(cè)并處理考試過(guò)程出現(xiàn)的故障和異常。
(5)完善的數(shù)據(jù)記錄和考試統(tǒng)計(jì)功能。
(6)簡(jiǎn)潔、友好的用戶界面。
目前常見的上機(jī)考試系統(tǒng)主要采用C/S和B/S兩種模式[4-6],由于大多數(shù)的考試都是在一個(gè)比較集中的環(huán)境中進(jìn)行的,C/S模式具有較強(qiáng)的交互性,而且在數(shù)據(jù)傳送速度和保密性方面有一定的優(yōu)勢(shì),因此上機(jī)考試系統(tǒng)采用C/S模式,即客戶機(jī)服務(wù)器模式。系統(tǒng)的框架結(jié)構(gòu)如圖1所示。
(1)配置服務(wù)器
考試之前需要對(duì)考試服務(wù)器進(jìn)行配置,在服務(wù)器中載入考試信息和考生名單、設(shè)置發(fā)放試題文件的目錄和回收試題文件的目錄??荚囆畔⑽募涗浛荚嚸Q、考試類型、考試時(shí)長(zhǎng),每套試卷包含的試題文件等信息。考生名單文件記錄準(zhǔn)考證號(hào)、考生姓名、試卷類型、考試狀態(tài)、計(jì)算機(jī)名稱等信息。發(fā)放試題文件的目錄存放試卷使用的試題文件,回收試題文件的目錄存放考生提交的試題文件。
(2)執(zhí)行考試
在服務(wù)器,啟動(dòng)考試的登錄功能,允許考生登錄到考試服務(wù)器。
圖1 系統(tǒng)框架結(jié)構(gòu)
在客戶端,考生輸入準(zhǔn)考證號(hào)和姓名并登錄到考試服務(wù)器,這時(shí)候考生處于等待考試的狀態(tài)。當(dāng)服務(wù)器發(fā)出開始考試的指令后,客戶端從服務(wù)器下載試卷和試題文件,考試計(jì)時(shí)開始,考生在啟動(dòng)相應(yīng)的編程工具后開始考試。
考試時(shí)間用完后,出現(xiàn)交卷的倒計(jì)時(shí),當(dāng)?shù)褂?jì)時(shí)為0時(shí),客戶端自動(dòng)向服務(wù)器提交考生的試卷和試題文件??忌部梢允褂媒痪砉δ芴崆敖痪?交卷完成后考試終止并退出客戶端。
考試過(guò)程的基本流程如圖2所示。
(3)備份試卷
考生上交的試題文件保存在服務(wù)器指定的目錄中??荚嚱Y(jié)束后,監(jiān)考教師使用存儲(chǔ)設(shè)備(磁盤、U盤等)備份這些試題文件,為閱卷工作做好準(zhǔn)備。
圖2 考試基本流程
考試系統(tǒng)分為3個(gè)功能模塊,即服務(wù)器、客戶端和配置管理程序,各模塊以獨(dú)立軟件形式提供。服務(wù)器提供試題,負(fù)責(zé)發(fā)送和回收試卷,對(duì)考試過(guò)程進(jìn)行計(jì)時(shí)、監(jiān)控和管理;客戶端構(gòu)造考試環(huán)境和工作界面,執(zhí)行服務(wù)器發(fā)出的命令,并在考試結(jié)束時(shí)向服務(wù)器發(fā)送考試結(jié)果;配置管理程序?yàn)槊刻自嚲碇付ㄔ囶}文件,設(shè)置考試信息并負(fù)責(zé)創(chuàng)建和維護(hù)考生信息列表。系統(tǒng)的模塊結(jié)構(gòu)如圖3所示。
在考試系統(tǒng)中需要解決以下幾個(gè)主要問題:
(1)用戶登錄
考生在登錄考試系統(tǒng)時(shí),需要輸入準(zhǔn)考證號(hào)和姓名,這樣可以避免因?yàn)榇中妮斎脲e(cuò)誤的考號(hào)登錄到系統(tǒng)中。為了防止作弊現(xiàn)象,確保上機(jī)考試的公正、公平,在考試服務(wù)器的數(shù)據(jù)庫(kù)文件中設(shè)置了考生的登錄標(biāo)志[7-8]。如果考生已登錄到考試系統(tǒng),那么登錄標(biāo)志設(shè)置為TRUE,并拒絕該考號(hào)重復(fù)登錄到系統(tǒng)中。
(2)試題發(fā)放和回收
上機(jī)考試的題型主要有操作題、程序修改題和程序設(shè)計(jì)題,每套試題使用一組文件來(lái)存儲(chǔ)。這些文件包括題單文件、源程序文件、數(shù)據(jù)文件等,其中題單文件用來(lái)描述試題的內(nèi)容和要求,是一個(gè)Word文檔文件。
圖3 系統(tǒng)模塊結(jié)構(gòu)
考生登錄成功后,服務(wù)器為考生選擇試題,并根據(jù)考生的考號(hào)創(chuàng)建一個(gè)考試目錄,該目錄存放考生上傳的考試文件。同時(shí),在考試客戶端也根據(jù)考生的考號(hào)創(chuàng)建一個(gè)考試目錄,該目錄存放從服務(wù)器下載的考試文件,并映射為虛擬磁盤[9-10],以方便考生使用。在服務(wù)器發(fā)出“允許”考試的指令后,客戶端下載試題并對(duì)考試倒計(jì)時(shí)。完成考試后考生要向服務(wù)器上傳考試文件,考生可以提前交卷,也可以在考試時(shí)間用完后由系統(tǒng)自動(dòng)交卷。由于某些編程軟件會(huì)以獨(dú)占方式打開文件,在不關(guān)閉這些軟件的情況下系統(tǒng)無(wú)法讀取文件并上傳到服務(wù)器,所以在自動(dòng)交卷時(shí)提供90秒的等待時(shí)間,在這段時(shí)間內(nèi)考生既可以保存文件,也可以關(guān)閉編程軟件,以確保能夠順利的完成交卷。
(3)異常處理
在考試過(guò)程中可能會(huì)出現(xiàn)掉電、死機(jī)、網(wǎng)絡(luò)故障等突發(fā)情況,這些情況會(huì)導(dǎo)致網(wǎng)絡(luò)連接異常。為了最大限度保證考試的正常進(jìn)行,需要及時(shí)處理這些異常。要處理異常首先就要檢測(cè)異常,服務(wù)器和客戶端每隔1分鐘就相互發(fā)送一條診斷信息以檢測(cè)它們之間的連接狀況??荚囅到y(tǒng)采用同步阻塞式SOCKET模型[11-12]實(shí)現(xiàn)網(wǎng)絡(luò)通訊,當(dāng)網(wǎng)絡(luò)出現(xiàn)異常時(shí),向網(wǎng)絡(luò)發(fā)送信息會(huì)引發(fā)SOCKET異常,通過(guò)分析SOCKET異??梢耘卸ňW(wǎng)絡(luò)是否出現(xiàn)異常。出現(xiàn)異常后,服務(wù)器顯示“斷線”狀態(tài)并將考生的登錄標(biāo)志設(shè)置為FALSE,客戶端繼續(xù)維持考試環(huán)境并每隔1分鐘嘗試連接服務(wù)器。網(wǎng)絡(luò)恢復(fù)正常后,客戶端自動(dòng)登錄到服務(wù)器并發(fā)送考試狀態(tài)和剩余時(shí)間,使服務(wù)器的考試狀態(tài)和客戶端保持一致。
課題開發(fā)的上機(jī)考試系統(tǒng)簡(jiǎn)單實(shí)用,經(jīng)過(guò)多次運(yùn)行測(cè)試,效果良好。軟件達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),所有功能也達(dá)到了預(yù)期的要求,現(xiàn)在已被瀘州醫(yī)學(xué)院采用,作為計(jì)算機(jī)等級(jí)考試(二級(jí)、三級(jí)考試)的上機(jī)考試系統(tǒng)。
[1] 奚越,徐杰.計(jì)算機(jī)考試系統(tǒng)的研究與實(shí)現(xiàn)[J].濟(jì)南大學(xué)學(xué)報(bào),2002,(9):274-277.
[2] 李琦.基于C/S模式的計(jì)算機(jī)等級(jí)考試上機(jī)考試系統(tǒng)[J].重慶大學(xué)學(xué)報(bào),2004,27(7):143-145.
[3] 陳剛.計(jì)算機(jī)上機(jī)考試系統(tǒng)研究[J].管理信息系統(tǒng),2001,(7):101-200.
[4] 杜青.一個(gè)簡(jiǎn)單實(shí)用的上機(jī)考試系統(tǒng)的設(shè)計(jì)[J].福建電腦,2010,(9):156-157.
[5] 倪紅軍.基于C/S技術(shù)的VFP上機(jī)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2007,(6):1427,1432.
[6] 黃建勛.利用校園網(wǎng)組建網(wǎng)絡(luò)考試系統(tǒng)的研究[J].中國(guó)教育技術(shù)裝備,2005,(2):4-7.
[7] 鄭章,程剛,張勇.Visual C++6.0數(shù)據(jù)庫(kù)開發(fā)技術(shù)[M].北京:機(jī)械工業(yè)出版社,1999.
[8] 梁普選.Visual C++6.0數(shù)據(jù)庫(kù)編程大全[M].北京:電子工業(yè)出版社,2000.
[9] 黃慶生,湯毅,戴寧.精通Visual C++6.0[M].北京:人民郵電出版社,1999.
[10] 侯俊杰.深入淺出MFC[M].武漢:華中科技大學(xué)出版社,2001.
[11] 陳堅(jiān),陳偉.Visual C++網(wǎng)絡(luò)高級(jí)編程[M].北京:人民郵電出版社,2001.
[12] 羅軍舟,黎波濤,楊明,等.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].北京:清華大學(xué)出版社,2004.