桑娟萍 汪雁 張東
摘 要:本文分析介紹了甘肅林業(yè)職業(yè)技術學院以Visual Basic.NET為開發(fā)環(huán)境,整個系統(tǒng)通訊采用Winsock技術,以Access為后臺數(shù)據(jù)庫格式,構建了基于C/S(客戶端/服務器)模式的計算機類課程通用網(wǎng)絡考試系統(tǒng)。利用該系統(tǒng)可進行考生信息管理、試卷生成及回收、考務管理及檔案生成,實現(xiàn)每人一卷的網(wǎng)絡化考試功能。
關鍵詞:Winsock控件;C/S模式;網(wǎng)絡考試系統(tǒng);報表生成
中圖分類號:TP312 文獻標識碼:A
Abstract:This article introduces the Gansu Forestry Technological College in Visual Basic.NET development environment,the whole communication system uses Winsock technology,with Access as background database,based on C/S(client/server)mode of general network examination system.The system of students' information management,test generation and recycling,examination management and file generation,to achieve a volume of network examination function.
Keywords:the Winsock control;C/S mode;network examination system;report generation
1 引言(Introduction)
隨著現(xiàn)代信息技術與計算機技術的發(fā)展,計算機應用和校園網(wǎng)的普及為網(wǎng)絡考試系統(tǒng)的實現(xiàn)提供了硬件平臺,該模式今后必將是考試模式改革的必然。這是因為現(xiàn)行考試大都以紙質試卷作為考試的憑證,為保護環(huán)境、節(jié)約用紙,施行無紙化考試模式已經(jīng)被社會所重視。其二,常規(guī)方式的考試組織一次至少要經(jīng)過人工出題、試卷印制、考生考試、人工閱卷、成績統(tǒng)計上報等步驟,隨著考試類型、考生數(shù)量的不斷增加及考試要求的不斷提高,組織考試的工作量越來越大,既易出錯,又煩瑣。其三,現(xiàn)行考試大都采用一卷統(tǒng)考的模式,其弊端:試題相同、學生互相抄襲,沒有起到恒量學生真實水平的目的。因此,無紙化隨機抽題考試系統(tǒng)是真實考核每個學生學習掌握程度的最有效手段,既可減輕考試組織工作難度、提高工作效率,使考試趨于更公證、更客觀,又可減少紙張浪費,保護森林資源。
2 開發(fā)環(huán)境、模式及通訊協(xié)議(Development environment,mode and communicationprotocol)
開發(fā)環(huán)境:Visual Basic.NET、VB.NET采用面向對象的程序設計思想,能把復雜的程序設計問題分解為一個個能夠完成獨立功能的相對簡單的對象集合。
運行環(huán)境:WindowsXP及以上操作系統(tǒng)。
開發(fā)模式:C/S模式,其特點之一是能夠減少網(wǎng)絡流量,提高事物處理速度。
通訊協(xié)議:TCP/IP協(xié)議,TCP/IP協(xié)議是Internet網(wǎng)最重要的協(xié)議,將VB提供的Winsock控件用在TCP/IP的基礎上進行網(wǎng)絡通信,在開始數(shù)據(jù)傳輸之前,用戶必須先建立TCP連接,可以方便快捷地與遠程計算機建立連接,進行數(shù)據(jù)的傳輸[1-3]。
3 系統(tǒng)設計與數(shù)據(jù)庫實現(xiàn)(Design and implementation of database systems)
3.1 系統(tǒng)整體設計
整個考試系統(tǒng)包括兩個子系統(tǒng)(圖1),主控端、被控端,數(shù)據(jù)在兩個子系統(tǒng)之間流轉(圖2)。學生端主要是學生用來輸入基本信息、抽題、答題、發(fā)送答案;主控端主要用于答案回收、考務管理、檔案生成、大部分數(shù)據(jù)通過機房局域網(wǎng)傳送,方便、安全、準確、高效。
3.2 系統(tǒng)數(shù)據(jù)庫的實現(xiàn)
本網(wǎng)絡考試系統(tǒng)基于C/S模式,整個系統(tǒng)通訊采用Winsock技術,其后臺數(shù)據(jù)庫為由Access建立的關系型數(shù)據(jù)庫格式。如果考生多、信息量大、要求高效的數(shù)據(jù)處理,可將Access數(shù)據(jù)庫升級到SQL數(shù)據(jù)庫系統(tǒng)中,以增強數(shù)據(jù)庫訪問效率和安全性。
3.2.1 關系型數(shù)據(jù)庫的實現(xiàn)
Access就是關系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲和檢索。其優(yōu)點在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報表用于打印或輸出數(shù)據(jù)庫中的信息。Access作為關系數(shù)據(jù)庫開發(fā),可以在一個數(shù)據(jù)包中同時擁有桌面數(shù)據(jù)庫的便利和關系數(shù)據(jù)庫的強大功能;可以提供了數(shù)據(jù)存儲庫,可以使用桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡文件服務器,與其他網(wǎng)絡用戶共享數(shù)據(jù)庫。
3.2.2 系統(tǒng)用ODBC連接數(shù)據(jù)庫(圖3)
由于該系統(tǒng)采用了較好的服務器/客戶機模式,利用計算機上的ODBC(開放式數(shù)據(jù)庫互聯(lián),目前國際上通用的數(shù)據(jù)庫訪問標準)。配置和管理的工具,就可以定制使用ODBC來連接數(shù)據(jù)庫,其連接過程為:(1)VB程序指定DSN名稱;(2)ODBC數(shù)據(jù)源解析DSN名稱;(3)客戶機解析數(shù)據(jù)庫服務器名稱;(4)數(shù)據(jù)庫服務器驗證DSN中的用戶名和密碼。
3.3 系統(tǒng)主要功能模塊及關鍵技術實現(xiàn)
3.3.1 系統(tǒng)模塊
本考試系統(tǒng)主要有:(1)用戶基本信息管理模塊:主要記錄學生及教務人員的代號、姓名、班級等基本信息;(2)試卷管理模塊:系統(tǒng)記錄考生抽到試卷的題目、題數(shù)及考生答案及試卷評閱、試題得分等信息;(3)數(shù)據(jù)庫管理模塊:由基本信息庫、試卷信息庫、成績庫、教務庫組成;(4)抽題模塊:有固定抽取套題、隨機產生套題、恢復上一次考試套題等多種方式;(5)用戶管理、權限設置模塊:為學生、考務人員、管理員等不同用戶提供不同的使用權限;(6)網(wǎng)絡通信模塊:利用Winsock控件進行通信,測試當前網(wǎng)絡狀態(tài),主控端接收由學生端發(fā)出的數(shù)據(jù)庫;(7)學生答題模塊:學生對所抽到的套題進行解答;(8)閱卷模塊:分主觀題、客觀題評閱,客觀題評閱由計算機自動完成并同時建立相應數(shù)據(jù)庫,主控端評分由考務人員輔助完成;(9)報表生成模塊:系統(tǒng)最后生成含有基本信息、試卷信息、成績信息組成的報表,可打印、存檔;(10)時間控制模塊:為整個考試過程提供規(guī)定的時間計時器,學生在考試時間用完時尚未交卷者將激活強制交卷程序;(11)檔案生成模塊:將所有考試信息存檔,以備參考與檢查、成績錄入、檔案生成。endprint
3.3.2 主要功能的實現(xiàn)
(1)系統(tǒng)主控端組成
(2)試卷及題庫管理模塊功能的實現(xiàn)
“申請試卷”按鈕代碼
Dim sql$
On Error GoTo netyn
If Text1.Text = "" Then
Text1.Text = ""
Text1.SetFocus
MsgBox "您提交的查詢值不合法,請重新輸入! 請檢查是否為空值。"
Exit Sub
End If
Data1.DatabaseName = ("U:\ksxt_ksjh\ksxt_ksjh_a1_97_mi.mdb") '讀數(shù)據(jù)庫
Data1.Connect = ";pwd=" & "visualc#2006"
sql = "Select * From datadb1 Where 準考證號= '" & Trim(Text1.Text) & "'"
Data1.RecordSource = sql
Data1.Refresh
If Data1.Recordset.EOF Then
xx1 = MsgBox("數(shù)據(jù)庫查詢失敗。你的身份不合法,不能參加本次考試。", 64, "申請考試")
Data1.RecordSource = "datadb1"
Data1.Refresh
Exit Sub
End If
s() = Split(Text8.Text, ".")
Text10.Text = s(0) & s(1) & s(2)
' Me.Hide
' Form8.Show
'Unload Me
'MsgBox "成功"
Me.Hide
frmdd.Show
frmdd.Label2.Caption = "1"
frmdd.label1.Caption = "您提交的數(shù)據(jù)正發(fā)送至考試系統(tǒng)主控端以驗證身份,請稍后... ..."
Exit Sub
netyn: MsgBox "考試系統(tǒng)主控端考試計劃文件在網(wǎng)絡上未找到,請檢查,是否:a.網(wǎng)絡連通,網(wǎng)內計算機可互訪;b.主控端打開;c.考試文件存在并合法;d.數(shù)據(jù)庫被加密。"
End Sub
(3)網(wǎng)絡通信模塊功能實現(xiàn)
測試當前網(wǎng)絡狀態(tài),主控端接收由學生端發(fā)出的數(shù)據(jù)庫。利用Winsock控件進行通信。只需要通過設置Winsock控件的屬性并調用其方法就可以輕易連接到另外一臺機器上去,并且還可進行雙向數(shù)據(jù)交換。在TCP應用中,為了建立一個網(wǎng)絡連接實例(Instance)的服務器端,只需設置本地服務端口號,然后服務器調用方法Listen進入阻塞狀態(tài),等待來自客戶的連接請求。于此對應的客戶端不但要將Winsock的屬性RemoteHost置為服務器的名稱(IP地址或網(wǎng)絡代號),還應設置服務器所監(jiān)聽的相應服務的端口號(RemotePort),然后調用方法Winsock,Connect向服務器發(fā)出請求。服務器接收到客戶請求時,事件ConnectionRequest將被觸發(fā)。如服務器愿意提供服務,則可調用Accept方法接受連接。一旦連接建立,兩端均可使用SendData或GetData進行數(shù)據(jù)的發(fā)送或接收。事件DataArrival將在另一端數(shù)據(jù)準備就緒時被觸發(fā)[4]。
(4)時間控制模塊功能模塊實現(xiàn)[5]
為整個考試過程提供規(guī)定的時間計時器。學生在考試時間用完時尚未交卷者將激活強制交卷程序。系統(tǒng)日期的顯示是通過對標簽的CAPTION屬性賦予日期函數(shù)實現(xiàn)的,相關代碼如下:
Private Sub Form_Load()
Text1(0).Text=""
Text1(1).Text=""
Label18.Caption=Date
a=100
End Sub
系統(tǒng)時間是通過一個計時器控件timer1和一個保存時間的全局變量a實現(xiàn)的,a初始化為考試所用分鐘數(shù),即上述代碼中的a=100,計時器控件的interval屬性設置成60000,每分鐘計時一次。實現(xiàn)代碼如下:
Private Sub Timer1_Timer()
a=a-1;
Text1.Text=a;
If a=5 Then
MsgBox "只剩余5 分鐘,請準備交卷"
If a=1 Then MsgBox "考試時間到請馬上交卷"
If a=0 Then End
End If
End Sub
4 結論(Conclusion)
通過采用這幾個模塊,基本上可以控制考試系統(tǒng)的安全性、可靠性,可以達到考試系統(tǒng)的智能特性。最大可能的利用程序來完成考試過程中需要人工來完成的工作,真正的解決傳統(tǒng)考試模式所帶來的弊端。達到設計時的目的,實現(xiàn)了考試信息化、高效化、經(jīng)濟化、科學化。這種考試方法不僅實現(xiàn)了無紙化,還使學生增加了上機練習與模擬的機會,提高了計算機應用能力。
參考文獻(References)
[1] 譚浩強,等.Visual Basic程序設計[M].北京:清華大學出版社,2005.
[2] 鄧緋,涂曉英.使用Winsock控件構建基于C/S模式的網(wǎng)絡考試系統(tǒng)[J].福建電腦,2010,(9);158-159.
[3] 鄧緋,陳印.使用開發(fā)服務器/客戶端程序[J].四川職業(yè)技術學院學報,2004,14(4):105-107.
[4] 龔安.基于VB的Winsock控件實現(xiàn)C/S網(wǎng)絡通信[J].科學技術與工程,2006,6(10):1447-1449.
[5] 陳海蕊.基于VB的學生考試系統(tǒng)的設計與實現(xiàn)[J].福建電腦,2009,(3):120.
作者簡介:
桑娟萍(1965-),女,碩士,教授.研究領域:林業(yè)信息技術應用教學及技術研究.
汪 雁(1981-),女,本科,助教.研究領域:軟件開發(fā)與設計.
張小東(1982-),男,本科,講師.研究領域:網(wǎng)絡工程.endprint