王曉東
摘 要: 隨者氣象事業(yè)的進(jìn)步和計(jì)算機(jī)的普及,一些傳統(tǒng)的紙、筆考試學(xué)習(xí)形式變得效率低下,計(jì)算機(jī)答題形式將會成為未來學(xué)習(xí)考試的主要方式。地面氣象業(yè)務(wù)考試系統(tǒng)是使用 Microsoft公司的 VB.NET開發(fā)工具,結(jié)合Access 2003數(shù)據(jù)庫開發(fā)的,該軟件能夠?qū)崿F(xiàn)考試的自動選題、答題、記分、計(jì)時(shí)基本功能。
關(guān)鍵詞: 計(jì)算機(jī);數(shù)據(jù)庫;考試
1 緒論
氣象業(yè)務(wù)工作是一項(xiàng)對專業(yè)知識有較高要求的工作,地面氣象觀測員需要經(jīng)常學(xué)習(xí)各種相關(guān)業(yè)務(wù)知識,才能更好的勝任地面觀測工作,為此氣象業(yè)務(wù)各級部門非常重視業(yè)務(wù)學(xué)習(xí),各級領(lǐng)導(dǎo)想方設(shè)法加強(qiáng)對觀測員進(jìn)行學(xué)習(xí)培訓(xùn),并且經(jīng)常會組織業(yè)務(wù)知識考試,督促觀測象員的學(xué)習(xí),但考試基本還是傳統(tǒng)的手工紙、筆答題方式,這種考試方式需要組織者敏思苦想地出題,還要打印試卷、手寫答題、最后載閱卷評分,共四個(gè)步驟,浪費(fèi)出題人和答題人的時(shí)間,學(xué)習(xí)效率不高,還會造成紙張的浪費(fèi)。計(jì)算機(jī)模擬考試相對于紙面考試而言具有:省時(shí),省力,存儲方便等優(yōu)點(diǎn),所以已經(jīng)被越來越多地應(yīng)用到各種考試當(dāng)中。因此,開發(fā)這樣一套系統(tǒng)軟件成為很有必要的事情。
2 項(xiàng)目的功能需求分析
考試系統(tǒng)首先要有自動出題的功能,并且每次出題都不能相同,為發(fā)揮計(jì)算機(jī)答題優(yōu)勢,目前系統(tǒng)只設(shè)計(jì)了判斷題和單項(xiàng)選擇題,(1)答題功能:用戶只需要用鼠標(biāo)選擇答案,并對答過的題目進(jìn)行標(biāo)識,在交卷前可以檢查答過的題目并對未答的題目補(bǔ)答,答完題后在確認(rèn)交卷后方可交卷,并且一次考試中只能進(jìn)行1次交卷,(2)記分功能(3)答完題并交卷后,顯示錯誤題目標(biāo)識功能,同時(shí)顯示正確答案,方便答題人通過答題系統(tǒng)進(jìn)行學(xué)習(xí)。(4)計(jì)時(shí)功能。
3 編程環(huán)境的選擇
本系統(tǒng)在WINDOWS環(huán)境下運(yùn)行,使用的設(shè)計(jì)工具軟件為VB.NET。該編程工具軟件,包括一組豐富的類,能夠編寫復(fù)雜的應(yīng)用程序,允許使用WINDOWS窗體創(chuàng)建應(yīng)用程序和用戶界面,并且可以使用ADO.NET訪問數(shù)據(jù)。ADO.NET是Microsoft.NET平臺中提供數(shù)據(jù)訪問服務(wù)的接口,是數(shù)據(jù)庫應(yīng)用程序和數(shù)據(jù)來源見的溝通橋梁。通過這個(gè)接口可以方便地訪問數(shù)據(jù)庫。使用的數(shù)據(jù)庫軟件工具為ACCESS數(shù)據(jù)庫。
4 數(shù)據(jù)庫設(shè)計(jì)
4.1 數(shù)據(jù)庫構(gòu)成
本系統(tǒng)設(shè)計(jì)一個(gè)“題庫”數(shù)據(jù)庫,數(shù)據(jù)庫包含2個(gè)數(shù)據(jù)表,分別為“選擇題表”、“判斷題表”
4.2 數(shù)據(jù)庫的維護(hù)
可以設(shè)計(jì)專門的表單界面,然后把數(shù)據(jù)庫綁定到窗體控件,通過控件來完成對數(shù)據(jù)庫的維護(hù),也可直接在ACCESS數(shù)據(jù)庫軟件中打開數(shù)據(jù)庫表,進(jìn)行數(shù)據(jù)庫的維護(hù)。
5 設(shè)計(jì)實(shí)現(xiàn)
(1)通過VB.NET創(chuàng)建窗體,然后在窗體中添加相應(yīng)的控件。
(2)建立系統(tǒng)與數(shù)據(jù)庫的連接,為增加系統(tǒng)靈活性,采用了通過代碼來連接數(shù)據(jù)庫的方法,主要用了ADO.NET名稱空間中的OleDbconnection、OleDbDataAdapter、DataSet類,為此使用前必須導(dǎo)入System.Data.OleDb、System.Data和System.Windows.Forms名稱空間。當(dāng)主窗體被加載時(shí),建立起數(shù)據(jù)庫與系統(tǒng)的連接,在連接數(shù)據(jù)庫的同時(shí),還利用了SQL語句中的Select語句,從題庫數(shù)據(jù)庫中的 “選擇題”和“判斷題” 兩個(gè)數(shù)據(jù)表選取了20道判斷題,40道選擇題。每次選取的題目時(shí),使用了隨機(jī)函數(shù)Randomize()和然Rnd(),這樣可使每次選到的題目各不相同。分?jǐn)?shù)設(shè)置:選擇題2分,判斷題1分,60道題共100分。利用Timer控件進(jìn)行記時(shí)控制。選項(xiàng)按鈕使用Button控件。
(3)系統(tǒng)主界面如下圖,這是交卷后的界面,界面中顯示有答對的題目,顯示顏色是綠色,也有答錯的題目,顯示的是紅色,還有答錯題目的正確答案。左上角有得分和答題時(shí)間,交卷按鈕此時(shí)已隱藏。
(4)設(shè)計(jì)關(guān)鍵代碼。連接數(shù)據(jù)庫代碼如下:
Public Sub GetConnected() '創(chuàng)建一個(gè)OleDbConnection
dim strCon As String = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =C:\\Documents and Settings\\Administrator\\My Documents\\題庫.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = strCon
Randomize()
Dim strCom1 As String = "SELECT top 40 * FROM 選擇題 ORDER BY rnd(-(編號+" & Rnd()& "))" Dim strCom As String = "SELECT top 20 * FROM 判斷題 ORDER BY rnd(-(編號+" & Rnd()& "))"
myDataSet =New DataSet()
myConn.Open()
Dim myCommand1 As OleDbDataAdapter = New OleDbDataAdapter(strCom1,myConn)
Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter(strCom,myConn)
myCommand1.Fill(myDataSet,"選擇題")
myCommand.Fill(myDataSet,"判斷題")
myConn.Close()
End Sub
數(shù)據(jù)庫數(shù)據(jù)與控件的綁定代碼如下:
Label2.DataBindings.Add(New Binding("Text",Me.myDataSet,"判斷題.題目內(nèi)容"))
Label11.DataBindings.Add(New Binding("Text",Me.myDataSet,"判斷題.正確答案"))
Label1.DataBindings.Add(New Binding("Text",Me.myDataSet,"判斷題.編號"))
Label5.DataBindings.Add(New Binding("Text",Me.myDataSet,"判斷題.備選答案A"))
Label6.DataBindings.Add(New Binding("Text",Me.myDataSet,"判斷題.備選答案B"))
Label4.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.題目內(nèi)容"))
Label3.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.編號"))
Label7.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.備選答案A"))
Label8.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.備選答案B"))
Label9.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.備選答案C"))
Label10.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.備選答案D"))
Label12.DataBindings.Add(New Binding("Text",Me.myDataSet,"選擇題.正確答案"))
6 結(jié)語
通過對地面觀測員學(xué)習(xí)考試系統(tǒng)較長時(shí)間測試,軟件在WindowsXP環(huán)境下運(yùn)行穩(wěn)定,可靠,基本能實(shí)現(xiàn)項(xiàng)目要求的主要功能,但在界面美觀方面,和增加題型方面有待完善。
參考文獻(xiàn):
[1]黃淼云,王永毅.Visual Basic.NET 管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).北京:清華大學(xué)出版社,2002.
[2]吳逸賢,吳目誠.精彩Visual Basic.NET 2003程序設(shè)計(jì).北京:中國水利水電出版社,2005.
[3]巴市業(yè)務(wù)科,地面氣象業(yè)務(wù)學(xué)習(xí)題庫.2010.