計(jì)算機(jī)論文試題庫(kù)管理系統(tǒng)畢業(yè)論文.doc
《計(jì)算機(jī)論文試題庫(kù)管理系統(tǒng)畢業(yè)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)論文試題庫(kù)管理系統(tǒng)畢業(yè)論文.doc(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 試題庫(kù)管理系統(tǒng) ( 摘要:隨著計(jì)算機(jī)辦公自動(dòng)化程度的不斷提高,開發(fā)各種數(shù)據(jù)庫(kù)管理應(yīng)用軟件用于各種工作中能有效地提高工作效率,節(jié)省時(shí)間,能使學(xué)校的教學(xué)工作上一個(gè)新的臺(tái)階。傳統(tǒng)的人工命題形成試卷,往往會(huì)出現(xiàn)大量的重復(fù)勞動(dòng),并且形成的試卷因出卷人的不同其質(zhì)量會(huì)差距很大,這樣一來(lái)會(huì)直接導(dǎo)致考試結(jié)果波動(dòng)很大,使考試的科學(xué)考評(píng)效果大幅度降低,這也往往引起學(xué)生和教師的廣泛議論和關(guān)注,解決這一早就出現(xiàn)的問題一直是許多人的迫切愿望,由于各種考試名目繁多,試卷內(nèi)容廣雜,使出卷難度加大,要出一份好試卷更是難上加難;另外,許多基礎(chǔ)學(xué)科內(nèi)容長(zhǎng)期不變或基本不變,這就使建立試題庫(kù)成為
2、非常必要和可能。通過篩選、總結(jié)、修正,使以往大量?jī)?yōu)秀的試題進(jìn)入試題庫(kù),繼承了前人辛勤的勞動(dòng)和智慧的結(jié)晶,也順應(yīng)了標(biāo)準(zhǔn)化命題的要求。 本系統(tǒng)是在WINDOWS98平臺(tái)上,以Visual Basic6.0為工具,利用OLE等技術(shù)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)試題庫(kù)管理系統(tǒng)。系統(tǒng)設(shè)有特權(quán)用戶(Supervisor),對(duì)系統(tǒng)的所有資源實(shí)施管理;一般用戶只可選擇訪問已經(jīng)授權(quán)可訪問的資源。為試卷選題可通過人工進(jìn)行,也可給出各種具體的條件,然后由程序自動(dòng)來(lái)選定完成。試卷內(nèi)容是文本文檔處理的各種數(shù)據(jù)。 關(guān)鍵詞:OLE;試題庫(kù);試卷生成;試卷管理 中圖分類號(hào):TP311 應(yīng)用Visual Basic6.0可視化編
3、成工具開發(fā)軟件速度快,界面實(shí)現(xiàn)簡(jiǎn)單方便,具有高可靠性、便于維護(hù)調(diào)試和高效率等突出優(yōu)點(diǎn)。在深入學(xué)習(xí)和研究了Visual Basic6.0這一可視化繼承開發(fā)環(huán)境的基礎(chǔ)上和在參閱了大量文獻(xiàn)資料的基礎(chǔ)上,同時(shí)了解到我國(guó)大、中學(xué)校錄取新學(xué)生、考察學(xué)生學(xué)習(xí)情況的手段主要還是通過考試,而每次考試,都要花費(fèi)老師大量的心血去篩選試題、組織試卷、整理試題答案等。根據(jù)這些情況,我們開發(fā)設(shè)計(jì)了該《試題庫(kù)管理系統(tǒng)》應(yīng)用軟件,以實(shí)現(xiàn)課程的試題庫(kù)管理和處理,相信它必將在教學(xué)中發(fā)揮積極的作用。 1. 概述 1.1 研究背景 1. 隨著計(jì)算機(jī)辦公自動(dòng)化程度的不斷提高,開發(fā)各種數(shù)據(jù)庫(kù)管理應(yīng)用軟件用于
4、各種工作中能有效地提高工作效率,節(jié)省時(shí)間,能使學(xué)校的教學(xué)工作上一個(gè)新的臺(tái)階。傳統(tǒng)的人工命題形成試卷,往往會(huì)出現(xiàn)大量的重復(fù)勞動(dòng),并且形成的試卷因出卷人的不同其質(zhì)量會(huì)差距很大,這樣一來(lái)會(huì)直接導(dǎo)致考試結(jié)果波動(dòng)很大,使考試的科學(xué)考評(píng)效果大幅度降低,這也往往引起學(xué)生和教師的廣泛議論和關(guān)注,解決這一早就出現(xiàn)的問題一直是許多人的迫切愿望,由于各種考試名目繁多,試卷內(nèi)容廣雜,使出卷難度加大,要出一份好試卷更是難上加難;另外,許多基礎(chǔ)學(xué)科內(nèi)容長(zhǎng)期不變或基本不變,這就使建立試題庫(kù)成為非常必要和可能。通過篩選、總結(jié)、修正,使以往大量?jī)?yōu)秀的試題進(jìn)入試題庫(kù),繼承了前人辛勤的勞動(dòng)和智慧的結(jié)晶,也順應(yīng)了標(biāo)準(zhǔn)化命題的要求。
5、 2. 該試題庫(kù)管理系統(tǒng)由本人和司秀華同學(xué)共同開發(fā)完成。所有的源代碼都調(diào)試運(yùn)行通過,達(dá)到了所有的預(yù)期目標(biāo)。優(yōu)秀的試題可進(jìn)入試題庫(kù)直接參與以后的試題而生成新的試卷??芍苯訌闹谐槿≡嚲恚ū匾獣r(shí)可稍作修改)用于考試。 1.2 本論文所做的工作 該試題庫(kù)系統(tǒng)是一個(gè)文史類試題庫(kù)管理系統(tǒng),即:該系統(tǒng)可由特權(quán)用戶(supervisor)為課程創(chuàng)建其試題庫(kù)。系統(tǒng)設(shè)有特權(quán)用戶(supervisor)對(duì)系統(tǒng)的所有資源實(shí)施管理,同時(shí)管理用戶群:向系統(tǒng)添加用戶、撤銷用戶、分配向系統(tǒng)注冊(cè)進(jìn)入的口令和用戶名。而一般用戶只可選擇訪問已經(jīng)授權(quán)可訪問的資源。以一般用戶身份向系統(tǒng)注冊(cè)進(jìn)入后,“用戶管理”菜單項(xiàng)為不可見項(xiàng)。為試
6、卷選題可通過人工進(jìn)行,也可給出各種具體的條件,然后由程序自動(dòng)來(lái)選定完成。選題完成后可對(duì)所有試題進(jìn)行預(yù)覽并可再次決定各題的去留,然后在此基礎(chǔ)上再次進(jìn)行管理,直到滿意為止。能為多門課程創(chuàng)建試題庫(kù),并對(duì)其試題庫(kù)進(jìn)行維護(hù)管理。試題內(nèi)容可以是文本文檔所能處理接受的文字、數(shù)字、字母等數(shù)據(jù)。試卷最后生成于文本文檔中。自動(dòng)保存歷史試卷而逐漸形成試卷庫(kù),為直接抽取試卷(必要時(shí)可稍作修改)用于考試提供了可能。 本系統(tǒng)的一級(jí)主功能菜單有:試題管理 試卷管理 用戶管理 幫助 退出系統(tǒng) 。二級(jí)主功能菜單有:添加試題 瀏覽試題 取消選中標(biāo)記 輸入選題條件 自動(dòng)選題 試卷預(yù)覽 生成試卷 添加用戶
7、 刪除用戶。 單個(gè)試題有它的單個(gè)的價(jià)值和意義,而試卷有它的整體價(jià)值和意義;根據(jù)需要可以人工選定試題,然后生成試卷。 本系統(tǒng)主要有以下幾個(gè)突出的特點(diǎn): 1.能自動(dòng)為課程創(chuàng)建試題庫(kù),并進(jìn)行維護(hù)管理。 2.系統(tǒng)是開放的。用戶可向系統(tǒng)內(nèi)添加試題,可對(duì)其中的試題進(jìn)行修改,也可對(duì)其中的試題進(jìn)行刪除操作。 3.選題可手工進(jìn)行,也可根據(jù)給定的條件由程序自動(dòng)完成。 4.利用試題庫(kù)中試題自動(dòng)生成試卷。 在試題內(nèi)容輸入后,自動(dòng)生成文本文檔。 1.3 開發(fā)本系統(tǒng)的軟件和硬件環(huán)境 硬件環(huán)境: 兼容機(jī) Pentium 4/256M RAM/40G/17’ 軟件環(huán)境:
8、 操作系統(tǒng):Microsoft Windows XP 開發(fā)工作:Visual Basic6.0 2. 通用試題庫(kù)系統(tǒng)需求分析 按照軟件工程基本理論要求,軟件開發(fā)以前必須向用戶反復(fù)進(jìn)行需求調(diào)查并形成需求規(guī)格說(shuō)明書,在軟件開發(fā)中仍要繼續(xù)進(jìn)行,并對(duì)已經(jīng)形成的需求規(guī)格說(shuō)明進(jìn)行修改和補(bǔ)充,直到軟件產(chǎn)品開發(fā)完成為止。下面是本系統(tǒng)已經(jīng)形成的最終的需求規(guī)格說(shuō)明書。 2.1需求規(guī)格說(shuō)明 1.為有效規(guī)范管理考試及試卷命題需開發(fā)該系統(tǒng)。 2.設(shè)定特權(quán)用戶(supervisor)來(lái)統(tǒng)一管理用戶群,給他們分配使用權(quán)限和口令, 通過對(duì)使用權(quán)限
9、的控制來(lái)限制某些用戶使用課程的試題庫(kù)。若用戶口令丟失可由特權(quán)用戶解鎖并重新分配口令;用戶在合法進(jìn)入系統(tǒng)后能修改自己的口令。特權(quán)用戶(supervisor)可從系統(tǒng)中撤銷其他用戶,也可向系統(tǒng)中添加用戶;特權(quán)用戶(supervisor)若以其他用戶名進(jìn)入系統(tǒng)“用戶管理”主菜單項(xiàng)不可見。 3.根據(jù)需要能為課程創(chuàng)建試題庫(kù)。每試題均有大題號(hào)、難度系數(shù)、知識(shí)點(diǎn)。 4.每題及其相應(yīng)屬性按題型由手工輸入來(lái)完成。 5.試題內(nèi)容可以是多樣化的各種文字、字母、數(shù)字以及各種符號(hào)等等。 6.能瀏覽、修改、刪除系統(tǒng)內(nèi)任一所有試題。 7.試題選題分兩種: a).所有試題均有人工選定。 b).在人工選定試題
10、的基礎(chǔ)上,由系統(tǒng)按用戶給出的選題條件自動(dòng)隨機(jī)補(bǔ)足剩余試題。試題條件包括題型、知識(shí)點(diǎn)、難度系數(shù)。其中題型和題數(shù)必須給出,知識(shí)點(diǎn)或難度系數(shù)可給出也可不給出,若不給出,則程序認(rèn)定該項(xiàng)不受限制和約束,即任意數(shù)據(jù)皆可。 8.在人工選定試題的過程中,隨時(shí)可獲知已選定試題的數(shù)量等匯總情況。 9.試題選定后可進(jìn)行預(yù)覽(對(duì)所有已經(jīng)選定的試題),預(yù)覽過程中可取消任意題 的選中標(biāo)記,經(jīng)調(diào)整后最后結(jié)束選題。 10.試題選定按給定的難度比以及知識(shí)點(diǎn)覆蓋面要求進(jìn)行。在由程序自動(dòng)按用戶給出的選題條自動(dòng)隨機(jī)補(bǔ)足剩余試題該情況中,可通過對(duì)難度系數(shù)和知識(shí)點(diǎn)的輸入的控制來(lái)實(shí)現(xiàn)這一要求。 該系統(tǒng)完全按照以上形成的需求規(guī)格說(shuō)
11、明書開發(fā)設(shè)計(jì)完成,并達(dá)到了所有預(yù)期的目標(biāo)。 2.2建立UML模型 試題庫(kù)系統(tǒng)用例圖 用戶管理 添加用戶 撤銷用戶 試題管理 試卷管理 輸入選題條件 自動(dòng)選題 生成試卷 添加試題 瀏覽試題 取消選中標(biāo)記 試卷預(yù)覽 人工選題 特權(quán)用戶 普通用戶 (特權(quán)用戶) 2.3功能級(jí)數(shù)據(jù)流圖 用戶 驗(yàn)證 口令 顯示出錯(cuò)信息 用戶 用戶名 口 令 添加 試題 輸入選題條件 自 動(dòng) 選 題 生 成 試 卷
12、試 卷 預(yù) 覽 瀏覽 試題 人工 試題 取消選中標(biāo)記 選 題 不 滿 意 3. 試題庫(kù)系統(tǒng)功能及試題庫(kù)的設(shè)計(jì) 3.1系統(tǒng)總體結(jié)構(gòu) 用 戶 名 庫(kù) 知識(shí) 點(diǎn) 庫(kù) 試題庫(kù) 試 卷 用戶管理模式 添加試題模式 題庫(kù)維護(hù)模式 自動(dòng)抽取試題模式 生成試卷模式 主菜單控制界面 數(shù)據(jù)庫(kù) 功能實(shí)現(xiàn)層 第一層是數(shù)據(jù)庫(kù),即試題庫(kù)
13、的底層,由知識(shí)點(diǎn)庫(kù)、用戶名庫(kù)、試題庫(kù)組成。其中知識(shí)點(diǎn)庫(kù)主要為用戶輸入數(shù)據(jù)或查詢提供基礎(chǔ)幫助數(shù)據(jù),它存儲(chǔ)的主要內(nèi)容是課程卡是的知識(shí)要點(diǎn),知識(shí)點(diǎn)代碼的劃分由章到節(jié)再到具體的節(jié)內(nèi)的點(diǎn)。它由6位數(shù)構(gòu)成;第一個(gè)兩位代表章,第二個(gè)兩位代表節(jié),最后兩位落實(shí)到具體的節(jié)內(nèi)的點(diǎn)。試題庫(kù)用來(lái)存放試題的屬性及內(nèi)容。 第二層是功能實(shí)現(xiàn)層。系統(tǒng)的所有功能都以模塊的形式在第二層中實(shí)現(xiàn)。功能模塊包括用戶管理模塊、添加試題模塊、題庫(kù)維護(hù)模塊、自動(dòng)抽取試題模塊、生成試卷模塊、試卷的編輯模塊。 第三層是面向用戶的人機(jī)交互界面,主要由主菜單系統(tǒng)構(gòu)成。 除此之外,系統(tǒng)還設(shè)計(jì)了比較完善的幫助信息系統(tǒng)。 3.2系統(tǒng)的功能結(jié)構(gòu) 試
14、題庫(kù)管理系統(tǒng)各功能以菜單的形式呈現(xiàn)給用戶: 試題管理 試卷管理 用戶管理 幫助 退出系統(tǒng) 添加用戶 刪除用戶 輸入選題條件 自動(dòng)選題 試卷預(yù)覽 生成試卷 添加試題 瀏覽試題 取消選中標(biāo)記 各功能模塊的簡(jiǎn)介: 1.添加試題 向選定的試題庫(kù)試題表內(nèi)添加試題。 在“添加試題”中,將數(shù)據(jù)輸入足夠大的空白方塊內(nèi),用戶在輸入試題內(nèi)容后,點(diǎn)擊確定內(nèi)容最后保存在文檔中。[ 圖示1 ] 2.瀏覽試題 順序上下翻閱每一道試題,進(jìn)入瀏覽界面以前,先要給出試題過濾條件。
15、 [ 圖示2 ] 圖1.添加試題界面 圖2.進(jìn)入“瀏覽試題”狀態(tài)前首先看到以下界面: 3.取消選中標(biāo)記 取消所有人工或程序加在試題上的選中標(biāo)記。 4.添加用戶 由特權(quán)用戶向系統(tǒng)中添加新注冊(cè)用戶名,并分配口令。 5.撤銷用戶 由特權(quán)用戶從系統(tǒng)中撤銷某一注冊(cè)用戶名,以后系統(tǒng)將拒絕以該用戶名向系統(tǒng)注冊(cè)進(jìn)入。 6.選題條件:在人工選定選題的基礎(chǔ)上由系統(tǒng)按要求自動(dòng)隨機(jī)補(bǔ)足剩余試題而要求系統(tǒng)自動(dòng)選題時(shí)要給出各項(xiàng)具體數(shù)據(jù)要求,其中知識(shí)點(diǎn)和難度系數(shù)可不給出外,其余各項(xiàng)必須給出,未給
16、出的項(xiàng)即認(rèn)為任意數(shù)據(jù)皆可(程序?qū)礋o(wú)法任何限制處理);知識(shí)點(diǎn)上限是用來(lái)限制出題范圍的,主要是為了適應(yīng)期中考試和期末考試(知識(shí)點(diǎn)上限不輸入即可)不同的需要,上限知識(shí)點(diǎn)不包括在出題知識(shí)點(diǎn)范圍之內(nèi)。輸入所有要求后,點(diǎn)擊“結(jié)束”命令結(jié)束輸入,然后點(diǎn)擊“自動(dòng)選題”即可開始自動(dòng)選題,自動(dòng)選題將嚴(yán)格按照如上輸入的要求數(shù)據(jù)進(jìn)行,若沒有符合條件的題則不選,最后等待進(jìn)行人工調(diào)整。[ 圖示3 ] 圖3.輸入選題條件界面 7.自動(dòng)選題 按“輸入選題條件”中給出的條件隨機(jī)地抽取試題。 8.生成試卷 將選定的試題自動(dòng)生成文本文檔。 9.將已選定的試題按成卷的順序顯示出來(lái)供用戶翻閱瀏覽,并可再次決定各題的
17、去留。 10.退出系統(tǒng) 退出試題庫(kù)系統(tǒng),回到操作系統(tǒng)環(huán)境。 3.3 試題由人工選定 人工選定試題在“瀏覽試題”功能中進(jìn)行,該功能的操作界面是所有操作界面中比較復(fù)雜的一個(gè),該功能也是本試題庫(kù)系統(tǒng)所有功能中使用較為頻繁的一個(gè)功能。刪除試題這一功能就在該界面中進(jìn)行,這樣一來(lái)就不必再另外創(chuàng)建一個(gè)窗體來(lái)實(shí)現(xiàn)它。 點(diǎn)擊“上一題”、“下一題”命令按鈕即可上下翻閱每一題,點(diǎn)擊“選中”即可選中當(dāng)前題、左上角小方框內(nèi)即出現(xiàn)“+”符號(hào),表現(xiàn)當(dāng)前題已經(jīng)加上選中標(biāo)記“+” ;再點(diǎn)擊“選中”一次則取消當(dāng)前題已經(jīng)加上的選中標(biāo)記“+”。 3.4 數(shù)據(jù)庫(kù)設(shè)計(jì) 試題庫(kù)采用ACCESS數(shù)據(jù)庫(kù)系統(tǒng)。
18、1.試題庫(kù)結(jié)構(gòu): xishu 難度系數(shù) integer tag 選題狀態(tài) text 1 tag=“+”時(shí),說(shuō)明該題處于選中狀態(tài),否則處于非選中狀態(tài) zhishidian 知識(shí)點(diǎn)代號(hào) text 50 datihao 大題號(hào) text 50 題型代碼,選題型后由程序自動(dòng)給出相應(yīng)的代碼 hao
19、 integer 2 在隨機(jī)選題開始前,由程序自動(dòng)填寫所有符合條件試題的序號(hào),用以和隨機(jī)數(shù)生成函數(shù)Rnd掛鉤 2. 知識(shí)點(diǎn)表 知識(shí)點(diǎn)表結(jié)構(gòu): zhishidian text 50 其內(nèi)容為:知識(shí)點(diǎn)代碼+知識(shí)點(diǎn)簡(jiǎn)單描述語(yǔ) 知識(shí)點(diǎn)的編碼: 知識(shí)點(diǎn)編碼采用6位數(shù)編碼,前兩位表示第幾章,中間兩位表示第幾節(jié), 最后兩位表示該節(jié)中考試知識(shí)的出處。例如:110521,它表示該題出自11章
20、 5節(jié)的21知識(shí)內(nèi)容處,這樣編碼使題庫(kù)程序控制選題章節(jié)便于實(shí)現(xiàn)。并可按 試題進(jìn)行排序。在輸入自動(dòng)選題條件時(shí),可由給出知識(shí)點(diǎn)來(lái)控制試題的具體出處, 同時(shí)可由給出知識(shí)點(diǎn)上限來(lái)控制試題選擇的連續(xù)范圍。期中考試試題范圍依此法 設(shè)定。 3.自動(dòng)選題條件表 表結(jié)構(gòu): datihao text 50 所屬大題題號(hào) tishu integer 選題個(gè)數(shù) zhishidian text 50 知
21、識(shí)點(diǎn)要求 xishu text 50 難度系數(shù) 4 .關(guān)鍵技術(shù)、難點(diǎn)及解決方案 1.本系統(tǒng)在不同盤符下,它的路徑也發(fā)生變化,因此程序讀取數(shù)據(jù)的來(lái)源也要同步 變化,這就要求DATA控件對(duì)數(shù)據(jù)庫(kù)、表的綁定必須動(dòng)態(tài)實(shí)現(xiàn),從而保證數(shù)據(jù)的來(lái) 源與課程保持一致。如可采用如下代碼實(shí)現(xiàn): Private Sub Form_Activate() Data1.DatabaseName = App.Path & "\tiku.mdb" Data1.Refresh End Sub 2.按用戶給出的條件,由程序自動(dòng)選題功能
22、的實(shí)現(xiàn) 算法描述:首先按試題條件表中第一個(gè)選題條件從試題表中按該條件過濾出符合條件的試題 子集。若過濾出的符合條件的試題數(shù)少于或等于條件中要求的題數(shù),則全部選中過濾出的試題; 若過濾出的符合條件的試題數(shù)多于條件中要求的題數(shù),則調(diào)用隨機(jī)函數(shù)Rnd隨機(jī)地選出該選題條件中題數(shù)值所要求的試題數(shù);然后按選題條件表中第二條件從試題表中過濾出符合該條件同時(shí)未加選中標(biāo)記的試題子集,從中選出該試題條件中題數(shù)值所要求的試題數(shù);然后按選題條件表中第三個(gè)條件 ……。依次進(jìn)行,直到按選題條件表中的所有條件選出所有的符合條件的試題為止,最后結(jié)束自動(dòng)選題。 算法的代碼實(shí)現(xiàn)如下: Load Form
23、11 Form11.Show Dim s As String s = Module1.s Data1.DatabaseName = App.Path & "\tiku.mdb" Data1.Refresh Data2.DatabaseName = App.Path & "\tiku.mdb" Data2.Refresh Dim i, j As Integer Do While Not Data1.Recordset.EOF If Len(Trim(s)) = 0 Then If IsNull(Data1.Recordset.xishu) Then
24、 If IsNull(Data1.Recordset.zhishidian) Then Data2.RecordSource = "select * from biao1 where (tag<>+ or isnull(tag))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & "" Else Data2.RecordSource = "select * from biao1 where (tag<>+ or isnull(tag
25、))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & " and trim(zhishidian) =" & Left(Trim(Data1.Recordset.zhishidian), 6) & "" End If Else If IsNull(Data1.Recordset.zhishidian) Then Data2.RecordSource = "select * from biao1 where (tag<>+ or isnul
26、l(tag))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & " and xishu=" & Trim(Data1.Recordset.xishu) & "" Else Data2.RecordSource = "select * from biao1 where (tag<>+ or isnull(tag))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & " and trim(zhishidian)
27、=" & Left(Trim(Data1.Recordset.zhishidian), 6) & " and xishu=" & Trim(Data1.Recordset.xishu) & "" End If End If Else If IsNull(Data1.Recordset.xishu) Then If IsNull(Data1.Recordset.zhishidian) Then Data2.RecordSource = "select * from biao1 whe
28、re trim(zhishidian) <" & Trim(s) & " and (tag<>+ or isnull(tag))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & "" Else Data2.RecordSource = "select * from biao1 where trim(zhishidian) <" & Trim(s) & " and (tag<>+ or isnull(tag))" & " and trim(datihao)=" & Trim(D
29、ata1.Recordset.datihao) & " and trim(zhishidian) =" & Left(Trim(Data1.Recordset.zhishidian), 6) & "" End If Else If IsNull(Data1.Recordset.zhishidian) Then Data2.RecordSource = "select * from biao1 where trim(zhishidian) <" & Trim(s) & " and (tag<>+ or isn
30、ull(tag))" & " and trim(datihao)=" & Trim(Data1.Recordset.datihao) & " and xishu=" & Trim(Data1.Recordset.xishu) & "" Else Data2.RecordSource = "select * from biao1 where trim(zhishidian) <" & Trim(s) & " and (tag<>+ or isnull(tag))" & " and trim(datihao)=" & Trim(Data1.Reco
31、rdset.datihao) & " and trim(zhishidian) =" & Left(Trim(Data1.Recordset.zhishidian), 6) & " and xishu=" & Trim(Data1.Recordset.xishu) & "" End If End If End If Data2.Refresh If Data2.Recordset.BOF Then Data1.Recordset.MoveNext Else i = 1
32、 1’ Do While Not Data2.Recordset.EOF Data2.Recordset.Edit Data2.Recordset.hao = i Data2.Recordset.Update Data2.Recordset.MoveNext i = i + 1 Loop
33、 2’ If i - 1 <= Data1.Recordset.tishu Then 3’ Data2.Recordset.MoveFirst Do While Not Data2.Recordset.EOF Data2.Recordset.Edit Data2.Recordset.Tag = "+" Data2.Recordset.Update Data2.Recordset.Mo
34、veNext Loop 4’ Data1.Recordset.Edit Data1.Recordset.tishu = 0 Data1.Recordset.Update Data1.Recordset.MoveNext Else Do While Data1.Recordset.tishu > 0 j = Int(Rnd
35、* 100) 5’ If j = i - 1 Or j = 1 Or (j < i - 1 And j > 1) Then Data2.Recordset.FindFirst ("Trim(hao)=" & Trim(Str(j))) If Data2.Recordset.Tag <> "+" Or IsNull(Data2.Recordset.Tag) Then Data2.Recordset
36、.Edit Data2.Recordset.Tag = "+" Data2.Recordset.Update Data1.Recordset.Edit Data1.Recordset.tishu = Data1.Recordset.tishu - 1 Data1.Recordset.Update
37、 End If End If Loop 6’ Data1.Recordset.MoveNext End If End If Loop j = MsgBox("自 動(dòng) 選 題 已 經(jīng) 結(jié) 束 ?。?!", vbOKOnly, "") Unload Form10 Load Form1 Form1.Show 1’-2’:為所有過濾出的符合條件試題記錄按順序添入序號(hào)1,2,3,……
38、 3’-4’:若過濾出的符合條件的試題數(shù)少于或等于條件中要求的題數(shù),則全部選中 過濾出的試題 5’-6’:若過濾出的符合條件的試題數(shù)多于條件中要求的題數(shù),則調(diào)用隨機(jī)函數(shù)Rnd,當(dāng)Int(Rnd * 100)等于符合條件的某試題的記錄序號(hào)且該題未被選中過,則選中它,否則再由Int (Rnd * 100)生成隨機(jī)整數(shù)然后與符合條件的試題的記錄序號(hào)比較且查看它的選中標(biāo) 記,依次類推,直到所需要的試題數(shù)全部選出為止。每選中一題,選題條件中的題數(shù)值 減一,直到題數(shù)值減到零為止,然后如上步驟按下一個(gè)要求條件進(jìn)行選題,直到選出 所有符合各個(gè)條件試題為止。 3.生成試卷 [ 圖示4
39、] 算法描述:采用OLE自動(dòng)化技術(shù)(該技術(shù)比對(duì)象鏈接更進(jìn)了一步),利用記事本提供的OLE自動(dòng)化對(duì)象已經(jīng)選擇好并按成卷合并寫入一個(gè)試卷記事本中。首先為存儲(chǔ)試卷創(chuàng)建一個(gè)可編輯的空記事本并打開它,然后打開第一試題對(duì)應(yīng)的記事本,全選其內(nèi)容并復(fù)制到剪貼板上,激活試卷記事本文檔,將剪貼板上的內(nèi)容粘貼進(jìn)來(lái);然后打開第二試題對(duì)應(yīng)的記事本,全選其內(nèi)容并復(fù)制到剪貼板上,激活試卷記事本;……。依此繼續(xù),直到所有試題內(nèi)容都粘貼進(jìn)來(lái)為止。 Private Sub Form_Activate() Data1.DatabaseName = App.Path & "\tiku.mdb" Data1.Refresh
40、Dim fso As New FileSystemObject Dim ts As TextStream Dim ts1 As TextStream Dim fl As File Dim fl1 As File Set ts = fso.CreateTextFile(App.Path & "\tikupaper.txt", True) ts.Close Set ts = fso.OpenTextFile(App.Path & "\tikupaper.txt", ForAppending, True) Do While Not Data1.Recordset.EOF
41、RichTextBox1.SaveFile App.Path & "\shiti.txt", 1 Set ts1 = fso.OpenTextFile(App.Path & "\shiti.txt", ForReading) ts.Write (ts1.ReadAll) ts.WriteBlankLines (3) ts1.Close Data1.Recordset.MoveNext Loop ts.Close OLE1.Visible = True OLE1.Class = "word.document.8" OLE1.Di
42、splayType = 0 OLE1.SourceDoc = App.Path & "\tikupaper.txt" OLE1.Action = 1 OLE1.Refresh 圖4. 已 生 成 樣 卷 示 例 結(jié)束語(yǔ): 經(jīng)過二個(gè)多月的設(shè)計(jì)和開發(fā),試題庫(kù)管理系統(tǒng)基本開發(fā)完畢。其功能基本符合用戶需求,能夠完成一般科目試卷中試題的存儲(chǔ)和抽取。并提供部分系統(tǒng)維護(hù)功能,使用戶方便進(jìn)行試題存儲(chǔ)、試題刪除、試題瀏覽、試卷預(yù)覽、試卷生成、用戶添加、用戶刪除功能。對(duì)于試題自動(dòng)抽取也通過程序進(jìn)行了有效的解決。 但是由于畢業(yè)設(shè)計(jì)
43、時(shí)間較短,所以該系統(tǒng)還有許多不盡如人意的地方,比如附加功能實(shí)現(xiàn)比較少,用戶界面不夠美觀,無(wú)打印模塊等多方面問題,這些都有待進(jìn)一步改善。本軟件公開使用,在以后的教學(xué)過程中,任何人、任何學(xué)??梢愿鶕?jù)自身的需要,可進(jìn)一步開發(fā)和完善,使該軟件能夠達(dá)到量體裁衣理想的使用效果。 致謝 在本次畢業(yè)設(shè)計(jì)中,我從指導(dǎo)老師肖輝老師身上學(xué)到了很多東西。肖輝老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。他無(wú)論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到不少的提高這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,感謝他耐心的輔導(dǎo)。 另外,在系統(tǒng)開發(fā)過程中本系尹貴祥老師也給予我們很大的幫
44、助,幫助解決了不少的難點(diǎn),使得系統(tǒng)能及時(shí)開發(fā)完成,還有同組的同學(xué)同樣給與我不少幫助,這里一并表示感謝。 參考文獻(xiàn) [1]尹貴祥. Visual Basic6.0程序設(shè)計(jì)案例教程[M]. 中國(guó)鐵道出版社,2005.1 [2]羅仕鑒. 人機(jī)界面設(shè)計(jì)[M]. 機(jī)械工業(yè)出版社,2002.9 [3]胡志君,高燕林等譯. SQL編程習(xí)題與解答[M]. Fundamentals of SQL Programming 中信出 版社,2002.8 [4]朱三元,錢樂秋等. 軟件工程技術(shù)概論[M]. 科學(xué)出版社,2002.4 [5]薛亮. Visual Basic6.0實(shí)用教程
45、[M]. 西安電子科技大學(xué)出版社,2002.9 [6]呂偉臣,霍言編. Visual Basic6.0初級(jí)編程教程[M]. 北京大學(xué)出版社,2002.6 [7] 何光渝. VB常用算法大全[M]. 西安電子科技大學(xué)出版社,2000.9 [8] 劉燕. Visual Basic程序設(shè)計(jì)[M].交通大學(xué)出版社,2000.9 [9] [美] J.Roff. Visual Basic 6.0 數(shù)據(jù)庫(kù)開發(fā)[M]. 清華大學(xué)出版社,1999.1 [10] 徐新華. 圖形用戶界面編程技術(shù)[M]. 清華大學(xué)出版社,2000.6 [11]曾偉民,鄧勇剛等. Visual Basic6.0高級(jí)實(shí)用教程[M]. 電子工業(yè)出版社,1999.10 [12]王虹. Visual Basic6.0實(shí)用教程[M]. 人民郵電出版社,1999.3 20
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 攪拌樁技術(shù)質(zhì)量交底
- 六年級(jí)語(yǔ)文下冊(cè)第三單元13一夜的工作第1課時(shí)課件-新人教版
- 小學(xué)四年級(jí)英語(yǔ)下冊(cè)第三單元B部分單詞課課件
- 八年級(jí)物理上冊(cè) 1.3《活動(dòng)降落傘比賽》課件 (新版)教科版 (2769)
- 五年級(jí)口語(yǔ)試題
- 電子商務(wù)傳統(tǒng)物理平臺(tái)
- 初中作文指導(dǎo):讓你的文章鮮活起來(lái)——學(xué)會(huì)人物神態(tài)描寫[優(yōu)質(zhì)作文]課件
- 人類群體遺傳學(xué)第六講課件
- 抽樣檢驗(yàn)的培訓(xùn)課件
- 全自動(dòng)無(wú)塵黑板擦-開題報(bào)告
- 復(fù)發(fā)性髕骨脫位
- 行列式依行(列)展開
- 柑橘病蟲害識(shí)別圖譜
- 三年級(jí)數(shù)學(xué)上冊(cè) 第八單元 分?jǐn)?shù)的初步認(rèn)識(shí)(第1課時(shí))分?jǐn)?shù)的初步認(rèn)識(shí)課件1 西師大版 (277)
- 如何合理消費(fèi)課件