版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、緒論21 世紀(jì)是知識(shí)不斷涌現(xiàn),科技不斷創(chuàng)新的時(shí)代,對(duì)的要求越來(lái)越高。進(jìn)行素質(zhì)教育,提高質(zhì)量,是時(shí)代對(duì)教育界迫切要求。為適應(yīng)教學(xué)發(fā)展要求,教育界不斷調(diào)整教學(xué)內(nèi)容,教學(xué)模式,制度和形式的也在同步進(jìn)行,試題庫(kù)管理系統(tǒng)順應(yīng)這一趨勢(shì)應(yīng)運(yùn)而生。試題庫(kù)管理系統(tǒng)的興起運(yùn)用電腦進(jìn)行試題管理是電腦輔助測(cè)試(Computer -AssistedTesting)即 CAT 中首要項(xiàng)目,最早運(yùn)用這項(xiàng)技術(shù)的是 1968 年 IBM 公司和洛 杉 磯 學(xué) 區(qū) 共 同 開 發(fā) 的 一 個(gè) CTSS(Classroom TeacherSupporting System),CTSS 系統(tǒng)最初管理一個(gè)歷史題庫(kù),其中貯存有 800
2、門題目,能為中學(xué)教師生成測(cè)驗(yàn)、家庭作業(yè)、課堂題以及課外輔導(dǎo)材料等,CTSS 采用批量處理方式,先由教師填寫申請(qǐng)單,標(biāo)明所需題目的數(shù)量,類別及有關(guān)屬性,經(jīng)光電掃描機(jī)輸入電腦,CTSS即能自動(dòng)選取題目,復(fù)印所需的份數(shù),還能自動(dòng)輸入單、核對(duì)答案和評(píng)分等。后來(lái),加利福尼亞州開發(fā)了一個(gè)稱為 SOCRATEB CATC 系統(tǒng),它是在 SOCRATES 情報(bào)檢索網(wǎng)絡(luò)上實(shí)現(xiàn)的一個(gè)電腦輔助測(cè)驗(yàn)編制(Computer Assisted Test Construction,簡(jiǎn)稱 CATC 系統(tǒng))專為加利福尼亞州 19 個(gè)州立大學(xué)中的 1.6 萬(wàn)名教師和 29 萬(wàn)學(xué)生服務(wù),該系統(tǒng)擁有 11 個(gè)題目庫(kù),大的試題庫(kù)裝有萬(wàn)
3、個(gè)以上的試題,如歷史題目庫(kù),小的題目庫(kù)也有數(shù)百道題目,如心理學(xué)題目庫(kù)。它們能自動(dòng)編制出各種測(cè)驗(yàn),如自我測(cè)驗(yàn)、定位測(cè)驗(yàn)、性練習(xí)、學(xué)期測(cè)驗(yàn)和綜合測(cè)驗(yàn)等。這些測(cè)驗(yàn)和練習(xí)可通過分時(shí)終端交互產(chǎn)生,也可通過批量方式產(chǎn)生。試題庫(kù)管理系統(tǒng)在我國(guó)的發(fā)展目前,大多數(shù)高等院校的仍采用任課教師(個(gè)人或集體)出題的方式,為了解決學(xué)生壓題、補(bǔ)(緩)題與正式試題量及難度差異問題,教務(wù)管理部門通常要求教師同時(shí)出多套試卷,其題量與難度要求相同,并且要同時(shí)給出和評(píng)分標(biāo)準(zhǔn)。這樣雖能解決一些問題,但給教師增加了很大的工作負(fù)擔(dān)。若上下界學(xué)生的同一門課程由同一教師承擔(dān),則難免幾界學(xué)生用相同幾套試卷;若由不同教師任課出題,則上下屆學(xué)生的成
4、績(jī)之間又不具有可比性。若建立題庫(kù),每次前由題庫(kù)中題目隨機(jī)生成試卷,則可以較好地解決考教分離的問題,也可以將廣大教師從每學(xué)期末繁重題工作中出來(lái)。在我國(guó)雖然計(jì)算機(jī)參與教學(xué)管理已經(jīng)有比較長(zhǎng)的時(shí)間,但由于受到硬件設(shè)備性能和軟件制作水平的限制,在過去的一段時(shí)間中,利用計(jì)算機(jī)現(xiàn)代化管理試題的技術(shù)只為少數(shù)對(duì)計(jì)算機(jī)程序精通的所掌握,廣大的教育工作者仍然處在手工操作的低水平上,程不外乎于先把試題被抄寫卡片紙上,再分別放置于不同的試題柜中,不僅復(fù)制極其,而且更新、查找也十分麻煩,效率極其低下。今日,硬件設(shè)備性能和軟件制作水平的提高,為研制開發(fā)高性能的試題管理軟件提供了條件。不少軟件開發(fā)者看到了教育工作者在這一領(lǐng)域
5、的困境,相繼推出了一批與試題管理有關(guān)的操作軟件,其中不乏非常出色的作品。但是從試題管理這一方面來(lái)看,用戶反應(yīng)平淡,感覺中意的不多。本題庫(kù)管理系統(tǒng)是在 C/S 模型的指導(dǎo)下進(jìn)行設(shè)計(jì)的,最終目標(biāo)是使本系統(tǒng)能夠在網(wǎng)上運(yùn)行。最簡(jiǎn)單的 C/S 體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用,由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器程序。二者可分別稱為前臺(tái)程序與程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,稱為應(yīng)用服務(wù)器,一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于服務(wù)器電腦,可稱為客戶電腦。當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)
6、預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果。在典型的 C/S 數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序獨(dú)立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺(tái)應(yīng)用所不能的規(guī)則,在服務(wù)器程序中集中實(shí)現(xiàn),例如者的權(quán)限,重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作臺(tái)程序上的最終用戶,是“透明”的,他們無(wú)須過問(通常也無(wú)法)這背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序可以變的非?!笆菪 ?,麻煩的事情,都交給了服務(wù)器和網(wǎng)絡(luò)。在 C/S 體系的下,數(shù)據(jù)庫(kù)真正變成了公共、專業(yè)化的倉(cāng)庫(kù),受到獨(dú)立的專門管理。電腦應(yīng)用的開發(fā),是一個(gè)逐步完善的過程,以目前的技術(shù)看,先建立
7、C/S 結(jié)構(gòu)的局域網(wǎng)絡(luò)應(yīng)用,再向ernet/ranet 模式下數(shù)據(jù)庫(kù)應(yīng)用過渡,是比較現(xiàn)實(shí),相對(duì)易于把握、成本較低的。即使是一次到位的開發(fā),對(duì)于類似的環(huán)境和小型的應(yīng)用而言,要想實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如 LAN, WAN,ernet/ranet 等)和操作共同的數(shù)據(jù)庫(kù), 并有效地保證和管理數(shù)據(jù)的安全性、權(quán)限、完整性,采用 C/S 架構(gòu)和支持 C/S 架構(gòu)的數(shù)據(jù),是必然選擇。從運(yùn)行上來(lái)看,同樣設(shè)計(jì)良好的系統(tǒng),C/S 結(jié)構(gòu)引入了的“銜接”環(huán)節(jié),這意味著故障的機(jī)會(huì)和資源的耗費(fèi),然而,一旦系統(tǒng)處于開放的網(wǎng)絡(luò)與應(yīng)用環(huán)境中,這些開銷就變成是必須的。對(duì)于具備良好的規(guī)劃能力的開發(fā)者而言
8、,C/S 結(jié)構(gòu)給予規(guī)劃者更大的空間和更強(qiáng)的支持,易于實(shí)現(xiàn)不同應(yīng)用間的合理分離,分別調(diào)試和投入應(yīng)用。前臺(tái)應(yīng)用和數(shù)據(jù)庫(kù)的開發(fā),被“強(qiáng)制”地分開;數(shù)據(jù)庫(kù)部分的邏輯與規(guī)則,一經(jīng)調(diào)試完成,就可以在將來(lái)的應(yīng)用中一直保證下去;在一個(gè)動(dòng)態(tài)改進(jìn)或逐步擴(kuò)充的開發(fā)環(huán)境,或復(fù)雜的應(yīng)用環(huán)境中,這些都是提高系統(tǒng)可靠性有利。對(duì)基于文件服務(wù)器的系統(tǒng)而言,每次增加或修改功能,通常都意味著整個(gè)系統(tǒng)的升級(jí),前的,也就意味著每次變更都有更大的可能性造成對(duì)原有規(guī)則的破壞,并引起連鎖效應(yīng)。以目前的技術(shù)環(huán)境而言,在 C/S 結(jié)構(gòu)下,有成,適合不同規(guī)模應(yīng)用的開發(fā)與數(shù)據(jù)庫(kù)可供選擇, 并普遍遵循或采用SQL 等標(biāo)準(zhǔn)或技術(shù),相對(duì)較具開放性,有的技
9、術(shù)支持、開發(fā)與維護(hù)的來(lái)源,并且基于技術(shù)與行業(yè)發(fā)展的趨勢(shì),將來(lái)也會(huì)有更多的發(fā)展和保障。1 環(huán)境本系統(tǒng)的開發(fā)環(huán)境是基于 Windows 2000 的中文操作系統(tǒng),采用面象的編程工具 Visual Basic 6.0(以下簡(jiǎn)稱 VB),數(shù)據(jù)庫(kù)是SQL Server 2000。考慮到本系統(tǒng)屬于小型數(shù)據(jù)庫(kù)系統(tǒng),并且不會(huì)有很大的數(shù)據(jù)量,筆者決定采取本地?cái)?shù)據(jù)庫(kù)和編程方法,以達(dá)到對(duì)數(shù)據(jù)庫(kù)快速方便地。Visual Basic 6.0 是專門為的 32 位操作系統(tǒng)設(shè)計(jì)的,可用來(lái)建立 32 位的應(yīng)用程序。在 Windows 9X 或 Windows NT 環(huán)境下,用 Visual Basic 6.0 的編譯器可以自
10、動(dòng)生成 32 位應(yīng)用程序。這樣的應(yīng)用程序在 32 位操作系統(tǒng)下運(yùn)行,速度更快,更安全,并且更適合在多任務(wù)環(huán)境下運(yùn)行。Visual Basic 是一種可視化的、面象和采用事件驅(qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言,可用語(yǔ)開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。它具有如下特點(diǎn):1可視化編程2面象的程序設(shè)計(jì)3結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言4事件驅(qū)動(dòng)編程機(jī)制5數(shù)據(jù)庫(kù)6動(dòng)態(tài)7對(duì)象的與嵌入8動(dòng)態(tài)庫(kù)在試題庫(kù)管理系統(tǒng)中,用 VB 編程可以方便的實(shí)現(xiàn)對(duì)試題庫(kù)的基本操作,如建庫(kù)、增刪、瀏覽和打印等。SQL 是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語(yǔ)言,其功能并不僅僅是查詢。SQL 是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言。S
11、QL 語(yǔ)言集數(shù)據(jù)查詢、數(shù)據(jù)、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,主要特點(diǎn)如下:1綜合2高度非過程化3面向集合的操作方式4以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式5語(yǔ)言簡(jiǎn)潔,易學(xué)易用。2 需求分析畢業(yè)設(shè)計(jì)題目是試題庫(kù)管理系統(tǒng), 經(jīng)過兩周的理論知識(shí)學(xué)習(xí)和實(shí)地,我漸漸的了解到用戶對(duì)題庫(kù)管理系統(tǒng)的要求。2.1分析分析,我逐步了解到老師最需要的題庫(kù)系統(tǒng)應(yīng)該具有的經(jīng)過功能:在試題管理方面,老師最需要的是對(duì)試題管理的性,具體表現(xiàn)在以下三個(gè)方面:1)初始化試題庫(kù);2)試題庫(kù);3)調(diào)用試題庫(kù)。2.1.1 用戶的需要1.初始化試題庫(kù):即用戶擁有創(chuàng)建新題庫(kù)的權(quán)力,用戶能夠根據(jù)自己的需要,設(shè)計(jì)試題的儲(chǔ)存方案以及試題的屬性名和各屬性
12、值,實(shí)現(xiàn)試題庫(kù)用戶個(gè)性化設(shè)計(jì),讓試題庫(kù)真正成為用戶自己的試題庫(kù)?,F(xiàn)在已經(jīng)推出的幾乎所的試題管理軟件都不具備這樣的功能,用戶所使用的試題庫(kù)都是程序制作者預(yù)先設(shè)計(jì)好的,對(duì)于試題的分類方案用戶無(wú)權(quán)修改。由于學(xué)校自身之間的差異,比如小學(xué)和初中、初中和高中、高中和大學(xué),試題分類的要求不一樣,學(xué)校性質(zhì)的不同,比如重點(diǎn)學(xué)校和一般學(xué)校、普通中學(xué)和職業(yè)中學(xué)等;性質(zhì)不相同,比如階段性、期中期末、會(huì)考、高考;還有地區(qū)上的差異,比如教育和教育發(fā)展中地區(qū)、和江蘇等等,相同的學(xué)科試題分類的要求也不一樣。因此用相同的分類方法,用戶無(wú)法修改的試題分類方案,會(huì)給用戶的使用帶來(lái)極大的不便。用戶不喜歡這一種不能控制的試題分類方案,
13、用戶希望地初始化試題庫(kù)。2試題庫(kù):即用戶具有添加、修改和刪除試題的權(quán)力,實(shí)現(xiàn)試題庫(kù)的可擴(kuò)充性和開放性,使用戶對(duì)題庫(kù)具有的支配權(quán)?,F(xiàn)在已經(jīng)推出的幾乎所的試題管理軟件都不具備這樣的功能,用戶所使用的試題被程序制作者預(yù)先寫在某個(gè)文件中,這些文件不是隱藏得讓用戶難以找到就是經(jīng)過加理,用戶根本就不可能通過其它方式(比如 Word、Acs、WPS 等)打開并看到它,更談不上對(duì)它的擴(kuò)充、修改和對(duì)某個(gè)試題的刪除了。由于用戶沒有試題庫(kù)的權(quán)力,新試題無(wú)法錄入,陳舊試題無(wú)法刪除,這樣的試題庫(kù)在較短的時(shí)間內(nèi)就逐漸老化、失去。用戶需要地試題庫(kù),希望及時(shí)地更新試題庫(kù)。3調(diào)用試題庫(kù):即允許用戶能地從試題庫(kù)中抽取試題?,F(xiàn)在已
14、經(jīng)推出的幾乎所的試題管理軟件都不完全具備這樣的功能,不是向用戶提供成套的試題,就是智能組卷。其實(shí)只有極其懶惰的用戶才依賴智能組卷來(lái)出題,一個(gè)稍有責(zé)任心的老師肯定不會(huì)用智能組卷生成的試卷直接去考查學(xué)生。因此手工去搜索試題是實(shí)用的可行的,智能組卷只是個(gè)招牌,中看不中用,是產(chǎn)品用語(yǔ)。用戶不是去參加制卷大賽,用不著急著要在幾分鐘內(nèi)制出一份試卷。一份高質(zhì)量的試題,需要教師反復(fù)地推敲、比較和琢磨,用戶需要的是像逛超市一樣的心情,能方便地把看中試題取出來(lái),還可以把不需要的試題退回去。某些試題管理軟件不僅不支持試題庫(kù)中試題的修改,而且生成的試卷也不允許修改,連加一個(gè)空格,修改字體都無(wú)法實(shí)現(xiàn),試卷保存后不能為其
15、它系統(tǒng)(比如 Word、WPS 等)識(shí)別,只能從打印機(jī)上輸出,這種方案沒有多少實(shí)用性。2.2分析的結(jié)果了解到上述情況,對(duì)題庫(kù)功能有了初步想法:2.2.1 “檢索瀏覽”功能及應(yīng)用目前國(guó)內(nèi)試題庫(kù)軟件,無(wú)法瀏覽全庫(kù)的試題。而用戶急切需要看到題庫(kù)中裝了些什么試題。所以,有的用戶想方設(shè)法把試題庫(kù)打開,然后用很長(zhǎng)時(shí)間把試題打印出來(lái)。厚厚的幾大本,瀏覽起來(lái)也并不方便。我由電子讀物的“檢索瀏覽”得到啟示,試題庫(kù)也是一本試題電子書。我增加了“ 檢索瀏覽” 功能。用戶如果需要調(diào)看某科目(如 C語(yǔ)言)、某題型(如填空題)、 某章(如第一章)、甚至某節(jié)、某小節(jié)的題目,則利用“修改試題”、“刪除試題”、“手工組卷”功能
16、,通過設(shè)置某科目(如 C 語(yǔ)言)、某題型(如填空題)或某章(如第一章),單擊按鈕,此類試題即會(huì)一一顯現(xiàn)在屏上(屏中不僅顯示題干和,而且顯示有關(guān)試題的指標(biāo))。2.2.2 “”功能及應(yīng)用事物都是在不斷的發(fā)展變化的,隨著時(shí)間的推移,必定有新興事物和衰亡事物,題庫(kù)管理系統(tǒng)也同樣道理,所以就顯得十分重要。如果不對(duì)用戶的權(quán)限加以限制,勢(shì)必會(huì)對(duì)系統(tǒng)的安全極為不利。所以,題庫(kù)管理系統(tǒng)只有以“ 管理員”登錄的,才可以“”功能。由管理員來(lái)新建庫(kù)、修改庫(kù)、刪除及對(duì)用戶的管理。2.2.3 “試題操作”功能及應(yīng)用從以上的分析中,知道性是用戶最大的需要,因而,試題庫(kù)管理系統(tǒng)應(yīng)該具備加題、改題、刪題,充分調(diào)動(dòng)用戶的積極性和
17、主動(dòng)性。這也保證了題庫(kù)中的試題總是最新的、最適合學(xué)生的,“愈用愈新”是本題庫(kù)的特點(diǎn)之一。3 總 體 設(shè) 計(jì)軟件需求確定之后,就進(jìn)入了開發(fā)階段。開發(fā)階段由三個(gè)關(guān)聯(lián)的步驟組成:設(shè)計(jì)(總體設(shè)計(jì)和概要設(shè)計(jì)),實(shí)現(xiàn)(編碼)和測(cè)試。本章將描述開發(fā)階段的第一步:軟件設(shè)計(jì)中的概要設(shè)計(jì),又稱為總體方案設(shè)計(jì)。總體設(shè)計(jì)過程通常有兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì),確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。3.1 系統(tǒng)的功能模塊圖本系統(tǒng)共有五個(gè)模塊,系統(tǒng)總功能模塊如圖 3-1系統(tǒng)功能描述試題操作模塊此模塊對(duì)所有級(jí)別的用戶開放,試題操作包括填加試題、修改試題、刪除試題,填加試題中又分為填加單題和批量加題。這一模塊給用戶極
18、大的性,使該題庫(kù)常用常新。3.2.2模塊這一模塊只有系統(tǒng)管理員可以進(jìn)入,而普通用戶無(wú)權(quán)查看。它包括五項(xiàng)基本功能:1、用戶管理-批準(zhǔn)新用戶、刪除用戶、歷史2、新建庫(kù)-新建學(xué)院、新建科目、新建題型 3、修改庫(kù)-修改學(xué)院、修改科目、修改對(duì)照表, 4、刪除庫(kù)-刪除學(xué)院, 刪除科目, 5、統(tǒng)計(jì)庫(kù)-學(xué)院統(tǒng)計(jì)、科目統(tǒng)計(jì)、試題統(tǒng)計(jì)。3.2.3 用戶模塊這一模塊包含修改和退出系統(tǒng)兩項(xiàng),用戶成功登錄后,可以修改其,通過退出系統(tǒng)選項(xiàng)可退出整個(gè)系統(tǒng)。3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)本題庫(kù)管理系統(tǒng)使用的數(shù)據(jù)庫(kù)是 SQL Server 2000,關(guān)于這個(gè)數(shù)據(jù)庫(kù)的特點(diǎn)和功能在第一章已經(jīng)有所介紹,這里不在贅述。本系統(tǒng)表格的絕大多數(shù)字段以編
19、碼為主,這樣便于對(duì)數(shù)據(jù)庫(kù)的操作。具體的表格設(shè)立如下:1、用戶表(YongHu)任何系統(tǒng)都有其服務(wù)群,必須對(duì)它的使用者進(jìn)行管理。本系統(tǒng)的用戶表的主要作用是便于題庫(kù)的管理,規(guī)定用戶權(quán)限。這個(gè)表格中所有用戶的信息,包括普通用戶、系統(tǒng)管理員和成功后等待批準(zhǔn)的用戶信息。權(quán)限字段中用用戶、管理員、申請(qǐng)用戶(申請(qǐng)管理員)來(lái)區(qū)分他們。用戶名字段是唯一的,不允許重復(fù)。字段名字段類型字段長(zhǎng)度是否可為空用戶名Char10否真實(shí)Char10否Char10否權(quán)限Char10否Char4否號(hào)Char20否Char15否住址Text16否Char7否Text16是2、用戶登記表(YHDengJi)建此表的目的是管理登錄用戶
20、信息,下對(duì)題庫(kù)進(jìn)行加題、改題、刪題、組卷操作之人的真實(shí),以便更好的題庫(kù)的安全。如果題庫(kù)遭到破壞或試題泄密,能夠找到責(zé)任人。3、科目表(KeMu)這個(gè)表格中題庫(kù)中所有科目的相關(guān)信息,科目字段不允許重復(fù),科目共 6 位,它的生成原則是前 2 位是所屬學(xué)院的(01-99),第 3 位是開課的學(xué)期(1-8),第 4 位是區(qū)分基礎(chǔ)課(0)還是專業(yè)課(1),后 2 位是按創(chuàng)建的先后順序生成課程序號(hào) (01-99)。每新建一科目,系統(tǒng)就會(huì)動(dòng)態(tài)生成該科的試題表和內(nèi)容對(duì)照表。字段名字段類型字段長(zhǎng)度是否可為空科目名Varchar50否科目Char6否課程表Char50否字段名字段類型字段長(zhǎng)度是否可為空用戶真名Ch
21、ar10否登錄時(shí)間Date8否是否加題4否是否改題4否是否刪題4否是否組卷4否時(shí)間Date8是備注Text16是4、試題表(_QD)此表格一科一個(gè), 該科試題的相關(guān)內(nèi)容,題號(hào)字段不允許重復(fù),共 10 位。題號(hào)的生成原則:前 6 位是試題所屬科目的,后四位是試題的序號(hào)(0001-9999)。內(nèi)容碼字段由 6 位組成,它的生成原則是前 2 位是試題所屬的章(如第一章則是 01),中間 2 位是試題所屬的節(jié)(如第三節(jié)是 03),后 2 位是試題所屬的小節(jié)(如第五小節(jié)是 05)。如果是跨章試題,則選出權(quán)重較大的一章來(lái)生成前 2 位,如果是跨節(jié)或是跨小節(jié)的試題,用*來(lái)代替它的編碼。例如第三章的試題的內(nèi)容
22、碼是 03*,第一章第二節(jié)的試題的內(nèi)容碼是 0102*。如果要?jiǎng)h除某道試題,則該試題的內(nèi)容碼為空,以便填加試題時(shí),把新試題加到此位置。教學(xué)要求 1 和教學(xué)要求 2 分別指本專業(yè)要求和非專業(yè)要求。分值只是一個(gè)參考,用戶在組卷時(shí)通過指標(biāo)的設(shè)定可以更改。是用來(lái)在組卷過程中標(biāo)記該道試題是否被選中(0 沒選中, 1 選中)。字段名字段類型字段長(zhǎng)度是否可為空題號(hào)Char10否內(nèi)容碼Char6是題型碼Char2否分值4否學(xué)分Float8否學(xué)時(shí)Small2否課程描述Text16是建立人Char10否建立時(shí)間Date8否5、內(nèi)容對(duì)照表(_DZ)內(nèi)容對(duì)照表也是一科一個(gè),該表起到了書本目錄的作用, 內(nèi)容描述是用語(yǔ)言
23、描述的章節(jié)標(biāo)題,內(nèi)容碼的定義原則已經(jīng)講過,不再多說(shuō)。在刪除庫(kù)的刪除科目功能中,不應(yīng)把要?jiǎng)h除的科目真正刪除,因?yàn)榭赡芷渌麑W(xué)院用到該科,所以建立一個(gè)科目備份表(KeMuBF),當(dāng)需要恢復(fù)時(shí),把其由科目備份表(KeMuBF)中再寫回到科目表(KeMu)中。這樣避免了重新建表,減輕了數(shù)據(jù)庫(kù)的負(fù)擔(dān)。而且,若真的刪除之,那么該科的所有試題也必須刪除,這樣做過于復(fù)雜,不可行。科目備份表(KeMuBF)的字段內(nèi)容與科目表(KeMu)中的字段內(nèi)容相同。另外,還有一些起到數(shù)據(jù)字典作用,供查找對(duì)照之用的表格,它們的具體內(nèi)容如下:字段名字段類型字段長(zhǎng)度是否可為空內(nèi)容描述Char500否內(nèi)容碼Char6否難度4否教學(xué)要
24、求 14否教學(xué)要求 24否復(fù)用時(shí)限4否出題時(shí)間Date8是4是題干Text16是Text16是試題Text16是6、學(xué)院對(duì)照表(XueYuan_DZ)學(xué)院是唯一的,按創(chuàng)建的先后順序生成兩位序號(hào)(01-99)。7、題型對(duì)照表(TiXing_DZ)題型不允許重復(fù),按創(chuàng)建的先后順序生成兩位編碼(01-99)為了能在生成試卷時(shí)方便的選取題目,必須對(duì)題庫(kù)中的試題提供必要的字段信息,分析大多數(shù)課程的試題可知,試題的難度和教學(xué)要求是比不可少的。難度系數(shù)和教學(xué)要求系數(shù)并非完全準(zhǔn)確,系統(tǒng)管理員可以根據(jù)實(shí)際情況對(duì)其修改。8、難度對(duì)照表(NanDu_DZ)字段名字段類型字段長(zhǎng)度是否可為空難度名Char10否字段名字
25、段類型字段長(zhǎng)度是否可為空題型名Varchar50否題型Varchar2否建立人Char10否建立時(shí)間Date8否題型描述Text16是字段名字段類型字段長(zhǎng)度是否可為空學(xué)院名Varchar50否學(xué)院Varchar2否建立人Char10否建立時(shí)間Date8否學(xué)院描述Text16是9、教學(xué)要求對(duì)照表(JiaoXue_DZ)字段名字段類型字段長(zhǎng)度是否可為空教學(xué)要求名Char10否系數(shù)Char10否教學(xué)要求描述Char10是難度系數(shù)4否難度描述Text16是4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的階段的根本目標(biāo)是確定應(yīng)該怎樣具體地實(shí)現(xiàn)所要求的系統(tǒng),也就是說(shuō),經(jīng)過這個(gè)階段的設(shè)計(jì)工作,應(yīng)該得出對(duì)目標(biāo)系統(tǒng)的精確描述,從而在編碼
26、階段可以把這個(gè)描述直接翻譯成用某種程序設(shè)計(jì)語(yǔ)言書寫的程序。用戶模塊修改用戶登錄系統(tǒng)后,可以隨意的更改個(gè)人。它的實(shí)現(xiàn)方法是:系統(tǒng)檢索的數(shù)據(jù)庫(kù)用戶表(YongHu),根據(jù)用戶登錄時(shí)的用戶名,把修改后的回填到相應(yīng)的字段,覆蓋從前的,刷新數(shù)據(jù)庫(kù)。4.1.2 退出系統(tǒng)整個(gè)系統(tǒng)的出口就在此選項(xiàng)。4.2模塊把用戶區(qū)分為普通用戶和系統(tǒng)管理員,自然他們的權(quán)限不同。普通用戶可以進(jìn)入除的所有功能區(qū),在這些區(qū)域進(jìn)行操作,而管理員可以進(jìn)入所有的功能區(qū),進(jìn)行所有的操作,并且可以對(duì)所有用戶進(jìn)行管理。4.2.1 用戶管理用戶管理分為批準(zhǔn)新用戶、刪除用戶和歷史。界面 4.2-1 如下圖所示:界面 4.2-1在批準(zhǔn)新用戶中, 新
27、的用戶信息都會(huì)在表格中顯示出來(lái),選中要批準(zhǔn)的用戶(一個(gè)或者多個(gè)),然后單擊批準(zhǔn)按鈕,這些用戶便成為正式用戶,然后彈出批準(zhǔn)成功字樣的提示信息。在任何內(nèi),必定都有的變動(dòng),比如調(diào)職、退休等,還可能有管理員不愿批準(zhǔn)的用戶。所以,系統(tǒng)必須有刪除用戶的功能,避免了數(shù)據(jù)庫(kù)的冗余、雜亂,便于管理系統(tǒng)。打開刪除用戶的,所有的用戶包括普通用戶、系統(tǒng)管理員和成功沒有被批準(zhǔn)的用戶都會(huì)顯示在表格中。它的操作過程與批準(zhǔn)用戶的操作過程相似。歷史這一項(xiàng)的作用是下用戶的登錄信息,讓管理員知道用戶登錄后的行為,便于,保障題庫(kù)的安全。如果題庫(kù)遭到破壞或是試題泄密,通過這能可以找出責(zé)任人。用戶管理功能的實(shí)現(xiàn)過程是:在單擊用戶管理時(shí),
28、查數(shù)據(jù)庫(kù)用戶表(YongHu),將所需內(nèi)容回填到界面相應(yīng)處。為了讓用戶在登錄界面看到批準(zhǔn)信息,并且能夠順利本系統(tǒng)。特做如下處理:當(dāng)管理員成功批準(zhǔn)用戶后,在用戶表(YongHu)中,不立刻把他們的權(quán)限改為用戶(管理員),而改為準(zhǔn)用戶(準(zhǔn)管理員),刷新數(shù)據(jù)庫(kù)。把用戶表(YongHu)中權(quán)限為準(zhǔn)用戶(準(zhǔn)管理員)的用戶名滾動(dòng)出現(xiàn)在登錄界面的批準(zhǔn)用戶提示板上。如果新用戶看到了被批準(zhǔn)的提示語(yǔ),此用戶成功登錄后,就把表中權(quán)限字段相應(yīng)的改寫為用戶(管理員),刷新數(shù)據(jù)庫(kù)。當(dāng)單擊刪除按鈕時(shí),到用戶表(YongHu)中,找到與要?jiǎng)h除用戶的用戶名一致的用戶信息,然后從表中把其清除,刷新數(shù)據(jù)庫(kù),實(shí)現(xiàn)刪除用戶功能。其代碼
29、如下:txtSQL = select * from YongHu Set mrc = ExecuteSQL(txtSQL, MsgText) For i = 1 To ListView2.ListItems.CountIf ListView2.ListItems(i).Checked = True Then A = TrueWhile Trim(mrc.Fields(0) ListView2.ListItems(i).Text mrc.MoveNextWendYongHu(yh) = i yh = yh + 1 mrc.Delete mrc.Update mrc.MoveNextEnd If
30、Next i第幾個(gè)被刪For i = yh To 1 Step 1 從后向前刪除 ListView2.ListItems.Remove (YongHu(i - 1) Next i歷史這能的實(shí)現(xiàn)描述:當(dāng)有用戶登錄時(shí),系統(tǒng)查用戶表(YongHu), 把其真實(shí)和登錄時(shí)間回填到用戶登記表(YHDengJi)中,同時(shí)把表中其他字段賦值為 0。將用戶登記表的集(mrc)指向該表的最后一條,然后把 mrc 的 BookMark 屬性賦給一全局變量(varbookmark)。當(dāng)這位用戶對(duì)試題進(jìn)行填、刪、改或是組卷時(shí),用varbookmark 找到該用戶在用戶登記表中的位置,然后把相應(yīng)字段再改為 1。使用 Bo
31、okMark 屬性的目的是給網(wǎng)上操作留下擴(kuò)展的空間,即有多人同時(shí)登錄系統(tǒng)時(shí),可分配多個(gè) BookMark,分別指向不同的。4.2.2 新建庫(kù)新建庫(kù)的程序流程圖如圖 4-1,界面 4.2-2 如下圖所示:界面 4.2- 新建學(xué)院新建庫(kù)的第一個(gè)是新建學(xué)院,管理員可以查看已存在的學(xué)院名,并根據(jù)此建與之不同的學(xué)院名稱,兩位的學(xué)院代碼自動(dòng)生成。實(shí)現(xiàn)過程如下:系統(tǒng)到查學(xué)院表(XueYuan_DZ),把已存在的學(xué)院名稱列舉出來(lái)供用戶參考,且下學(xué)院的總數(shù)。當(dāng)用戶輸入一個(gè)符合要求的學(xué)院名稱,按順序?yàn)槠浼丛谠瓉?lái)總數(shù)的基礎(chǔ)上加 1。把新的學(xué)院名和學(xué)院寫入到學(xué)院表(XueYuan_DZ),刷新數(shù)據(jù)庫(kù)。 新建科目填寫新
32、建科目的信息,其中“課程”和“數(shù)據(jù)庫(kù)中試題表名”系統(tǒng)自動(dòng)生成。單擊建立課程按鈕,系統(tǒng)同時(shí)為其生成試題清單表和內(nèi)容對(duì)照表且生成名稱。單擊下一步進(jìn)入如下的界面 4.2-3:界面 4.2-3這一界面的主要功能是填寫該科的內(nèi)容對(duì)照表,關(guān)于內(nèi)容對(duì)照表的作用及含義已在總體設(shè)計(jì)中有所闡述,這里不在敘述。當(dāng)填寫完該門課程的內(nèi)容對(duì)照樹后,單擊寫入內(nèi)容對(duì)照表,至此,新建科目成功。需要說(shuō)明的是填寫內(nèi)容對(duì)照樹的時(shí)候要按順序填寫,即只有填寫完第一章的標(biāo)題,才可以填寫第一節(jié)的標(biāo)題,再填加小節(jié)的標(biāo)題,然后是第二節(jié)的標(biāo)題。若無(wú)內(nèi)容,則省略之。然后再填加第二章的標(biāo)題,依次類推。建立過程中,不可以在對(duì)照樹中向已填加的內(nèi)容之間再插
33、入內(nèi)容,否則出現(xiàn)錯(cuò)誤提示信息。新建科目的具體實(shí)現(xiàn)過程與方法:當(dāng)用戶輸入符合要求的科目信息,單擊建立課程按鈕時(shí),系統(tǒng)到查科目表(KeMu),按課程的生成原則(見第三章總體設(shè)計(jì)中的數(shù)據(jù)庫(kù)設(shè)計(jì))為該科生成,將用戶填寫的信息填寫到科目表(KeMu)中。同時(shí)要?jiǎng)討B(tài)生成試題表(_QD)和內(nèi)容對(duì)照表(_DZ)。在動(dòng)態(tài)建表過程中,我遇到了問題,開始時(shí)我按照SQL 語(yǔ)言的語(yǔ)則(create table 關(guān)鍵字)依照事先想好的字段內(nèi)容來(lái)創(chuàng)建(見第三章總體設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì))表格。我沒有立刻對(duì)動(dòng)態(tài)創(chuàng)建的表格進(jìn)行操作,而是根據(jù)程序的需要查相關(guān)表的內(nèi)容,再把這個(gè)相關(guān)表的內(nèi)容填寫到建好的動(dòng)態(tài)表中。比如說(shuō):某用戶新建了 C
34、語(yǔ)言一科,在科目表(KeMu)中已填入了 C 語(yǔ)言的有關(guān)信息(例如課程編碼),然后在界面彈出的提示信息板中也有試題表和內(nèi)容對(duì)照表創(chuàng)建成功的字樣。當(dāng)用戶要填加該科試題時(shí),系統(tǒng)要做的工作就是到查科目表(KeMu),把要用到的信息(例如課程)填寫到 C 語(yǔ)言的試題表中,結(jié)果程序運(yùn)行出錯(cuò),提示不存在該科的試題表。經(jīng)過反復(fù)試驗(yàn)和認(rèn)真思索得到的結(jié)論是:動(dòng)態(tài)創(chuàng)建的表格其實(shí)并沒有真正到數(shù)據(jù)庫(kù)中,而是放在了緩沖區(qū)中。所以在數(shù)據(jù)庫(kù)中查找此表自然是找不到的。只有到刷新數(shù)據(jù)庫(kù),或者讓計(jì)算機(jī)重新啟動(dòng)時(shí),動(dòng)態(tài)建立的表格才能寫入到題庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)中。由此,初步的解決辦法是在代碼段中加入刷新數(shù)據(jù)庫(kù)的語(yǔ)句(Update),但
35、對(duì)本不存在于數(shù)據(jù)庫(kù)中的表格刷新當(dāng)然毫無(wú)作用,此方法失敗。那么,讓用戶每新建一科就重新啟動(dòng)計(jì)算機(jī),未免過于煩瑣和小題大做,此辦法行不通。最后找到的解決方法是建表完成后立即把緩沖區(qū)中的表格寫入到數(shù)據(jù)庫(kù),即在代碼段中動(dòng)態(tài)建表后,立即在此表中填加一條,就是用 Addnew 方法刷新數(shù)據(jù)庫(kù),順利的把緩沖區(qū)中的表寫到數(shù)據(jù)庫(kù)中,然后再把這條刪除。這樣,動(dòng)態(tài)建立的表格就如我所愿的出現(xiàn)在題庫(kù)管理系統(tǒng)的數(shù)據(jù)庫(kù)中。具體的建科目表的代碼如下:生成試題表txtSQL = create table & Trim(Text6.Text) & (TiHa o char(10) null ,NeiRongMa char(6)
36、not null, & _notTiXingMa char(2) not null,JiaoXueYaoQiu1JiaoXueYaoQiu2null,FenZhinot null,NanDunotnot notnull, & _ null,FuYongShiXian null,BiaoQiannot null,TiGannull,ChuTiShiJian datetimetext,DaAn text ,JieXi text,QuFenDu Set mrc = ExecuteSQL(txtSQL, MsgText)問題的關(guān)鍵所在txtSQL = select *建完表后要立即向表中填加內(nèi)容fro
37、m & Trim(Text6.Text)Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.AddNewmrc.Fields(0) mrc.Fields(2) mrc.Fields(5) mrc.Fields(8) mrc.Update mrc.Close= 00000000: mrc.Fields(1) = 000000= 00 : mrc.Fields(3) = 0: mrc.Fields(4) = 0= 0 : mrc.Fields(6) = 0 : mrc.Fields(7) = 0= Now刪除填加的內(nèi)容txtSQL = select * from &
38、 Trim(Text6.Text) Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.Deletemrc.Update mrc.Close此外,新建科目中還有一項(xiàng)很重要的功能就是恢復(fù)科目,當(dāng)管理員點(diǎn)擊恢復(fù)科目按鈕時(shí)進(jìn)入如下的界面 4.2-4:界面 4.2-4被刪除的科目都存放在科目備份表(KeMuBF) 中,當(dāng)管理員選定一科時(shí),該科的相關(guān)信息就顯示出來(lái),單擊恢復(fù)按鈕,這一科就重新存儲(chǔ)在科目表(KeMu)中。 新建題型新建庫(kù)的第三個(gè)-新建題型,它的操作方法和實(shí)現(xiàn)過程與新建學(xué)院相似,兩位的題型代碼也是自動(dòng)生成,不再多說(shuō)。4.2.3 修改庫(kù)修改庫(kù)的程序流程圖:如圖
39、4- 修改學(xué)院通過第三章的總體設(shè)計(jì)的數(shù)據(jù)庫(kù)設(shè)計(jì),知道的表與表之間的聯(lián)系多通過編碼相關(guān)聯(lián),若把這些相關(guān)聯(lián)的編碼修改,勢(shì)必影響整個(gè)題庫(kù)系統(tǒng),甚至破壞了系統(tǒng)。鑒于此,對(duì)于學(xué)院的修改規(guī)定只能修改其名稱,以便新的名稱適合時(shí)代的要求。管理員選擇要修改的學(xué)院,然后在重命名中填入新名稱,單擊確定,修改完成。修改學(xué)院的實(shí)現(xiàn)過程很簡(jiǎn)單: 系統(tǒng)要查的表格是學(xué)院表(XueYuan_DZ),當(dāng)管理員修改某一學(xué)院后,系統(tǒng)把修改的信息回填到學(xué)院表,刷新數(shù)據(jù)庫(kù)。 修改科目在修改學(xué)院小節(jié)中,已經(jīng)講述了不能修改其的原因。同理,科目中的科目、該科的試題表和內(nèi)容對(duì)照表也是不允許修改的。允許修改的是科目名稱、學(xué)時(shí)和學(xué)分,因?yàn)椴煌碾A段
40、對(duì)學(xué)生的要求也不相同,直接反應(yīng)在學(xué)時(shí)和學(xué)分上。修改科目與修改學(xué)院的操作過程、實(shí)現(xiàn)方法相似。不同的是要查的數(shù)據(jù)庫(kù)表是科目表(KeMu)。這里不在敘述。 修改對(duì)照表這里所說(shuō)的對(duì)照表是指難度對(duì)照表和教學(xué)要求對(duì)照表。關(guān)于建立和修改這兩種表格的原因請(qǐng)見第三章的總體設(shè)計(jì)之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)。修改對(duì)照表的界面 4.2-5 如下:界面 4.2-5關(guān)于如何使用這兩個(gè)功能是與修改學(xué)院和修改科目十分類似,看到界面就應(yīng)該會(huì)操作。修改對(duì)照表的實(shí)現(xiàn)過程也與上述的修改學(xué)院和修改科目相似,只不過修改難度對(duì)照表要查的數(shù)據(jù)庫(kù)是難度對(duì)照表(NanDu_DZ),修改教學(xué)要求對(duì)照表要查的是教學(xué)要求對(duì)照表(JiaoXue_DZ)。4.2.4 刪
41、除庫(kù)刪除庫(kù)的程序流程圖:如圖 4- 刪除學(xué)院在刪除學(xué)院界面上,所有已存在的學(xué)院被列舉出來(lái),選中一個(gè)學(xué)院名稱后,有關(guān)該學(xué)院的相關(guān)信息就顯示出來(lái),單擊刪除按鈕后,為了保險(xiǎn)起見,出現(xiàn)“是否真的刪除”字樣的確認(rèn)信息,單擊是按鈕則學(xué)院被刪除,單擊否按鈕則取消刪除。刪 除 學(xué) 院 的 具 體 實(shí) 現(xiàn) 過 程 是 : 系 統(tǒng) 到查 學(xué) 院 表(XueYuan_DZ), 再查科目表(KeMu) 獲得該學(xué)院包含的科目, 對(duì)所有的科目取前兩位,若其序號(hào)與該學(xué)院的相等,則把該科名稱列舉出來(lái)。確認(rèn)刪除后,在學(xué)院表(XueYuan_DZ)中這個(gè)學(xué)院就真的被刪除了。但是,該學(xué)院所包含的科目沒有被真正刪除,而是從科目表(K
42、eMu)轉(zhuǎn)存到科目備份表(KeMuBF)中。這樣做的原因已經(jīng)在第三章總體設(shè)計(jì)之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)中有所闡述。 刪除科目如下的界面 4.2-6:界面 4.2-6刪除科目與刪除學(xué)院類似,在上面的敘述中知道,實(shí)質(zhì)上,刪除學(xué)院包含著刪除科目的內(nèi)容。刪除科目亦并非真的刪除,而是把它放到了科目備份表(KeMuBF)中。它的試題表(_QD)和內(nèi)容對(duì)照表(_DZ)也仍然存在于數(shù)據(jù)庫(kù)中。4.2.5 統(tǒng)計(jì)庫(kù)該項(xiàng)功能是讓管理員對(duì)本系統(tǒng)在總體上有一個(gè)更深入、透徹的了解。而且界面上使用了直方圖和圓餅圖,看起來(lái)更加簡(jiǎn)單、直觀。 學(xué)院統(tǒng)計(jì)學(xué)院統(tǒng)計(jì)的界面 4.2-7 如下:界面 4.2-7選中列表框中的學(xué)院名稱,該學(xué)院的所有信息就顯
43、示在界面上,而且用圓餅圖直觀表示了該學(xué)院的題型種類和數(shù)量。學(xué)院統(tǒng)計(jì)的實(shí)現(xiàn)過程現(xiàn)敘述如下:查學(xué)院表(XueYuan_DZ),把其中所有的學(xué)院名寫到 List 列表框中。當(dāng)在界面上點(diǎn)擊學(xué)院名稱時(shí),再把該學(xué)院在學(xué)院表(XueYuan_DZ)中的相關(guān)信息寫入到界面中的“學(xué)院信息”一欄。同時(shí)查找科目表(KeMu),取科目字段的前兩位,若與選中學(xué)院的相同,就將這科的名稱寫到“包含的科目”一欄中。關(guān)于“題量分配”一欄的統(tǒng)計(jì)稍稍復(fù)雜一些:首先根據(jù)該學(xué)院所含的科目總數(shù)確定循環(huán)的次數(shù),便于累加試題個(gè)數(shù)與題型總數(shù)。把題庫(kù)中所有的題型放在一個(gè)一維數(shù)組中,另一個(gè)一維數(shù)組存放與前一個(gè)數(shù)組對(duì)應(yīng)的題型個(gè)數(shù),初值為 0。然后用
44、循環(huán)查遍該學(xué)院包含的科目的試題表。累計(jì)題型個(gè)數(shù)和每種題型的總數(shù)。在第二個(gè)一維數(shù)組為 0的項(xiàng),就說(shuō)明該學(xué)院不含有與之對(duì)應(yīng)的題型。再把這個(gè)統(tǒng)計(jì)結(jié)果反映在圓餅圖中。統(tǒng)計(jì)學(xué)院的程序代碼如下:txtSQL = select * from kemu where kechengbh like & Trim(Text1.Text) & % & Set mrc = ExecuteSQL(txtSQL, MsgText)ReDim KeMu(mrc.RecordCount) 重新定義樹組 KeMutotal = mrc.RecordCount該學(xué)院包含的科目總數(shù) If mrc.EOF = True ThenLis
45、t2.AddItem 沒有屬于該學(xué)院的科目 Frame5.Visible = FalseExit SubElseFor i = 1 To mrc.RecordCount List2.AddItem mrc.Fields(0) KeMu(i - 1) = mrc.Fields(2) mrc.MoveNextNext i End If統(tǒng)計(jì)題數(shù)For i = 1 To KeMutotaltxtSQL = select tixingma ,count(tihao) from & _ Trim(KeMu(i - 1) & where neirongma group by tixingmaSet mrc
46、For k =For= 1jExecuteSQL(txtSQL, MsgText) To mrc.RecordCount= 0 To TXtotalIf TX(j) = mrc.Fields(0) Then找對(duì)應(yīng)的題型= TXnum(j) + mrc.Fields(1) 填加題數(shù)TXnum(j) End IfNext j mrc.MoveNextNext k Next IFor i = 0 To TXtotal If TXnum(i) 0 Text4.Text =Then Val(Text4.Text) + 1XYtishu = XYtishu + TXnum(i) End IfNext I學(xué)
47、院的總題數(shù)Text5.Text = Val(XYtishu)MSChart1.ColumnCount = Val(Text4.Text) 設(shè)計(jì)餅圖MSChart1.ColumnLabelIndex = 1For i = 0 To TXtotalIf TXnum(i) 0 Then kuai = kuai + 1 MSChart1.Column = kuaiMSChart1.ColumnLabelCount = kuai MSChart1.ColumnLabel = TXnum(i) MSChart1.Data = TXnum(i)End If Next Ikuai = 0MSChart1.Co
48、lumnLabelIndex = 2For i = 0 To TXtotalIf TXnum(i) 0 Then kuai = kuai + 1 MSChart1.Column = kuaiMSChart1.ColumnLabelCount = kuai+2 MSChart1.ColumnLabel = TX(i) & End IfNext i 科目統(tǒng)計(jì)科目統(tǒng)計(jì)的界面 4.2-8 如下:界面 4.2-8選中列表框中的科目名稱,該科的所有信息就顯示在界面上,而且用直方圖表示了該科包含的題型種類和數(shù)量??颇拷y(tǒng)計(jì)的實(shí)現(xiàn)過程與統(tǒng)計(jì)學(xué)院的實(shí)現(xiàn)過程大同小異,或者說(shuō)更簡(jiǎn)單一些:也是要到查該科目的試題表,關(guān)于
49、題型種類和數(shù)量的統(tǒng)計(jì)過程與學(xué)院統(tǒng)計(jì)中的完全相同,不再多說(shuō)。 試題統(tǒng)計(jì)試題統(tǒng)計(jì)分為整體統(tǒng)計(jì)和詳細(xì)統(tǒng)計(jì)。整體統(tǒng)計(jì)的界面 4.2-9 如下:界面 4.2-9整體統(tǒng)計(jì)的過程實(shí)質(zhì)上與前面的統(tǒng)計(jì)過程是相同的。只不過是要查遍所有的試題表,而且數(shù)組個(gè)數(shù)由前面的 2 個(gè)增加到 6 個(gè),其中題型種類和對(duì)應(yīng)題型個(gè)數(shù)的一維數(shù)組兩個(gè),難度種類和對(duì)應(yīng)難度個(gè)數(shù)的一維數(shù)組兩個(gè),教學(xué)要求種類和對(duì)應(yīng)教學(xué)要求的個(gè)數(shù)的一維數(shù)組兩個(gè)。所謂詳細(xì)統(tǒng)計(jì)就是統(tǒng)計(jì)出某科目中各章、節(jié)、小節(jié)的題型種類和個(gè)數(shù),難度的種類和個(gè)數(shù),教學(xué)要求的種類和個(gè)數(shù)。詳細(xì)統(tǒng)計(jì)的界面4.2-10 如下:界面 4.2-10關(guān)于詳細(xì)統(tǒng)計(jì)與整體統(tǒng)計(jì)的不同之處就是在該科目試題表
50、中用到了內(nèi)容碼這個(gè)字段,進(jìn)而需要查內(nèi)容對(duì)照表。4.3 試題操作模塊這能模塊允許所有的用戶使用。不同的用戶對(duì)試題的要求一定不相同,他們總是苦于題庫(kù)中沒有自己理想的試題。此題庫(kù)管理系統(tǒng)為用戶提供了極大的方便,任由用戶操作。這里所說(shuō)的試題操作可以是對(duì)題庫(kù)中已經(jīng)存在的試題進(jìn)行操作-修改單題和刪除單題,也可以是填加試題。試題操作的程序流程圖:如圖 4-4填加試題填加單題填加單題中有兩個(gè)一個(gè)是試題描述,另一個(gè)是試題內(nèi)容。所謂試題描述就是要求填寫關(guān)于這道試題的相關(guān)內(nèi)容-所屬科目、題型、難度、分值、本專業(yè)和非專業(yè)的教學(xué)要求,以及該試題所在的章、節(jié)。試題內(nèi)容分三項(xiàng):題干、和試題。當(dāng)所有信息按要求填寫正確(否則有
51、錯(cuò)誤提示信息),單擊錄入則系統(tǒng)自動(dòng)為其編寫題號(hào)將其錄入庫(kù)中。填加單題的實(shí)現(xiàn)過程比較簡(jiǎn)單:當(dāng)試題描述和試題內(nèi)容填寫正確后,單擊錄入時(shí),系統(tǒng)到數(shù)據(jù)庫(kù)目表(KeMu),根據(jù)用戶選擇的科目名稱來(lái)獲得該科的科目和試題表名。系統(tǒng)再查找此單題所屬科目的試題表,然后把試題描述和試題內(nèi)容的相關(guān)信息對(duì)應(yīng)填到表中。需要說(shuō)明的是被填加的試題在表中的位置。系統(tǒng)首先瀏覽表,檢查內(nèi)容碼是否為空,若遇到內(nèi)容碼為空的的,就把該試題加到表中此位置,覆蓋原來(lái)的內(nèi)容,因?yàn)榇藭r(shí)題號(hào)字段已有內(nèi)容,所以系統(tǒng)無(wú)須為其生成題號(hào)。若沒有內(nèi)容碼為空的,就把該試題加到表尾,生成的題號(hào)就是科目和上一題題號(hào)最后四位數(shù)字加 1 的連接,共 10 位。填加
52、單題的代碼如下:txtSQL = select KeCheng & rom KeMu where KeChengMing = & Combo1.TextSet mrc = ExecuteSQL(txtSQL, MsgText)得到題號(hào)的前 6 位Bh = mrc.Fields(0) mrc.Close生成題號(hào)的后 4 位txtSQL = select * from & Trim(Combo1.Text & _QD) Set Jrc = ExecuteSQL(txtSQL, MsgText)Do While Jrc.EOF = FalseIf Left(Jrc.Fields(0), 6) = *
53、 ThenShh = Right(Jrc.Fields(0), 4)中間有空號(hào)碼Kong = True Exit DoEnd IfJrc.MoveNextLoop說(shuō)明沒有空號(hào)碼,在最后面加題If Jrc.EOF = True ThenHh = Jrc.RecordCount + 1 Kong = False:Jrc.Close判斷位數(shù)If Hh 10 Then得到后 4 位Shh = Trim(000 & Trim(Str$(Hh) ElseIf Hh 100 ThenShh = Trim(00 & Trim(Str$(Hh) ElseIf Hh 1000 ThenShh = Trim(0 &
54、 Trim(Str$(Hh) ElseShh = Trim(Str$(Hh) End IfEnd If End IfEnd If生成題號(hào)*TH = Trim(Bh & Shh)比較章,節(jié),小節(jié),生成內(nèi)容碼If Trim(Combo8.Text) = ThentxtSQL = select NeiRongMa from & Combo1.Text NeiRongMiaoShu= & Trim(Combo7.Text) & ElseIf Trim(Combo9.Text) = Then& _DZ & wheretxtSQL = select NeiRongMa from & Combo1.Text
55、 & _DZ & where NeiRongMiaoShu= & Trim(Combo8.Text) & ElsetxtSQL = select NeiRongMa from & Combo1.Text & _DZ & where NeiRongMiaoShu= & Trim(Combo9.Text) & End If End Ifset mrc = ExecuteSQL(txtSQL, MsgText)NM = mrc.Fields(0)生成內(nèi)容碼*mrc.ClosetxtSQL = select TiXingID from TiXing_DZ where TiXingMing= & Tri
56、m(Combo2.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText)TX = mrc.Fields(0) mrc.Close生成題型碼*txtSQL = select xishu from NanDu_DZ where NanDu= & Trim(Combo3.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText)ND = mrc.Fields(0) mrc.Close生成難度碼*txtSQL = select xishu from JiaoXue_DZ where JiaoXueYaoQiu= Trim(Combo4
57、.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText)&YQ1 = mrc.Fields(0) mrc.Close生成本專業(yè)教學(xué)要求碼*txtSQL = select xishu from JiaoXue_DZ where JiaoXueYaoQiu= Trim(Combo6.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText)&YQ2 = mrc.Fields(0) mrc.Close生成非專業(yè)教學(xué)要求碼*向試題If Kong Then表中填加內(nèi)容有空題號(hào)存在Jrc.Fields(0) Jrc.Fields(3) J
58、rc.Fields(5) Jrc.Fields(7) Jrc.Fields(9) Jrc.Fields(11) Jrc.Fields(12) Jrc.Fields(13) Jrc.Update Jrc.Close=TH: Jrc.Fields(1) = NM: Jrc.Fields(2) = TX Val(Text1.Text): Jrc.Fields(4) = NDYQ1: 0:0:Jrc.Fields(6) = YQ2 Jrc.Fields(8) = ShiJianJrc.Fields(10) = Trim(Text2.Text)=Trim(Text3.Text) Trim(Text4.T
59、ext) QuFenDuElsetxtSQL = select* from & Combo1.Text & _QDSet mrc = ExecuteSQL(txtSQL, MsgText) mrc.AddNewmrc.Fields(0) mrc.Fields(3) mrc.Fields(4) mrc.Fields(6) mrc.Fields(10) mrc.Fields(11) mrc.Fields(12) mrc.Update mrc.CloseIf=TH: mrc.Fields(1) = NM: mrc.Fields(2) = TX Val(Text1.Text)ND: mrc.Field
60、s(5) YQ2: mrc.Fields(7) Trim(Text2.Text): Trim(Text3.Text): Trim(Text4.Text):= YQ1= 0mrc.Fields(9) = 0 mrc.Fields(8) = ShiJian mrc.Fields(13) = QuFenDu=EndMsgBox 試題已經(jīng)填加到試題 批量加題表中, vbOKOnly, 成功在批量加題中又分為手工加題和自動(dòng)加題 。.1 手工加題手工加題的界面 4.3-1 如下:界面 4.3-1這個(gè)界面的操作和要求與填加單題十分相似,它的實(shí)現(xiàn)過程也與填加單題完全相同。這看起來(lái)手工加題似乎沒有多大作用,甚至
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度數(shù)據(jù)中心數(shù)據(jù)中心配套工程委托代建合同性質(zhì)與責(zé)任界定3篇
- 2025年度杭州城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同6篇
- 新質(zhì)生產(chǎn)力驅(qū)動(dòng)戶外運(yùn)動(dòng)產(chǎn)業(yè)高質(zhì)量發(fā)展:供需邏輯、效應(yīng)機(jī)制及實(shí)現(xiàn)路徑
- 醫(yī)院信息化系統(tǒng)報(bào)價(jià)方案
- 塑料橡膠材料專業(yè)超聲波塑料焊接深圳市恒波超聲設(shè)備有限公
- 純堿的性質(zhì)課件
- 長(zhǎng)治2024年山西長(zhǎng)治文化藝術(shù)學(xué)校(豫劇團(tuán))招聘豫劇演員專業(yè)技術(shù)人員筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解版
- 零售業(yè)智慧物流網(wǎng)絡(luò)構(gòu)建考核試卷
- 零售業(yè)數(shù)據(jù)分析工具考核試卷
- 鐵路機(jī)車車輛配件售后服務(wù)體系建設(shè)考核試卷
- (八省聯(lián)考)2025年高考綜合改革適應(yīng)性演練 語(yǔ)文試卷(含答案解析)
- 數(shù)字媒體技術(shù)應(yīng)用基礎(chǔ)知識(shí)單選題及答案解析
- GB/T 45002-2024水泥膠砂保水率測(cè)定方法
- 2025年高考?xì)v史復(fù)習(xí)之小題狂練300題(選擇題):世界多極化與經(jīng)濟(jì)全球化(20題)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之1:0 引言(雷澤佳編制-2025B0)
- 2024版環(huán)衛(wèi)清潔班車租賃服務(wù)協(xié)議3篇
- 2024年《論教育》全文課件
- 浙江省溫州市鹿城區(qū)2023-2024學(xué)年三年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 生命安全與救援學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 大一中國(guó)近代史綱要期末考試試題及答案
- 文創(chuàng)園項(xiàng)目可行性方案
評(píng)論
0/150
提交評(píng)論