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