胡綠慧
摘要:介紹了四川省計算機(jī)二級考試上機(jī)考試系統(tǒng)的設(shè)計思路和實現(xiàn)方法,針對四川省計算機(jī)二級考試的特點和具體實際,實現(xiàn)了考生自動登錄、考試過程管理、交卷過程管理中的人性化和自動化管理,從而大大提高考試公平性和閱卷的方便性。
關(guān)鍵詞:VB.NET;SQL Server;計算機(jī)等級考試系統(tǒng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)01-0054-03
二十一世紀(jì)是信息化時代,掌握現(xiàn)代計算機(jī)知識和應(yīng)用能力是社會對當(dāng)代大學(xué)生提出的更高要求,為了適應(yīng)經(jīng)濟(jì)和社會發(fā)展的需要,提高非計算機(jī)專業(yè)學(xué)生的計算機(jī)應(yīng)用水平,四川省教育委員會從1994年開始舉行高等學(xué)校非計算機(jī)專業(yè)學(xué)生計算機(jī)應(yīng)用水平等級考試,分一、二、三級水平考試,目前省內(nèi)大部分高校都要求學(xué)生畢業(yè)前至少通過計算機(jī)二級考試,因此二級考試參考人數(shù)多,監(jiān)考閱卷工作量大。省二級考試分為筆試和上機(jī)考試兩個環(huán)節(jié),傳統(tǒng)上機(jī)考試采用的是軟盤單機(jī)考試模式。這種考試模式存在諸多問題:考試管理為人工操作,工作量大,易出錯;軟盤質(zhì)量和軟驅(qū)故障常導(dǎo)致考生磁盤存盤和讀盤錯誤,給考生帶來不必要的損失;考生在考場可能相互交換軟盤或拷貝軟盤帶出考場,考生作弊現(xiàn)象較為嚴(yán)重;考試時間不能嚴(yán)格控制,給考試帶來人為的不公平性。在傳統(tǒng)的上機(jī)考試方式已不能滿足現(xiàn)代信息化的需要的基礎(chǔ)上,開發(fā)了適合于四川省計算機(jī)二級考試上機(jī)考試系統(tǒng)。該系統(tǒng)以SQL Server作為后臺數(shù)據(jù)庫引擎,以VB.NET為前臺開發(fā)工具,包括考務(wù)數(shù)據(jù)管理和考試過程管理功能。簡單易用,方便了監(jiān)考過程管理和機(jī)試閱卷管理。
1 系統(tǒng)總體設(shè)計
針對四川省計算機(jī)等級考試的實際,基于考試的安全性和系統(tǒng)的穩(wěn)定性,考試環(huán)境是由一臺考試管理服務(wù)器與多臺考試客戶機(jī)通過TCP/IP協(xié)議互連成的一個局域網(wǎng)。采用三層模式開發(fā),使用微軟Microsoft.NET中的VB.NET編寫服務(wù)器端和客戶端程序,通過ADO.NET技術(shù)與數(shù)據(jù)庫進(jìn)行訪問,后端數(shù)據(jù)庫采用SQLServer 2000實現(xiàn),系統(tǒng)可移植性強(qiáng)??傮w設(shè)計思路:考試客戶機(jī)用一個準(zhǔn)考證號碼通過網(wǎng)絡(luò)登錄考試服務(wù)器,服務(wù)器對該號碼是否允許考試進(jìn)行確認(rèn)(只有數(shù)據(jù)庫中有該準(zhǔn)考證號碼且目前處于“未考”狀態(tài)才允許登錄)。如果允許登錄,服務(wù)器發(fā)回一個允許考試指令,并將考試初始化文件發(fā)給學(xué)生機(jī),同時服務(wù)器自動記錄登錄的詳細(xì)信息,考試客戶機(jī)接到從服務(wù)器返回的指令后,進(jìn)行考試環(huán)境初始化,然后進(jìn)入考試界面,客戶機(jī)進(jìn)入正??荚嚑顟B(tài)。此后,客戶機(jī)與服務(wù)器互不通信,直到客戶機(jī)請求交卷??荚嚱Y(jié)束時(到規(guī)定時間客戶機(jī)自動交卷或者考生提前主動交卷),考試客戶機(jī)向服務(wù)器提出交卷請求,服務(wù)器響應(yīng)該請求??荚嚳蛻魴C(jī)將考試文件夾發(fā)給服務(wù)器。將收到的考試包分類保存,然后返回一個確認(rèn)信息。這樣就完成了一個基本考試過程。
2 系統(tǒng)功能模塊
系統(tǒng)主要功能模塊包括:考生登錄模塊,時間控制模塊,交卷模塊,考試過程管理模塊。一、考生登錄,向服務(wù)器請求考試,服務(wù)器根據(jù)考生錄入的考號和姓名確定是否允許該考生考試;二、系統(tǒng)自動為考生創(chuàng)建一個以該考生的考號加姓名的文件夾,并將考試原始數(shù)據(jù)文件放到文件中,考生在考試過程中形成的所有文件均保存在此文件夾中;三、系統(tǒng)根據(jù)考生所選擇的考試語言如VFP,自動進(jìn)入相應(yīng)環(huán)境;四、系統(tǒng)提供時間控制功能,時間從服務(wù)器端讀取可以保證考試的安全性和公正性,考試剩余5分鐘時提醒,當(dāng)達(dá)到規(guī)定時間,系統(tǒng)強(qiáng)行停止答卷,自動存盤退出;考生若提前結(jié)束考試,可點擊“交卷”按扭,并對交卷是否成功給出提示??忌晒痪?,則刪除本機(jī)該考生的考試文件夾,有效防止考生作弊;五、交卷時,服務(wù)器根據(jù)考生在登錄時選擇的考試語言和題套號將試卷分考試評語和題套號保存在相應(yīng)文件夾中,以方便教師閱卷。
3 系統(tǒng)核心功能模塊
3.1 強(qiáng)大的系統(tǒng)登錄模塊
考生登錄、向服務(wù)器請求考試。首先考生進(jìn)入考試系統(tǒng)后,在編輯框里輸入自己的姓名、準(zhǔn)考證號、選擇考試語言和試題題套號后,服務(wù)器進(jìn)行身份驗證,如果不是本考場考生,系統(tǒng)將提示出錯信息,如果是本考場考生則進(jìn)入考生須知界面,系統(tǒng)記錄下考生提供的基本信息,并為考生創(chuàng)建一個文件夾,同時根據(jù)考生選擇的考試語言從服務(wù)器端對應(yīng)數(shù)據(jù)庫中提取考試原始文件到本機(jī)文件夾。當(dāng)考生仔細(xì)閱讀考生須知后,單擊“開始考試”按鈕,系統(tǒng)根據(jù)考生所選擇的考試語言自動打開相應(yīng)的考試環(huán)境,同時計時器開始計時。
實現(xiàn)該功能的VB.NET核心代碼如下:
path1 = "c:\" & Trim(TextBox1.Text) & Trim(TextBox2.Text) '考生文件夾的創(chuàng)建路徑
path2 = "\\server\test" '服務(wù)器考卷路徑
If Len(Trim(TextBox1.Text)) <> 10 Then
MsgBox("請注意,考生考號為10位,考生姓名不能為空!")
TextBox1.SelectAll()
TextBox1.SelectionLength = Len(TextBox1.Text)
Else
Try
System.IO.Directory.CreateDirectory(path1) '創(chuàng)建考生文件夾
newfrm.zhonglei = ComboBox1.SelectedIndex '獲取考試語言的種類
newfrm.titaohao = ComboBox2.SelectedIndex '
'從服務(wù)器拷貝相應(yīng)原始數(shù)據(jù)到考生文件夾
If newfrm.zhonglei = 0 Then
fso.CopyFolder(path2 & "\vf", path1 & "\")
ElseIf newfrm.zhonglei = 1 Then
fso.CopyFolder(path2 & "\c", path1 & "\")
ElseIf newfrm.zhonglei = 2 Then
fso.CopyFolder(path2 & "\vb", path1 & "\")
End If
newfrm.Show()
newfrm.str1 = TextBox1.Text
newfrm.str2 = TextBox2.Text
path1 = "c:\" & newfrm.str1 & newfrm.str2
Me.Close()
Catch ex As Exception
MsgBox("連接服務(wù)器失敗,請重試!")
End Try
End If
End Sub
3.2 嚴(yán)格的考試過程控制
系統(tǒng)根據(jù)考生選擇的不同考試語言,系統(tǒng)自動啟動相應(yīng)的編程環(huán)境。省二級考試語言主要有VB語言、C語言、VFP數(shù)據(jù)庫,考生根據(jù)自己報名時選擇的科目任選一門,系統(tǒng)將自動啟動相應(yīng)的考試環(huán)境,并且默認(rèn)路徑就是考生文件夾,以防考生做題時不能準(zhǔn)確保存文件到考生文件夾??荚囘^程中,界面提示考試剩余時間,考試時間到,系統(tǒng)強(qiáng)行停止答卷,自動存盤退出;計時器核心代碼如下:
t = t - 1 '考試時間計時器
m = Int(t / 60)
s = t Mod 60
mform.Text = "離考試結(jié)束還剩:" & m & "分" & s & "秒"
If (t = 0) Then
tmrtest.Enabled = False
mform.Close()
' Timer1.Enabled = False
If zhonglei = 0 Then
myProcesses = Process.GetProcessesByName("vfp6")
For Each myProcess In myProcesses
myProcess.Kill()
Next
ElseIf ……根據(jù)考生考試不同語言結(jié)束相應(yīng)應(yīng)用程序,下同(略)
End If
Timer1.Enabled = True
jieshu.Enabled = False
t1 = 10 '設(shè)置延遲時間
MsgBox("考試時間到,請考生離開考場!")
End If
End Sub
3.3 準(zhǔn)確的交卷控制
在考試做題界面頂端,顯示考試剩余時間,考生可以根據(jù)時間提示決定自己的答題進(jìn)度,做完題考生可以提前交卷,通過點擊考試界面上的交卷按鈕,系統(tǒng)將提示考生是否確認(rèn)交卷,以防誤交卷導(dǎo)致考試不及格。當(dāng)時間到了考生還未主動交卷,系統(tǒng)將自動為考生交卷,這樣可以避免傳統(tǒng)機(jī)考時監(jiān)考老師不停的提醒考生交卷離開座位。交卷時系統(tǒng)將考生文件夾上傳到服務(wù)器,并刪除本地考生文件夾,清除本機(jī)考生做過的信息。為了防止考生多次交卷,系統(tǒng)將先驗證服務(wù)器上是否有考生交過卷的信息,如果已交過一次卷,在考生二次登錄交卷時將提醒他已交過卷不能再交卷。實現(xiàn)該功能的核心代碼如下:
If MsgBox("你確定要交卷嗎?", MsgBoxStyle.OKCancel) = MsgBoxResult.OK Then
If zhonglei = 0 Then
myProcesses = Process.GetProcessesByName("vfp6")
For Each myProcess In myProcesses
myProcess.Kill()
Next
ElseIf……根據(jù)考生考試不同語言結(jié)束相應(yīng)應(yīng)用程序,下同(略)
……
End If
mform.Close()
'MsgBox("交卷成功,請考生離開考場!")
End If
End Sub
'時間到,交卷后,將考試結(jié)果復(fù)制到考生文件夾下面
If t1 = 0 Then
If (zhonglei = 0) And (titaohao = 0) And Not (fso.FolderExists("\\server\shijuan\vf\1\" & str1 & str2 & "\")) Then
fso.CopyFolder("c:\" & str1 & str2, "\\server\shijuan\vf\1\" & str1 & str2)
If fso.FolderExists("\\server\shijuan\vf\1\" & str1 & str2 & "\") Then
fso.DeleteFolder("c:\" & str1 & str2) '如果成功復(fù)制,刪除本地磁盤上的文件夾
MsgBox("交卷成功,請考生離開考場!")
End If
……根據(jù)考生考試不同語言結(jié)束相應(yīng)應(yīng)用程序,下同(略)
Else
MsgBox("你已交過一次卷了,不能再次交卷")
End If
Me.Close()
End If
4 結(jié)束語
本系統(tǒng)主要針對四川省每年兩次的計算機(jī)二級考試上機(jī)考試設(shè)計開發(fā),系統(tǒng)功能強(qiáng)大,可操作性強(qiáng),信息化程度高。系統(tǒng)實施后對上機(jī)考試帶來極大的方便,有效地防止學(xué)生作弊,能夠更加準(zhǔn)確地限定考試時間,讓考試更公平,大大地節(jié)省考試成本,更科學(xué),信息化程度更高。
參考文獻(xiàn):
[1] 王燦輝,俞建家.用三層模式開發(fā)計算機(jī)等級考試系統(tǒng)[J].福州大學(xué)學(xué)報,2001(3):28-30.
[2] 李琦.基于C/S模式的計算機(jī)等級考試上機(jī)考試系統(tǒng)[J].重慶大學(xué)學(xué)報,2004(7):143-145.
[3] 王鷹,趙躍龍,劉中宇.基于C/S模式的計算機(jī)等級考試系統(tǒng)的設(shè)計[J].計算機(jī)與現(xiàn)代化,2006(2):70-72.
[4] 許洋,李勝.基于VB的計算機(jī)二級考試練習(xí)系統(tǒng)設(shè)計[J].徐州師范大學(xué)學(xué)報,2006(3):27-29.