版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、B/S模式的下試卷自動(dòng)生成系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)信息與計(jì)算科學(xué)06101班 馬德嶺 指導(dǎo)老師:莊曰華摘 要:教學(xué)評(píng)價(jià)是教學(xué)工作的一個(gè)重要環(huán)節(jié),通常的教學(xué)評(píng)價(jià)方式多為通過(guò)試卷進(jìn)行考試,因而試卷的質(zhì)量將直接影響到教學(xué)評(píng)價(jià)的結(jié)果。一般情況下,教師出試卷時(shí)要么到龐大的題庫(kù)里一道一道的把題目挑選出來(lái),或是從幾本相關(guān)的書(shū)里把題挑選出來(lái)組成一份試卷,這樣既費(fèi)時(shí)又費(fèi)力,而且很難保證試題的覆蓋面和把握試卷的難度。為了將老師從繁重的命題工作中解放出來(lái),為了提高命題的質(zhì)量和管理的現(xiàn)代化、科學(xué)化、規(guī)范化,本文使用J2EE技術(shù),采用B/S模式開(kāi)發(fā)一個(gè)試卷生成系統(tǒng)。本文在充分的需求分析基礎(chǔ)上,設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)試卷生成系統(tǒng),主要
2、完成了手動(dòng)生成試卷、自動(dòng)生成試卷、抽取現(xiàn)有試卷和用戶管理等功能。關(guān)鍵詞:試題庫(kù)系統(tǒng);試卷生成;算法;J2EE;B/SAbstract :Value of teaching is an important tathe for teaching,usually a value of teaching is from a exam ,so a quality paper straight touches the value of teaching. The general situation ,teacher thinks out a paper,reach huge exam pool each
3、finds out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher disengages from the burdensome proposition
4、 about exam, In order to improve the quality and management proposition of the modern, scientific, standardized, the paper developed a test generation system.Paper Generation System is designed and implemented based on the sufficient needs analysis in this paper,It mainly implements some functions i
5、nclude in manually and automatically generating papers,extrating some of existing papers,maintaining user information and so on.Keywords: test library system;paper generation;algorithmic;J2EE;B/S1引言隨著計(jì)算機(jī)技術(shù)的發(fā)展和普及,在我們的學(xué)習(xí)和日常生活中都離不開(kāi)計(jì)算機(jī)技術(shù),大到科研的超級(jí)計(jì)算機(jī),小到我們?nèi)粘J褂玫氖痔犭娫?,?shí)際都是計(jì)算機(jī)技術(shù)的應(yīng)用,對(duì)于學(xué)校、企事業(yè)單位來(lái)說(shuō),計(jì)算機(jī)特別是PC機(jī)已經(jīng)相當(dāng)普及
6、,大家對(duì)計(jì)算機(jī)的操作更加熟悉,充分發(fā)揮設(shè)備潛能是一種節(jié)約的表現(xiàn),是一種美德。設(shè)計(jì)編寫(xiě)試卷生成系統(tǒng),是基于二種目的:一是充分利用現(xiàn)有的計(jì)算機(jī)系統(tǒng)減輕工作人員的勞動(dòng)強(qiáng)度。二是摒棄傳統(tǒng)的手工整理、以試卷(紙質(zhì))的形式存放到檔案室,浪費(fèi)紙張等原材料,不利于保護(hù)環(huán)境。2 開(kāi)發(fā)工具簡(jiǎn)介2.1 技術(shù)方案選擇選擇SQL Server 2000作為后臺(tái)的數(shù)據(jù)庫(kù),選擇JAVA、JSP、JavaScript、Html作為應(yīng)用程序開(kāi)發(fā)工具,運(yùn)用Tomcat服務(wù)器技術(shù),整個(gè)系統(tǒng)完全基于B/S (Brower/Server)模式進(jìn)行設(shè)計(jì)。B/S 開(kāi)發(fā)模式伴隨著Internet的迅速發(fā)展,計(jì)算機(jī)技術(shù)正在由基于B/S(Bro
7、wer/ Server)模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應(yīng)用系統(tǒng)。過(guò)去,網(wǎng)絡(luò)軟件的開(kāi)發(fā)都采用B/S(Brower)模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問(wèn)題:a) 系統(tǒng)安裝、調(diào)試、維護(hù)和升級(jí)困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時(shí),必須對(duì)每一個(gè)客戶端分別進(jìn)行配置,同樣,在軟件升級(jí)時(shí)也要對(duì)客戶端分別處理。b) 在整個(gè)系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了客戶端,必然會(huì)增加安全隱患。B/S模式帶來(lái)了巨大的好處:a) 開(kāi)發(fā)成本及維護(hù)成本降低。由于C/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,即應(yīng)用程序在部署、升級(jí)、維護(hù)時(shí),只
8、需要在服務(wù)器端進(jìn)行配置就可以了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器(Server)端完全通過(guò)WWW瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Brower)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。b) 良好的安全性能,防火墻技術(shù)可以保證后臺(tái)數(shù)據(jù)庫(kù)的安全性。所有的配置工作都集中在服務(wù)器端且所有客戶端請(qǐng)求都是通過(guò)DBMS來(lái)訪問(wèn)數(shù)據(jù)庫(kù),從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險(xiǎn)。2.2 SQL Server2000SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的。于1988 年推出了
9、第一個(gè)OS/2 版本在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上專注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本,Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。在系統(tǒng)中用到的是Microsoft SQL Server 以后簡(jiǎn)稱為SQL Server或MS SQL Server。SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本該版本繼承了SQL Se
10、rver 7.0 版本的優(yōu)點(diǎn)。同時(shí)又比它增加了許多更先進(jìn)的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺(tái)使用。3 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)功能模塊圖根據(jù)需求分析,將系統(tǒng)分為四個(gè)模塊:系統(tǒng)管理模塊,試卷生成管理模塊,數(shù)據(jù)庫(kù)管理系統(tǒng),系統(tǒng)幫助模塊。系統(tǒng)功能模塊結(jié)構(gòu)如圖4-1所示。試卷管理系統(tǒng)系統(tǒng)管理試卷生成管理數(shù)據(jù)庫(kù)管理系統(tǒng)幫助用戶管理密碼管理自動(dòng)生成試卷手動(dòng)生成試卷抽取現(xiàn)有試卷數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)備份系統(tǒng)關(guān)于系統(tǒng)幫助圖3-1 系統(tǒng)功能模塊圖下面對(duì)各
11、功能模塊的子功能進(jìn)行較詳細(xì)的討論。(1) 系統(tǒng)管理模塊該模塊包括用戶管理模塊和用戶密碼管理模塊。系統(tǒng)啟動(dòng)時(shí)調(diào)用此模塊,要求用戶先進(jìn)行登陸。登陸功能模塊如圖4-2所示。系統(tǒng)用戶信息管理員教務(wù)管理員教師修改管理員密碼添加刪除修改其他用戶審核添加修改其他用戶管理自身帳戶查詢?cè)囶}打印試題管理自身賬號(hào)圖3-2 登陸模塊功能圖(2) 試卷生成管理模塊試卷生成管理模塊主要包括如下子模塊:n 抽取現(xiàn)有試卷模塊:顯示預(yù)覽試卷,保存答案,刪除試卷功能。n 手動(dòng)生成試卷模塊:顯示加入試卷,保存試卷功能。n 自動(dòng)生成模塊:顯示生成試卷,預(yù)覽試卷,預(yù)覽答案,保存試卷功能。詳細(xì)的試卷生成管理功能模塊如圖4-3所示。試卷生
12、成管理抽取現(xiàn)有試卷手動(dòng)生成試卷自動(dòng)生成試卷預(yù)覽試卷保存答案刪除試卷加入試卷保存試卷生成試卷預(yù)覽答案預(yù)覽試卷預(yù)覽答案圖3-3 試卷生成管理模塊功能圖(3) 數(shù)據(jù)庫(kù)管理模塊主要包括數(shù)據(jù)庫(kù)還原和數(shù)據(jù)庫(kù)備份。數(shù)據(jù)庫(kù)管理模塊結(jié)構(gòu)如圖4-4所示。數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)備份 圖3-4 數(shù)據(jù)庫(kù)管理模塊功能圖(4) 系統(tǒng)幫助模塊主要包括系統(tǒng)幫助和系統(tǒng)關(guān)于。系統(tǒng)幫助模塊結(jié)構(gòu)如圖4-5所示。系統(tǒng)幫助系統(tǒng)關(guān)于幫助圖3-5 系統(tǒng)幫助模塊功能圖3.2 數(shù)據(jù)表設(shè)計(jì)根據(jù)系統(tǒng)功能設(shè)計(jì),把數(shù)據(jù)庫(kù)命名:STGL,在SQL Server 2000數(shù)據(jù)庫(kù)創(chuàng)建了題型表、難度程度表、出卷人表、用戶信息表等。各數(shù)據(jù)表的具體情況如表1至表
13、9所示。表 用戶信息表(usermanagement)字段中文名字段英文名字段類型字段長(zhǎng)度姓名NameIDchar20密碼PWDchar20用戶類型QXint2表 題型表(TX)字段中文名字段英文名字段類型字段長(zhǎng)度題型Typechar10名稱TypeNamechar10表 難度程度表(NYD)字段中文名字段英文名字段類型字段長(zhǎng)度編號(hào)BHint4難易度NDchar4表4 選擇題表(selects)字段中文名字段英文名字段類型字段長(zhǎng)度題號(hào)BHchar10題型Typechar10題目Topicchar100選項(xiàng)AAchar100選項(xiàng)BBchar100選項(xiàng)CCchar100選項(xiàng)DDchar100正確答
14、案Answerchar1難易度NDchar4出自章節(jié)ZJchar2表5 填空題表(adds)字段中文名字段英文名字段類型字段長(zhǎng)度題號(hào)BH char10題型Typechar10題目TMchar100空1K1char50空2K2char50空3K3char50難易度NDchar4出自章節(jié)ZJchar23.3 組卷算法3.3.1 現(xiàn)有算法分析以往的具有自動(dòng)組卷功能的考試系統(tǒng)大多采用隨機(jī)選取法和回溯試探法。隨機(jī)選取法根據(jù)狀態(tài)空間的控制指標(biāo),由計(jì)算機(jī)隨機(jī)的抽取一道試題放入試題庫(kù),此過(guò)程不斷重復(fù),直到組卷完畢,或已無(wú)法從題庫(kù)中抽取滿足控制指標(biāo)的試題為止。該方法結(jié)構(gòu)簡(jiǎn)單,對(duì)于單道題的抽取運(yùn)行速度較快,但是對(duì)
15、于整個(gè)組卷過(guò)程來(lái)說(shuō)組卷成功率低,即使組卷成功,花費(fèi)時(shí)間也令人難以忍受。尤其是當(dāng)題庫(kù)中各狀態(tài)類型平均出題量較低時(shí),組卷往往以失敗而告終?;厮菰囂椒ㄟ@是將隨機(jī)選取法產(chǎn)生的每一狀態(tài)類型紀(jì)錄下來(lái),當(dāng)搜索失敗時(shí)釋放上次紀(jì)錄的狀態(tài)類型,然后再依據(jù)一定的規(guī)律變換一種新的狀態(tài)類型進(jìn)行試探,通過(guò)不斷的回溯試探直到試卷生成完畢或退回出發(fā)點(diǎn)為止,這種有條件的深度優(yōu)先算法,對(duì)于狀態(tài)類型和出題量都較少的題庫(kù)系統(tǒng)而言,組卷成功率較好。 分析上述兩種算法的優(yōu)缺點(diǎn),不難發(fā)現(xiàn),在限制條件狀態(tài)空間的控制下,隨機(jī)選取法有時(shí)能夠抽取出一組令用戶滿意的試題。只不過(guò)由于它隨機(jī)選取試題的范圍太大,無(wú)法確定目前條件下哪些區(qū)域能夠抽取合適的試
16、題,反而可能在那些已經(jīng)證明是無(wú)法抽取合適試題的區(qū)域內(nèi)反復(fù)選題,進(jìn)行大量的無(wú)效操作進(jìn)入死循環(huán),最終導(dǎo)致組卷失敗?;厮菰囂椒ńM卷成功率高,但它是以犧牲大量的時(shí)間為代價(jià)的,由于本軟件只是個(gè)小型的單科考試組卷系統(tǒng),結(jié)構(gòu)簡(jiǎn)單,出題量也較少,所以本系統(tǒng)選擇相對(duì)簡(jiǎn)單,組卷成功率較好的回溯試探法進(jìn)行組卷。3.3.2 回溯試探法的應(yīng)用回溯算法也叫試探法,它是一種系統(tǒng)地搜索問(wèn)題的解的方法?;厮菟惴ǖ幕舅枷胧牵簭囊粭l路往前走,能進(jìn)則進(jìn),不能進(jìn)則退回來(lái),換一條路再試。用回溯算法解決問(wèn)題的一般步驟為: 1、定義一個(gè)解空間,它包含問(wèn)題的解;2、利用適于搜索的方法組織解空間;3、利用深度優(yōu)先法搜索解空間;4、利用限界函數(shù)
17、避免移動(dòng)到不可能產(chǎn)生解的子空間。 問(wèn)題的解空間通常是在搜索問(wèn)題的解的過(guò)程中動(dòng)態(tài)產(chǎn)生的,這是回溯算法的一個(gè)重要特性。 本系統(tǒng)使用的是回溯法的啟發(fā)式搜索,以試題題型,試題分值和選題數(shù)量為約束條件進(jìn)行隨機(jī)搜索,而把設(shè)置的試卷總分?jǐn)?shù)作為一個(gè)解空間。如果各題型分值之和等于用戶設(shè)置的試卷總分?jǐn)?shù),則產(chǎn)生一個(gè)有效解,系統(tǒng)生成一份試卷,試題的題型,編號(hào),分值等信息儲(chǔ)存進(jìn)試題庫(kù)表中。通過(guò)系統(tǒng)的預(yù)覽試卷功能,系統(tǒng)通過(guò)所存信息搜索數(shù)據(jù)庫(kù),獲取試題內(nèi)容,并輸入Word文檔中組成一份完整試卷。3.4 自動(dòng)組卷自動(dòng)組卷是時(shí)系統(tǒng)根據(jù)用戶要求,隨機(jī)選取試題,組成一份完整的試卷。本系統(tǒng)使用的是回溯探取法隨機(jī)選題。其主要過(guò)程如下:
18、(1)用戶輸入選題要求,如各題型數(shù)量,題型分值和題型難度,并設(shè)置試卷總分?jǐn)?shù)。(2)初始化隨機(jī)數(shù)生成器。(3)系統(tǒng)根據(jù)題型數(shù)量和題型難度要求在各題型表中隨機(jī)抽取試題,將抽取到的試題的“編號(hào)”、“試題類型”、“分值”等信息存入臨時(shí)表LSSJ中,并對(duì)其進(jìn)行排序和比較,如有重復(fù)則返回繼續(xù)搜索,防止試題被重復(fù)選取,一直到抽取試題數(shù)等于用戶設(shè)置的各題型的試題數(shù)量。(4)系統(tǒng)自動(dòng)判斷用戶設(shè)置的試卷總分值與試題總分值是否相等,是則生成試卷,并將試題信息“編號(hào)”、“分值”、“難度”等信息存入數(shù)據(jù)庫(kù)表SJT中,且生成“試卷代號(hào)”、“試卷創(chuàng)建者”、并判斷“試卷難度”,存入數(shù)據(jù)庫(kù)表SJ中。否則試卷生成失敗,并清空臨時(shí)
19、表SJ中所有信息。(5)設(shè)置試卷模板。(6)預(yù)覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫(kù)表SJT中信息搜索題庫(kù)試題內(nèi)容,并按設(shè)置好的試卷模板導(dǎo)入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。3.5 手動(dòng)組卷由于自動(dòng)生成的試卷,對(duì)于試卷知識(shí)覆蓋面的問(wèn)題不好控制,為了解決這各問(wèn)題,所以本軟件增加了另一種組卷方式,也就是手動(dòng)生成試卷。此組卷方式的優(yōu)點(diǎn)在于,系統(tǒng)將各題型的試題具體的分到了此科考試的具體章節(jié)和知識(shí)點(diǎn)。用戶可以根據(jù)具體章節(jié)和知識(shí)點(diǎn)瀏覽此知識(shí)點(diǎn)下的各試題,并可以選擇加入試卷,組成一份知識(shí)覆蓋面廣的試卷。其主要組卷過(guò)程如下:(1)用戶選擇試題題型,題型分值,試題數(shù)量和知識(shí)點(diǎn),并設(shè)置試卷總分值,系統(tǒng)
20、根據(jù)用戶選擇的題型和知識(shí)點(diǎn)顯示所有試題。(2)用戶選擇試題,試題的“編號(hào)”、“難度”、“題型”等信息存入臨時(shí)表LSST中,如果重復(fù)選題,則系統(tǒng)提示“您已選擇此試題!”,否則系統(tǒng)提示“試題添加成功!”。(3)生成試卷,系統(tǒng)判斷用戶設(shè)置分?jǐn)?shù)是否與試題總分?jǐn)?shù)相等,是則生成一份完整的試卷,并將試題的“編號(hào)”、“難度”、“分值”、“類型”等信息存入數(shù)據(jù)庫(kù)表SJT中。且生成“試卷代號(hào)、”試卷創(chuàng)建者“,并判斷”試卷難度“,存入數(shù)據(jù)庫(kù)表SJ中。否則試卷生成失敗,提示用戶“您生成的試卷分值與設(shè)置的試卷分值不等,試卷生成失敗!”。 (4)設(shè)置試卷模板。(5)預(yù)覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫(kù)表SJT中信息搜索題庫(kù)試題內(nèi)容,
21、并按設(shè)置好的試卷模板導(dǎo)入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。YYN輸入試卷信息試卷總分100分?試卷生成失敗預(yù)覽試卷保存試卷保存答案自動(dòng)選擇試題程序開(kāi)始程序結(jié)束圖3-9 自動(dòng)生成試卷流程圖手動(dòng)生成試卷的流程如圖4-10所示。YN添加試題生成試卷失敗試卷總分 100分?預(yù)覽試卷保存試卷輸入試卷信息程序開(kāi)始程序結(jié)束圖3-10 手動(dòng)生成試卷流程圖3.6 抽取現(xiàn)有試卷為了讓用戶能很方便的管理已生成的試卷,本系統(tǒng)增加了抽取現(xiàn)有試卷這個(gè)功能模塊。用戶能通過(guò)這個(gè)模塊能很方便的對(duì)現(xiàn)有試卷進(jìn)行刪除和預(yù)覽,同時(shí)也能預(yù)覽用戶所選擇的試卷的答案。其主要過(guò)程如下:(1)用戶進(jìn)入抽取現(xiàn)有試卷界面
22、,系統(tǒng)自動(dòng)搜索數(shù)據(jù)庫(kù)表SJ中信息,顯示現(xiàn)有試卷的“代號(hào)”,“試卷創(chuàng)建者”,“試卷難度”。(2)用戶選擇一份已有試卷,系統(tǒng)自動(dòng)從數(shù)據(jù)庫(kù)表SJT中搜索該試卷試題的“編號(hào)”, “分值”, “難度”。(3)預(yù)覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫(kù)表SJT中信息搜索題庫(kù)試題內(nèi)容,并按設(shè)置好的試卷模板導(dǎo)入Word中,生成一份完整的試卷,并以*.doc文件的形式打開(kāi)。(4)保存答案,系統(tǒng)根據(jù)數(shù)據(jù)庫(kù)表SJT中信息搜索題庫(kù)試題答案,并按試卷模板以 *.doc文件的形式打開(kāi)。(5)刪除試卷,系統(tǒng)刪除試卷在數(shù)據(jù)庫(kù)表SJT中的信息,系統(tǒng)顯示“刪除試卷成功”。抽取現(xiàn)有試卷算法的具體流程可用圖4-11直觀說(shuō)明。NYNY保存答案程序開(kāi)始預(yù)
23、覽試卷輸出答案輸出試卷確認(rèn)刪除試卷執(zhí)行刪除程序退出選擇現(xiàn)有試卷圖3-11 抽取現(xiàn)有試卷流程圖4 關(guān)鍵技術(shù)與系統(tǒng)實(shí)現(xiàn)本系統(tǒng)是一個(gè)試卷生成管理系統(tǒng),重點(diǎn)在于組卷,所以主要是對(duì)關(guān)于試卷生成的實(shí)現(xiàn)的說(shuō)明。本系統(tǒng)包括抽取現(xiàn)有試卷,自動(dòng)生成試卷和手動(dòng)生成試卷三大功能。4.1 登錄模塊登錄界面是用戶最先看到的系統(tǒng)的界面,所以直觀上給用戶的感覺(jué)很重要,所以做一個(gè)好的界面,提高軟件的親和力。本管理系統(tǒng)登錄界面如圖5-1所示。登陸功能實(shí)現(xiàn)的核心代碼如下。圖3-1 系統(tǒng)登陸界面Private Sub cmdOK_Click() ''進(jìn)入.確定On Error GoTo Err Dim txtSql
24、As String UserName = "" If Trim(txtUserName.Text) = "" Then ''判斷用戶名是否為空 MsgBox "請(qǐng)輸入帳號(hào)!", vbOKOnly + vbExclamation, "警告" txtUserName.SetFocus Exit Sub End If If Trim(txtPassword.Text) = "" Then '判斷密碼是否為空 MsgBox "請(qǐng)輸入密碼!", vbOKOnly
25、 + vbExclamation, "警告" txtPassword.SetFocus Exit Sub End If ''判斷是否有這個(gè)用戶 txtSql = "select * from 用戶信息表 where 用戶名稱 = '" & txtUserName.Text & "'" If rs.State Then rs.Close rs.Open txtSql, CN, adOpenStatic, adLockOptimistic If rs.EOF = True Then '
26、;'如果沒(méi)有這個(gè)用戶 MsgBox "沒(méi)有這個(gè)帳號(hào),請(qǐng)重新輸入帳號(hào)!", vbOKOnly + vbExclamation, "警告" txtUserName.Text = "" txtPassword.Text = "" txtUserName.SetFocus如果輸入的用戶名和密碼正確,將對(duì)用戶的權(quán)限進(jìn)行判斷,如果是管理員就進(jìn)入到管理員模式;如果是教務(wù)管理員就進(jìn)入到教務(wù)管理員模式;如果是教師就進(jìn)入到教師模式;如果用戶沒(méi)有權(quán)限,則會(huì)警告。具體代碼如下: If Trim(rs.Fields(1) = Tri
27、m(txtPassword.Text) Then ''判斷權(quán)限 UserPrivs = "" If Trim(rs.Fields(2) = "管理員" Then ''管理員權(quán)限 IsUserMode = 1 ElseIf Trim(rs.Fields(2) = "教務(wù)管理員" Then ''教務(wù)管理員權(quán)限 IsUserMode = 2 ElseIf Trim(rs.Fields(2) = "教師" Then ''教師權(quán)限 IsUserMode = 3
28、Else ''無(wú)權(quán) IsUserMode = 0 MsgBox "你沒(méi)有權(quán)限!", vbExclamation, "警告" End End If UserPrivs = Trim(rs.Fields(2) UserName = Trim(txtUserName.Text) Unload Me Mainfrm.Show Exit Sub rs.Close miCount = miCount + 1 If miCount = 3 Then ''三次錯(cuò)誤,自動(dòng)退出程序登錄系統(tǒng)后進(jìn)入主界面如圖5-2所示。 圖3-2 軟件主界面軟件
29、主界面是各個(gè)功能模塊的調(diào)用接口,主要有以下功能:(1)題庫(kù)已有試卷:點(diǎn)擊后進(jìn)入抽取現(xiàn)有試卷的功能界面。(2)自動(dòng)生成試卷:點(diǎn)擊后進(jìn)入自動(dòng)生成試卷的功能界面。(3)手動(dòng)生成試卷:點(diǎn)擊后進(jìn)入手動(dòng)生成試卷界面。(4)題庫(kù)錄入: 點(diǎn)擊后進(jìn)入試題錄入界面。(5)數(shù)據(jù)備份:點(diǎn)擊后自動(dòng)備份數(shù)據(jù)庫(kù)。(6)關(guān)于菜單:對(duì)于本系統(tǒng)版權(quán)的說(shuō)明。4.2 試卷生成管理試卷生成管理分為三個(gè)部分:題庫(kù)已有試卷、自動(dòng)生成試卷和手動(dòng)生成試卷。下面詳細(xì)討論各部分功能的實(shí)現(xiàn)。1. 題庫(kù)已有試卷如果題庫(kù)中已經(jīng)存在試卷,可以直接從已經(jīng)存在的試卷中抽取試卷,包括如下操作:v 試卷預(yù)覽:通過(guò)WORD文檔打開(kāi)試卷,可以瀏覽已有試卷模版。v 保
30、存答案:保存所選試卷的答案。v 刪除試卷:徹底清除已存試卷的任何信息。其界面如圖5-3所示。圖3-3 抽取現(xiàn)有試卷刪除試卷的核心代碼段如下:Private Sub Command3_Click() '刪除試卷Dim rst As RecordsetIf MsgBox("是否刪除該試卷?", vbYesNo, "確認(rèn)") = vbYes Then strSQl = "select * from SJ where SJDH= '" & MStry1.TextMatrix(MStry1.RowSel, 0) &
31、; "'" '確定操作的表和方式 Set rst = QueryExt(strSQl) rst.Delete rst.Close strSQl = "select * from SJT where SJDH= '" & MStry1.TextMatrix(MStry1.RowSel, 0) & "'" '確定操作的表和方式 Set rst = QueryExt(strSQl) Do Until rst.EOF rst.Delete rst.MoveFirst Loop rst.C
32、lose MsgBox "刪除成功", vbExclamation InitGrid1 InitGrid22. 自動(dòng)生成試卷自動(dòng)生成試卷界面下可進(jìn)行如下操作:v 生成試卷:系統(tǒng)根據(jù)用戶要求隨機(jī)選題,生成試卷。v 預(yù)覽試卷:通過(guò)WORD文檔打開(kāi)剛生成試卷,可以瀏覽生成試卷模版。v 預(yù)覽答案:通過(guò)WORD文檔打開(kāi)剛生成試卷答案,可以瀏覽試卷答案。v 保存試卷:保存生成試卷“代號(hào)”、“創(chuàng)建者”、“難易度”等信息。其界面如圖5-4所示。圖3-4 自動(dòng)生成試卷界面實(shí)現(xiàn)該功能的核心代碼如下:Public Function LoadObject() '加載選擇題On Error
33、GoTo DealErrorstrSQl = "select * from Choice order by BH" '確定操作的表和方式Set rs = QueryExt(strSQl) '打開(kāi)紀(jì)錄集If rs.RecordCount > 0 Thenrs.MoveFirstDo Until rs.EOFIf rs.Fields("ND") = 5 Thenint1 = int1 + 1Else If rs.Fields("ND") = 10 Then int2 = int2 + 1 Else If rs.Fie
34、lds("ND") = 15 Then int3 = int3 + 1 End Ifrs.MoveNextLoopint4 = int1 + int2 + int3Label10(0).Caption = int1Label10(1).Caption = int2Label10(2).Caption = int3Label10(3).Caption = int4End Ifrs.CloseSet rs = NothingExit FunctionDealError: ShowError "程序執(zhí)行出錯(cuò),錯(cuò)誤信息如下:" & vbCrLf &
35、; Err.DescriptionEnd Function3. 手動(dòng)生成試卷自動(dòng)生成試卷界面下可進(jìn)行如下操作:v 加入試卷:選定加入試卷的題目,并記錄其信息。v 保存試卷:當(dāng)總分正好100分時(shí),點(diǎn)擊保存試卷,生成試卷并保存其信息。其界面如圖5-5所示。圖3-5 手動(dòng)生成試卷界面以下為保存試卷功能的核心代碼:Private Sub Command2_Click()Dim index1 As IntegerRefreshMarksSummarks=RandChoice.Summarks+RandPragramfilling.Summarks+ andAnswerQuestion.Summarks
36、+ RandPargramReading.Summarks + RandPargramDesign.SummarksIf Summarks = Combo1.Text ThenCalTestDifficultSaveContest '保存試卷,調(diào)用函數(shù)MsgBox "保存成功", vbInformationElseMsgBox "您設(shè)計(jì)的試卷與實(shí)際總分不合,請(qǐng)修改", vbCriticalEnd If4.3 系統(tǒng)中的關(guān)鍵技術(shù)實(shí)現(xiàn)4.3.1 顯示教材章節(jié)信息供用戶使用為了顯示教材章節(jié)信息供用戶使用,在數(shù)據(jù)庫(kù)里章節(jié)的存放是沒(méi)有規(guī)則也即它們的順序不一定
37、按照真實(shí)書(shū)本的章節(jié)順序來(lái)存儲(chǔ)的。但是在顯示章節(jié)信息的時(shí)候必須按照書(shū)本的章節(jié)順序來(lái)顯示。所以特別設(shè)置如下的數(shù)據(jù)類型: Dim Sql As String;Dim rs As String;論文選擇了TreeView控件來(lái)顯示章節(jié),因?yàn)檫@個(gè)控件用起來(lái)比較方便,算法代碼如下:If Not TreeView1.SelectedItem Is Nothing Then '只響應(yīng)葉節(jié)點(diǎn)(沒(méi)有孩子) If TreeView1.SelectedItem.Children = 0 Then Dim Sql As String Sql = "select BH,Type,TM,ZJ,ND fro
38、m " & ItemInfo Sql = Sql & " where ZJ= '" Sql = Sql & Mid(TreeView1.SelectedItem.Key, 3, 4) & "'" Set rs = QueryExt(Sql) DataGrid_Object rs, DataGrid1 Else4.3.2 手動(dòng)生成試卷時(shí)所選試題的臨時(shí)保存處理手動(dòng)生成試卷時(shí)要不斷的將用戶選擇的題目臨時(shí)存儲(chǔ)起來(lái),由于記錄的信息不是很多,論文用數(shù)組把添加進(jìn)去的試題的題號(hào)和類型存儲(chǔ)起來(lái),后面添加的時(shí)候檢查在
39、數(shù)組中是否存在,如果存在就證明已經(jīng)添加過(guò)了。If ItemInfo = “Choice” ThenIf RandChoice.DataExit(DataGrid1.Columns(0).Text) = True ThenText1(0).Text = Text1(0).Text + 1RandChoice.TotalNum = Text1(0).TextRandChoice.KindOfitem DataGrid1.Columns(4).Text 判斷添加試題難度,并統(tǒng)計(jì)RandChoice.IncreaseContentsRandChoice.SetContent DataGrid1.Col
40、umns(0).Text, Text1(0).Text - 1MsgBox “添加成功!”, vbInformationElseMsgBox “您已經(jīng)選擇了此題!”, vbCritical4.3.3自動(dòng)生成試卷時(shí)生成一個(gè)覆蓋知識(shí)點(diǎn)廣且試題不重復(fù)的試卷處理自動(dòng)生成試卷時(shí)如何生成一個(gè)覆蓋知識(shí)點(diǎn)廣且試題不重復(fù)的試卷,處理該問(wèn)題的關(guān)鍵算法在于如何生成一個(gè)不重復(fù)的隨機(jī)數(shù)序列。產(chǎn)生不重復(fù)隨機(jī)數(shù)算法如下:(1)首先生成隨機(jī)數(shù) For index1 = 1 To SJ Do While True Randomize tempid = Int(Rnd() * (sum - 1) + 1 flag = True
41、For index2 = 1 To index1 If tempid = RandNo(index2) Then flag = False Exit For Next index2 If flag = True Then Exit Do Loop RandNo(index1) = tempid Next index1(2)然后對(duì)生成的隨機(jī)數(shù)排序 For index1 = 1 To SJ - 1 tempid = index1 For index2 = index1 + 1 To SJ If CInt(Trim(RandNo(index2) < CInt(Trim(RandNo(tempi
42、d) Then tempid = index2 End If Next index2 temp = RandNo(index1) RandNo(index1) = RandNo(tempid) RandNo(tempid) = temp Next index1(3)最后將隨機(jī)號(hào)對(duì)應(yīng)的記錄集中編號(hào)取出 For index1 = 1 To SJ Dim intemp As Long intemp = CLng(RandNo(index1) rs.Move intemp - 1 SaveItemSerial(index1) = Trim(rs.Fields(“BH”) rs.MoveFirst Ne
43、xt index1 RItem = True4.3.4數(shù)據(jù)庫(kù)的備份與恢復(fù)1) 數(shù)據(jù)庫(kù)備份的部分代碼Public Function DBBackUp() Dim fs Set fs = CreateObject("Scripting.FileSystemObject") If fs.FileExists(App.path & "數(shù)據(jù)庫(kù)備份shijuanbeifen.mdb") Then fs.DeleteFile App.path & "數(shù)據(jù)庫(kù)備份shijuanbeifen.mdb" fs.copyfile App.path & "shijuan.mdb", App.path & "數(shù)據(jù)庫(kù)備份shijuanbeifen.mdb" MsgBox "備份完成!", 64, "數(shù)據(jù)庫(kù)備份情況"End Function2) 數(shù)據(jù)庫(kù)恢復(fù)的部分代碼:Public Function DBRestore()Dim fs Set fs = CreateObject("Scripting.FileSystemObject") syscnn.Close If f
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GA/T 2151-2024道路交通車路協(xié)同信息服務(wù)通用技術(shù)要求
- 2025-2030年中國(guó)虛擬現(xiàn)實(shí)VR行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢(shì)下礦山開(kāi)發(fā)服務(wù)行業(yè)快速做大市場(chǎng)規(guī)模戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)主題酒店行業(yè)全國(guó)市場(chǎng)開(kāi)拓戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國(guó)靈活用工行業(yè)并購(gòu)重組擴(kuò)張戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢(shì)下團(tuán)餐行業(yè)轉(zhuǎn)型升級(jí)戰(zhàn)略制定與實(shí)施研究報(bào)告
- 人力 -管培生 -導(dǎo)師與帶教手冊(cè)
- 織布廠安全管理制度
- 黑水灘河水質(zhì)調(diào)研問(wèn)卷
- 四川省成都市成華區(qū)某校2024屆高三下學(xué)期“三診”英語(yǔ)試題(音頻暫未更新)
- 申報(bào)市級(jí)高技能人才培訓(xùn)基地申報(bào)工作匯報(bào)
- 2024年高考作文素材積累:人民日?qǐng)?bào)9大主題時(shí)評(píng)
- 設(shè)立出國(guó)留學(xué)服務(wù)公司商業(yè)計(jì)劃書(shū)
- 法院安保工作管理制度
- 2023年簽證專員年度總結(jié)及下一年規(guī)劃
- 國(guó)培教師個(gè)人成長(zhǎng)案例3000字
- 員工素質(zhì)教育課件
- 高效能人士的七個(gè)習(xí)慣:實(shí)踐應(yīng)用課程:高級(jí)版
- 中國(guó)馬克思主義與當(dāng)代思考題(附答案)
- ESD靜電防護(hù)檢測(cè)及管控標(biāo)準(zhǔn)
- 結(jié)核病診斷-TSPOT-實(shí)驗(yàn)課件
評(píng)論
0/150
提交評(píng)論