王亞南
(鄭州飛機(jī)裝備有限責(zé)任公司 河南 鄭州 450005)
為配合公司某資格認(rèn)證的需要,開發(fā)了在線自測(cè)考試系統(tǒng)。該系統(tǒng)運(yùn)行于公司局域網(wǎng),采用Delphi+SQL Server 2000的架構(gòu)。該系統(tǒng)分為自測(cè)練習(xí)、模擬考試和考試參數(shù)配置三個(gè)模塊。系統(tǒng)管理員可對(duì)題目類型、分值、考試時(shí)間等參數(shù)進(jìn)行配置。同時(shí)還具有隨機(jī)抽題、自動(dòng)組卷、自動(dòng)計(jì)時(shí)、自動(dòng)閱卷、自動(dòng)評(píng)分功能,各單位人員可通過(guò)客戶端登錄本系統(tǒng),完成自測(cè)練習(xí)和模擬考試。通過(guò)本系統(tǒng)的應(yīng)用,大大提高了學(xué)習(xí)效率,順利通過(guò)了資格認(rèn)證知識(shí)考試,獲得了較好的應(yīng)用效果。
通過(guò)分析資格認(rèn)證考試的題型分類和題庫(kù)的試題存儲(chǔ)格式,得出了通過(guò)結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫(kù)可以存儲(chǔ)各類試題的題干和題肢,以及正確答案,從而對(duì)用戶的選擇和作答做出判斷,并根據(jù)參數(shù)配置確定用戶分值。根據(jù)這一分析,著手使用Delphi 7.0開發(fā)一個(gè)集成題庫(kù)管理、試卷管理、自動(dòng)組卷、在線考試、試卷評(píng)閱、自測(cè)練習(xí)、模擬考試和考試參數(shù)配置等功能的在線知識(shí)自測(cè)考試系統(tǒng)。
2.2.1 系統(tǒng)開發(fā)語(yǔ)言和數(shù)據(jù)庫(kù)
本系統(tǒng)是通過(guò)Delphi7.0設(shè)計(jì)程序來(lái)連接和管理 SQL Server2000數(shù)據(jù)庫(kù),完成所有功能的操作。其核心技術(shù)便是研究數(shù)據(jù)庫(kù)管理和Delphi程序設(shè)計(jì)。
系統(tǒng)開發(fā)主要采用了C/S的兩層結(jié)構(gòu)模式、SQL數(shù)據(jù)庫(kù)技術(shù)、Pascal開發(fā)語(yǔ)言等諸多技術(shù),綜合采用面向組件和面向?qū)ο蠓椒▽?duì)系統(tǒng)進(jìn)行需求分析、設(shè)計(jì)和構(gòu)建系統(tǒng)模型。
結(jié)合本系統(tǒng)的設(shè)計(jì),C/S架構(gòu)的兩層體系結(jié)構(gòu)對(duì)應(yīng)于硬件設(shè)計(jì)就是客戶端和數(shù)據(jù)庫(kù)服務(wù)器。服務(wù)器采用SQL SERVER 2000數(shù)據(jù)庫(kù),客戶端運(yùn)行客戶端程序來(lái)完成自測(cè)全過(guò)程,同時(shí)可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。
2.2.2 關(guān)鍵技術(shù)及解決方案
基于知識(shí)測(cè)試的題型特點(diǎn),關(guān)鍵技術(shù)是試題的智能組卷設(shè)計(jì)。經(jīng)過(guò)對(duì)比分析研究,本系統(tǒng)采用隨機(jī)算法進(jìn)行系統(tǒng)算法的實(shí)現(xiàn)。
隨機(jī)算法是最常用的組卷算法,它根據(jù)狀態(tài)空間的控制指標(biāo),由計(jì)算機(jī)隨機(jī)地抽選一道試題加入試卷中,此過(guò)程不斷重復(fù),直到組卷完畢,或已經(jīng)無(wú)法從試題庫(kù)中抽選滿足指標(biāo)的試題為止。在具體實(shí)現(xiàn)時(shí),可以采用一個(gè)定長(zhǎng)的線性表作為試卷生成過(guò)程中的狀態(tài),線性表的長(zhǎng)度為用戶提交的總題量,每一元素代表選中試題的狀態(tài)長(zhǎng)度,狀態(tài)類型由試題的若干分量組成,如題型、難度等,待組卷完成后,再?gòu)脑囶}庫(kù)中抽取與之相應(yīng)的試題生成試卷。算法的實(shí)現(xiàn)過(guò)程為:
(1)建立兩個(gè)數(shù)組P(M)、Q(N)。P(M)的值為某種狀態(tài)M的試題在試題庫(kù)中的試題量,Q(N)為用戶要求的該狀態(tài)的試題數(shù)目,P(M)對(duì)應(yīng)的全部狀態(tài)的集合構(gòu)成線性表LIST;
(2)如果 P(M)> Q(N),則轉(zhuǎn)向(5),否則產(chǎn)生隨機(jī)數(shù) X1,X1=int(rand(-1)*P(M),其值小于P(M),讀取X1記錄,并對(duì)該記錄作選取標(biāo)志,抽取下一道題目時(shí),有選取標(biāo)志的記錄不再有效;
(3)若 P(M)<>0,則 P(M)=P(M)-1,重復(fù)(2);
(4)若 LIST 表未滿,則轉(zhuǎn)向(1),否則組卷成功;
(5)算法結(jié)束。
2.2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)的整體結(jié)構(gòu)設(shè)計(jì)如下:
試題(試題編號(hào),試題內(nèi)容,試題類型,題干,題肢,答案)
用戶(用戶編號(hào),用戶帳號(hào),用戶密碼,權(quán)限)
題型參數(shù)(總分,考試時(shí)間,題型數(shù)量,題型分值)
2.2.4 在線組卷模塊詳細(xì)設(shè)計(jì)
下面以選擇題組卷為例,簡(jiǎn)要描述實(shí)現(xiàn)過(guò)程:
(1)順序測(cè)試時(shí),按順序抽取所有選擇題并進(jìn)行排列顯示,代碼如下:

(2)模擬測(cè)試時(shí),根據(jù)分值、題型的數(shù)量通過(guò)隨機(jī)算法進(jìn)行抽取,代碼如下:

(3)組卷,代碼如下:

2.2.5 在線測(cè)試模塊詳細(xì)設(shè)計(jì)
仍然以選擇題為例,簡(jiǎn)要描述實(shí)現(xiàn)過(guò)程:
function PreProcessDXT(StrBuff:WideString;var Item:


2.2.6 系統(tǒng)管理模塊詳細(xì)設(shè)計(jì)
系統(tǒng)管理模塊主要包括用戶權(quán)限與登錄、題型設(shè)置、考試時(shí)間設(shè)置、題型數(shù)量、題型分值等功能的設(shè)計(jì)。
通過(guò)本系統(tǒng)的應(yīng)用,大大提高了相關(guān)知識(shí)學(xué)習(xí)的效率,順利通過(guò)了資格認(rèn)證知識(shí)考試,獲得了較好的應(yīng)用效果。
[1]吳靜霞.基于智能組卷的在線考試系統(tǒng)得設(shè)計(jì)與實(shí)現(xiàn)[J].2008(4)第10卷第3期.
[2]SQL Server 聯(lián)機(jī)叢書[M].