摘要:本文從結(jié)構(gòu)及環(huán)境設(shè)置兩個(gè)方面闡述了Windows基本操作試題的總體設(shè)計(jì),同時(shí)就題干和環(huán)境的目錄樹(shù)的設(shè)計(jì)與實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹。
關(guān)鍵詞:基本操作題;題干;環(huán)境;命令
Windows基本操作題在試題維護(hù)和自動(dòng)評(píng)分方面有一定的難度。根據(jù)內(nèi)蒙古科技大學(xué)實(shí)踐訓(xùn)練中心的具體情況,即測(cè)試基本操作主要的考點(diǎn)是:建立文件夾、刪除文件夾、刪除文件、文件夾更名、文件更名、移動(dòng)文件夾、移動(dòng)文件、設(shè)置文件夾屬性、設(shè)置文件屬性、復(fù)制文件和建立快捷鍵。為了評(píng)分的方便,為每個(gè)考點(diǎn)的試題給出一個(gè)命令,從不同的命令可以查詢(xún)考生是否完成對(duì)應(yīng)考點(diǎn)的要求,命令與考點(diǎn)的對(duì)應(yīng)關(guān)系如表1所示。
表1中的說(shuō)明字段實(shí)際上就是題干部分,通過(guò)這樣的命令,可以把題干轉(zhuǎn)化為計(jì)算機(jī)程序可以識(shí)別的知識(shí),這在人工智能中也常用到。測(cè)試系統(tǒng)的評(píng)分程序就可以根據(jù)命令和參數(shù)構(gòu)成的字符串得知試題測(cè)試的考點(diǎn),并通過(guò)操作系統(tǒng)的相關(guān)API函數(shù)可以判斷考試是否正確完成某個(gè)考點(diǎn)。
對(duì)于基本操作題還有一個(gè)比較關(guān)鍵的地方就是測(cè)試環(huán)境的構(gòu)造,比如要考察考生設(shè)置文件的屬性,那么就要保證系統(tǒng)在抽取試題時(shí)必須建立該文件。在試題維護(hù)功能中,操作人員可以維護(hù)一個(gè)目錄樹(shù),可以建立文件或文件夾,并可以設(shè)置文件或文件夾的屬性,類(lèi)似于操作系統(tǒng)的相關(guān)操作,圖2為某套試題中的基礎(chǔ)測(cè)試環(huán)境的目錄樹(shù)和構(gòu)建該目錄樹(shù)需要的命令。
在抽取試題時(shí),測(cè)試系統(tǒng)會(huì)根據(jù)命令在考生文件夾下建立上圖所示的目錄結(jié)構(gòu)以便考生操作,為了檢查考生是否操作的是抽取試題生成的文件,系統(tǒng)會(huì)根據(jù)考生信息和目錄結(jié)構(gòu)生成文件的相關(guān)內(nèi)容。
試題管理子系統(tǒng)會(huì)把操作人員輸入的信息保存于WinKS.MDB數(shù)據(jù)庫(kù)的TOPIC表中的對(duì)應(yīng)字段,圖3顯示了該表的4個(gè)關(guān)鍵字段。
圖3中的TOPIC_NO字段中保存試題的套題號(hào);TOPIC_ANS保存試題的答案,對(duì)于基本操作題這個(gè)答案就是考點(diǎn),根據(jù)這個(gè)考點(diǎn)在考生文件夾下搜索相關(guān)信息以便判斷考生是否正確答題;TOPIC_INTE保存試題的題干;TOPIC_DAT字段保存考試環(huán)境
需要的數(shù)據(jù),對(duì)于基本操作題保存了建立操作環(huán)境需要的文件或文件夾。部分關(guān)鍵代碼如下:
1)根據(jù)選擇的考點(diǎn)建立不同的命令字符串
Select Case cbCmdType.ListIndex
Case Is = 0
cmdType = \"mkdir\"
Case Is = 1
cmdType = \"remove\"
Case Is = 2
cmdType = \"rename\"
Case Is = 3
cmdType = \"move\"
Case Is = 4
cmdType = \"setattr\"
Case Is = 5
cmdType = \"copy\"
Case Is = 6
cmdType = \"create\"
Case Else
Exit Sub
End Select
lsTGCommand.AddItem cmdType \"#####\" txtParam1.Text \"#####\" txtParam2.Text
2)生成測(cè)試環(huán)境的目錄樹(shù)數(shù)據(jù)的代碼
szAttr = \"\"
If chkAttr(0).Value = Checked Then szAttr = szAttr \"R\"
If chkAttr(1).Value = Checked Then szAttr = szAttr \"H\"
If chkAttr(2).Value = Checked Then szAttr = szAttr \"S\"
If chkAttr(3).Value = Checked Then szAttr = szAttr \"A\"
If cbOpType.Text = \"創(chuàng)建文件夾\" Then
lsCommand.AddItem \"mkdir#####\" txtFDName.Text \"#####\" szAttr
ElseIf cbOpType.Text = \"創(chuàng)建文件\" Then
lsCommand.AddItem \"mkfile#####\" txtFDName.Text \"#####\" szAttr
End If
Call SetTreeView '調(diào)用過(guò)程設(shè)置樹(shù)形控件
3)保存基本操作試題的代碼
sQuery = \"SELECT * FROM TOPIC WHERE TOPIC_NO='\" txtTTH.Text \"'\"
lRs.Open sQuery, ConnStr(App.Path \"\\DBase\\WinKs.mdb\"), adOpenDynamic, adLockOptimistic
If Not lRs.EOF And Not lRs.BOF Then
lRs.Fields!TOPIC_SCORE = 20
lRs.Fields!TOPIC_ANS = GetAnswer
lRs.Fields!TOPIC_INTE = GetTxtTG
lRs.Fields!TOPIC_INTE1 = GetImageTG
lRs.Fields!TOPIC_DAT = GetCommand
Else
lRs.AddNew
lRs.Fields!TOPIC_NO = txtTTH.Text
lRs.Fields!TOPIC_SCORE = 20
lRs.Fields!TOPIC_ANS = GetAnswer
lRs.Fields!TOPIC_INTE = GetTxtTG
lRs.Fields!TOPIC_INTE1 = GetImageTG
lRs.Fields!TOPIC_DAT = GetCommand
End If
lRs.Update
lRs.Close
該段代碼也是根據(jù)套題號(hào)查詢(xún)題庫(kù)中是否存在該套基礎(chǔ)操作題,如果存在就用操作人員輸入的新信息覆蓋舊試題,如果不存在就增加新試題。上面代碼中調(diào)用了4個(gè)自定義過(guò)程GetAnswer用于獲取用戶(hù)輸入的答案信息,GetTxtTG用于獲取用戶(hù)輸入的題干,GetImageTG用于獲取用戶(hù)需要以圖片表示的題干,GetCommand用于獲取用戶(hù)生成的命令以便于建立考生測(cè)試環(huán)境。這些過(guò)程在獲取輸入數(shù)據(jù)時(shí)都進(jìn)行了相應(yīng)的處理,所以都不直接獲取用戶(hù)的數(shù)據(jù),這樣做的好處是結(jié)構(gòu)清晰,如果以后需要給信息加密,只需要改變對(duì)應(yīng)的過(guò)程并把加密算法應(yīng)用到過(guò)程中即可。
參考文獻(xiàn)
[ 1 ] 高雯,李飛。計(jì)算機(jī)基礎(chǔ)課程自動(dòng)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]。華東理工大學(xué)學(xué)報(bào),2000,26(5):573-575。
[ 2 ] 韋揚(yáng)江。計(jì)算機(jī)考試系統(tǒng)開(kāi)發(fā)過(guò)程中關(guān)鍵問(wèn)題的解決[J]。高教論壇,2004,2:93-96。
[ 3 ] 吳錦林,李景,謝偉。計(jì)算機(jī)應(yīng)用水平一級(jí)考試系統(tǒng)軟件的開(kāi)發(fā)[J]。廈門(mén)大學(xué)學(xué)報(bào)(自然科學(xué)版),2001,40(6):1315-1318。
[ 4 ] 賈志先。計(jì)算機(jī)文化基礎(chǔ)考試系統(tǒng)的開(kāi)發(fā)與應(yīng)用[J]。計(jì)算機(jī)應(yīng)用,2001,21(7):60-61。