




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、B/S模式的下試卷自動生成系統(tǒng)的設(shè)計與實現(xiàn)信息與計算科學06101班 馬德嶺 指導老師:莊曰華摘 要:教學評價是教學工作的一個重要環(huán)節(jié),通常的教學評價方式多為通過試卷進行考試,因而試卷的質(zhì)量將直接影響到教學評價的結(jié)果。一般情況下,教師出試卷時要么到龐大的題庫里一道一道的把題目挑選出來,或是從幾本相關(guān)的書里把題挑選出來組成一份試卷,這樣既費時又費力,而且很難保證試題的覆蓋面和把握試卷的難度。為了將老師從繁重的命題工作中解放出來,為了提高命題的質(zhì)量和管理的現(xiàn)代化、科學化、規(guī)范化,本文使用J2EE技術(shù),采用B/S模式開發(fā)一個試卷生成系統(tǒng)。本文在充分的需求分析基礎(chǔ)上,設(shè)計和實現(xiàn)了一個試卷生成系統(tǒng),主要
2、完成了手動生成試卷、自動生成試卷、抽取現(xiàn)有試卷和用戶管理等功能。關(guān)鍵詞:試題庫系統(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引言隨著計算機技術(shù)的發(fā)展和普及,在我們的學習和日常生活中都離不開計算機技術(shù),大到科研的超級計算機,小到我們?nèi)粘J褂玫氖痔犭娫挘瑢嶋H都是計算機技術(shù)的應用,對于學校、企事業(yè)單位來說,計算機特別是PC機已經(jīng)相當普及
6、,大家對計算機的操作更加熟悉,充分發(fā)揮設(shè)備潛能是一種節(jié)約的表現(xiàn),是一種美德。設(shè)計編寫試卷生成系統(tǒng),是基于二種目的:一是充分利用現(xiàn)有的計算機系統(tǒng)減輕工作人員的勞動強度。二是摒棄傳統(tǒng)的手工整理、以試卷(紙質(zhì))的形式存放到檔案室,浪費紙張等原材料,不利于保護環(huán)境。2 開發(fā)工具簡介2.1 技術(shù)方案選擇選擇SQL Server 2000作為后臺的數(shù)據(jù)庫,選擇JAVA、JSP、JavaScript、Html作為應用程序開發(fā)工具,運用Tomcat服務器技術(shù),整個系統(tǒng)完全基于B/S (Brower/Server)模式進行設(shè)計。B/S 開發(fā)模式伴隨著Internet的迅速發(fā)展,計算機技術(shù)正在由基于B/S(Bro
7、wer/ Server)模式的應用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應用系統(tǒng)。過去,網(wǎng)絡軟件的開發(fā)都采用B/S(Brower)模式,在這種模式下,主要的業(yè)務邏輯都集中于客戶端程序,因此,必然導致以下問題:a) 系統(tǒng)安裝、調(diào)試、維護和升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個客戶端分別進行配置,同樣,在軟件升級時也要對客戶端分別處理。b) 在整個系統(tǒng)中,業(yè)務邏輯和用戶界面都集中到了客戶端,必然會增加安全隱患。B/S模式帶來了巨大的好處:a) 開發(fā)成本及維護成本降低。由于C/S架構(gòu)管理軟件只安裝在服務器端(Server)上,即應用程序在部署、升級、維護時,只
8、需要在服務器端進行配置就可以了,網(wǎng)絡管理人員只需要管理服務器就行了,用戶界面主要事務邏輯在服務器(Server)端完全通過WWW瀏覽器實現(xiàn),極少部分事務邏輯在前端(Brower)實現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡管理人員只需要做硬件維護。b) 良好的安全性能,防火墻技術(shù)可以保證后臺數(shù)據(jù)庫的安全性。所有的配置工作都集中在服務器端且所有客戶端請求都是通過DBMS來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風險。2.2 SQL Server2000SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的。于1988 年推出了
9、第一個OS/2 版本在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上專注于開發(fā)推廣SQL Server 的Windows NT 版本,Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應用。在系統(tǒng)中用到的是Microsoft SQL Server 以后簡稱為SQL Server或MS SQL Server。SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的最新版本該版本繼承了SQL Se
10、rver 7.0 版本的優(yōu)點。同時又比它增加了許多更先進的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。3 系統(tǒng)設(shè)計3.1 系統(tǒng)功能模塊圖根據(jù)需求分析,將系統(tǒng)分為四個模塊:系統(tǒng)管理模塊,試卷生成管理模塊,數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)幫助模塊。系統(tǒng)功能模塊結(jié)構(gòu)如圖4-1所示。試卷管理系統(tǒng)系統(tǒng)管理試卷生成管理數(shù)據(jù)庫管理系統(tǒng)幫助用戶管理密碼管理自動生成試卷手動生成試卷抽取現(xiàn)有試卷數(shù)據(jù)庫還原數(shù)據(jù)庫備份系統(tǒng)關(guān)于系統(tǒng)幫助圖3-1 系統(tǒng)功能模塊圖下面對各
11、功能模塊的子功能進行較詳細的討論。(1) 系統(tǒng)管理模塊該模塊包括用戶管理模塊和用戶密碼管理模塊。系統(tǒng)啟動時調(diào)用此模塊,要求用戶先進行登陸。登陸功能模塊如圖4-2所示。系統(tǒng)用戶信息管理員教務管理員教師修改管理員密碼添加刪除修改其他用戶審核添加修改其他用戶管理自身帳戶查詢試題打印試題管理自身賬號圖3-2 登陸模塊功能圖(2) 試卷生成管理模塊試卷生成管理模塊主要包括如下子模塊:n 抽取現(xiàn)有試卷模塊:顯示預覽試卷,保存答案,刪除試卷功能。n 手動生成試卷模塊:顯示加入試卷,保存試卷功能。n 自動生成模塊:顯示生成試卷,預覽試卷,預覽答案,保存試卷功能。詳細的試卷生成管理功能模塊如圖4-3所示。試卷生
12、成管理抽取現(xiàn)有試卷手動生成試卷自動生成試卷預覽試卷保存答案刪除試卷加入試卷保存試卷生成試卷預覽答案預覽試卷預覽答案圖3-3 試卷生成管理模塊功能圖(3) 數(shù)據(jù)庫管理模塊主要包括數(shù)據(jù)庫還原和數(shù)據(jù)庫備份。數(shù)據(jù)庫管理模塊結(jié)構(gòu)如圖4-4所示。數(shù)據(jù)庫管理數(shù)據(jù)庫還原數(shù)據(jù)庫備份 圖3-4 數(shù)據(jù)庫管理模塊功能圖(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ù)系統(tǒng)功能設(shè)計,把數(shù)據(jù)庫命名:STGL,在SQL Server 2000數(shù)據(jù)庫創(chuàng)建了題型表、難度程度表、出卷人表、用戶信息表等。各數(shù)據(jù)表的具體情況如表1至表
13、9所示。表 用戶信息表(usermanagement)字段中文名字段英文名字段類型字段長度姓名NameIDchar20密碼PWDchar20用戶類型QXint2表 題型表(TX)字段中文名字段英文名字段類型字段長度題型Typechar10名稱TypeNamechar10表 難度程度表(NYD)字段中文名字段英文名字段類型字段長度編號BHint4難易度NDchar4表4 選擇題表(selects)字段中文名字段英文名字段類型字段長度題號BHchar10題型Typechar10題目Topicchar100選項AAchar100選項BBchar100選項CCchar100選項DDchar100正確答
14、案Answerchar1難易度NDchar4出自章節(jié)ZJchar2表5 填空題表(adds)字段中文名字段英文名字段類型字段長度題號BH char10題型Typechar10題目TMchar100空1K1char50空2K2char50空3K3char50難易度NDchar4出自章節(jié)ZJchar23.3 組卷算法3.3.1 現(xiàn)有算法分析以往的具有自動組卷功能的考試系統(tǒng)大多采用隨機選取法和回溯試探法。隨機選取法根據(jù)狀態(tài)空間的控制指標,由計算機隨機的抽取一道試題放入試題庫,此過程不斷重復,直到組卷完畢,或已無法從題庫中抽取滿足控制指標的試題為止。該方法結(jié)構(gòu)簡單,對于單道題的抽取運行速度較快,但是對
15、于整個組卷過程來說組卷成功率低,即使組卷成功,花費時間也令人難以忍受。尤其是當題庫中各狀態(tài)類型平均出題量較低時,組卷往往以失敗而告終?;厮菰囂椒ㄟ@是將隨機選取法產(chǎn)生的每一狀態(tài)類型紀錄下來,當搜索失敗時釋放上次紀錄的狀態(tài)類型,然后再依據(jù)一定的規(guī)律變換一種新的狀態(tài)類型進行試探,通過不斷的回溯試探直到試卷生成完畢或退回出發(fā)點為止,這種有條件的深度優(yōu)先算法,對于狀態(tài)類型和出題量都較少的題庫系統(tǒng)而言,組卷成功率較好。 分析上述兩種算法的優(yōu)缺點,不難發(fā)現(xiàn),在限制條件狀態(tài)空間的控制下,隨機選取法有時能夠抽取出一組令用戶滿意的試題。只不過由于它隨機選取試題的范圍太大,無法確定目前條件下哪些區(qū)域能夠抽取合適的試
16、題,反而可能在那些已經(jīng)證明是無法抽取合適試題的區(qū)域內(nèi)反復選題,進行大量的無效操作進入死循環(huán),最終導致組卷失敗?;厮菰囂椒ńM卷成功率高,但它是以犧牲大量的時間為代價的,由于本軟件只是個小型的單科考試組卷系統(tǒng),結(jié)構(gòu)簡單,出題量也較少,所以本系統(tǒng)選擇相對簡單,組卷成功率較好的回溯試探法進行組卷。3.3.2 回溯試探法的應用回溯算法也叫試探法,它是一種系統(tǒng)地搜索問題的解的方法?;厮菟惴ǖ幕舅枷胧牵簭囊粭l路往前走,能進則進,不能進則退回來,換一條路再試。用回溯算法解決問題的一般步驟為: 1、定義一個解空間,它包含問題的解;2、利用適于搜索的方法組織解空間;3、利用深度優(yōu)先法搜索解空間;4、利用限界函數(shù)
17、避免移動到不可能產(chǎn)生解的子空間。 問題的解空間通常是在搜索問題的解的過程中動態(tài)產(chǎn)生的,這是回溯算法的一個重要特性。 本系統(tǒng)使用的是回溯法的啟發(fā)式搜索,以試題題型,試題分值和選題數(shù)量為約束條件進行隨機搜索,而把設(shè)置的試卷總分數(shù)作為一個解空間。如果各題型分值之和等于用戶設(shè)置的試卷總分數(shù),則產(chǎn)生一個有效解,系統(tǒng)生成一份試卷,試題的題型,編號,分值等信息儲存進試題庫表中。通過系統(tǒng)的預覽試卷功能,系統(tǒng)通過所存信息搜索數(shù)據(jù)庫,獲取試題內(nèi)容,并輸入Word文檔中組成一份完整試卷。3.4 自動組卷自動組卷是時系統(tǒng)根據(jù)用戶要求,隨機選取試題,組成一份完整的試卷。本系統(tǒng)使用的是回溯探取法隨機選題。其主要過程如下:
18、(1)用戶輸入選題要求,如各題型數(shù)量,題型分值和題型難度,并設(shè)置試卷總分數(shù)。(2)初始化隨機數(shù)生成器。(3)系統(tǒng)根據(jù)題型數(shù)量和題型難度要求在各題型表中隨機抽取試題,將抽取到的試題的“編號”、“試題類型”、“分值”等信息存入臨時表LSSJ中,并對其進行排序和比較,如有重復則返回繼續(xù)搜索,防止試題被重復選取,一直到抽取試題數(shù)等于用戶設(shè)置的各題型的試題數(shù)量。(4)系統(tǒng)自動判斷用戶設(shè)置的試卷總分值與試題總分值是否相等,是則生成試卷,并將試題信息“編號”、“分值”、“難度”等信息存入數(shù)據(jù)庫表SJT中,且生成“試卷代號”、“試卷創(chuàng)建者”、并判斷“試卷難度”,存入數(shù)據(jù)庫表SJ中。否則試卷生成失敗,并清空臨時
19、表SJ中所有信息。(5)設(shè)置試卷模板。(6)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,并按設(shè)置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。3.5 手動組卷由于自動生成的試卷,對于試卷知識覆蓋面的問題不好控制,為了解決這各問題,所以本軟件增加了另一種組卷方式,也就是手動生成試卷。此組卷方式的優(yōu)點在于,系統(tǒng)將各題型的試題具體的分到了此科考試的具體章節(jié)和知識點。用戶可以根據(jù)具體章節(jié)和知識點瀏覽此知識點下的各試題,并可以選擇加入試卷,組成一份知識覆蓋面廣的試卷。其主要組卷過程如下:(1)用戶選擇試題題型,題型分值,試題數(shù)量和知識點,并設(shè)置試卷總分值,系統(tǒng)
20、根據(jù)用戶選擇的題型和知識點顯示所有試題。(2)用戶選擇試題,試題的“編號”、“難度”、“題型”等信息存入臨時表LSST中,如果重復選題,則系統(tǒng)提示“您已選擇此試題!”,否則系統(tǒng)提示“試題添加成功!”。(3)生成試卷,系統(tǒng)判斷用戶設(shè)置分數(shù)是否與試題總分數(shù)相等,是則生成一份完整的試卷,并將試題的“編號”、“難度”、“分值”、“類型”等信息存入數(shù)據(jù)庫表SJT中。且生成“試卷代號、”試卷創(chuàng)建者“,并判斷”試卷難度“,存入數(shù)據(jù)庫表SJ中。否則試卷生成失敗,提示用戶“您生成的試卷分值與設(shè)置的試卷分值不等,試卷生成失?。 ?。 (4)設(shè)置試卷模板。(5)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,
21、并按設(shè)置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。YYN輸入試卷信息試卷總分100分?試卷生成失敗預覽試卷保存試卷保存答案自動選擇試題程序開始程序結(jié)束圖3-9 自動生成試卷流程圖手動生成試卷的流程如圖4-10所示。YN添加試題生成試卷失敗試卷總分 100分?預覽試卷保存試卷輸入試卷信息程序開始程序結(jié)束圖3-10 手動生成試卷流程圖3.6 抽取現(xiàn)有試卷為了讓用戶能很方便的管理已生成的試卷,本系統(tǒng)增加了抽取現(xiàn)有試卷這個功能模塊。用戶能通過這個模塊能很方便的對現(xiàn)有試卷進行刪除和預覽,同時也能預覽用戶所選擇的試卷的答案。其主要過程如下:(1)用戶進入抽取現(xiàn)有試卷界面
22、,系統(tǒng)自動搜索數(shù)據(jù)庫表SJ中信息,顯示現(xiàn)有試卷的“代號”,“試卷創(chuàng)建者”,“試卷難度”。(2)用戶選擇一份已有試卷,系統(tǒng)自動從數(shù)據(jù)庫表SJT中搜索該試卷試題的“編號”, “分值”, “難度”。(3)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,并按設(shè)置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式打開。(4)保存答案,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題答案,并按試卷模板以 *.doc文件的形式打開。(5)刪除試卷,系統(tǒng)刪除試卷在數(shù)據(jù)庫表SJT中的信息,系統(tǒng)顯示“刪除試卷成功”。抽取現(xiàn)有試卷算法的具體流程可用圖4-11直觀說明。NYNY保存答案程序開始預
23、覽試卷輸出答案輸出試卷確認刪除試卷執(zhí)行刪除程序退出選擇現(xiàn)有試卷圖3-11 抽取現(xiàn)有試卷流程圖4 關(guān)鍵技術(shù)與系統(tǒng)實現(xiàn)本系統(tǒng)是一個試卷生成管理系統(tǒng),重點在于組卷,所以主要是對關(guān)于試卷生成的實現(xiàn)的說明。本系統(tǒng)包括抽取現(xiàn)有試卷,自動生成試卷和手動生成試卷三大功能。4.1 登錄模塊登錄界面是用戶最先看到的系統(tǒng)的界面,所以直觀上給用戶的感覺很重要,所以做一個好的界面,提高軟件的親和力。本管理系統(tǒng)登錄界面如圖5-1所示。登陸功能實現(xiàn)的核心代碼如下。圖3-1 系統(tǒng)登陸界面Private Sub cmdOK_Click() 進入.確定On Error GoTo Err Dim txtSql As String
24、UserName = If Trim(txtUserName.Text) = Then 判斷用戶名是否為空 MsgBox 請輸入帳號!, vbOKOnly + vbExclamation, 警告 txtUserName.SetFocus Exit Sub End If If Trim(txtPassword.Text) = Then 判斷密碼是否為空 MsgBox 請輸入密碼!, vbOKOnly + vbExclamation, 警告 txtPassword.SetFocus Exit Sub End If 判斷是否有這個用戶 txtSql = select * from 用戶信息表 whe
25、re 用戶名稱 = & txtUserName.Text & If rs.State Then rs.Close rs.Open txtSql, CN, adOpenStatic, adLockOptimistic If rs.EOF = True Then 如果沒有這個用戶 MsgBox 沒有這個帳號,請重新輸入帳號!, vbOKOnly + vbExclamation, 警告 txtUserName.Text = txtPassword.Text = txtUserName.SetFocus如果輸入的用戶名和密碼正確,將對用戶的權(quán)限進行判斷,如果是管理員就進入到管理員模式;如果是教務管理員
26、就進入到教務管理員模式;如果是教師就進入到教師模式;如果用戶沒有權(quán)限,則會警告。具體代碼如下: If Trim(rs.Fields(1) = Trim(txtPassword.Text) Then 判斷權(quán)限 UserPrivs = If Trim(rs.Fields(2) = 管理員 Then 管理員權(quán)限 IsUserMode = 1 ElseIf Trim(rs.Fields(2) = 教務管理員 Then 教務管理員權(quán)限 IsUserMode = 2 ElseIf Trim(rs.Fields(2) = 教師 Then 教師權(quán)限 IsUserMode = 3 Else 無權(quán) IsUserM
27、ode = 0 MsgBox 你沒有權(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 三次錯誤,自動退出程序登錄系統(tǒng)后進入主界面如圖5-2所示。 圖3-2 軟件主界面軟件主界面是各個功能模塊的調(diào)用接口,主要有以下功能:(1)題庫已有試卷:點擊后進入抽取現(xiàn)有試卷的功能界面。(2)自動生成試
28、卷:點擊后進入自動生成試卷的功能界面。(3)手動生成試卷:點擊后進入手動生成試卷界面。(4)題庫錄入: 點擊后進入試題錄入界面。(5)數(shù)據(jù)備份:點擊后自動備份數(shù)據(jù)庫。(6)關(guān)于菜單:對于本系統(tǒng)版權(quán)的說明。4.2 試卷生成管理試卷生成管理分為三個部分:題庫已有試卷、自動生成試卷和手動生成試卷。下面詳細討論各部分功能的實現(xiàn)。1. 題庫已有試卷如果題庫中已經(jīng)存在試卷,可以直接從已經(jīng)存在的試卷中抽取試卷,包括如下操作:v 試卷預覽:通過WORD文檔打開試卷,可以瀏覽已有試卷模版。v 保存答案:保存所選試卷的答案。v 刪除試卷:徹底清除已存試卷的任何信息。其界面如圖5-3所示。圖3-3 抽取現(xiàn)有試卷刪除
29、試卷的核心代碼段如下:Private Sub Command3_Click() 刪除試卷Dim rst As RecordsetIf MsgBox(是否刪除該試卷?, vbYesNo, 確認) = vbYes Then strSQl = select * from SJ where SJDH= & MStry1.TextMatrix(MStry1.RowSel, 0) & 確定操作的表和方式 Set rst = QueryExt(strSQl) rst.Delete rst.Close strSQl = select * from SJT where SJDH= & MStry1.TextMa
30、trix(MStry1.RowSel, 0) & 確定操作的表和方式 Set rst = QueryExt(strSQl) Do Until rst.EOF rst.Delete rst.MoveFirst Loop rst.Close MsgBox 刪除成功, vbExclamation InitGrid1 InitGrid22. 自動生成試卷自動生成試卷界面下可進行如下操作:v 生成試卷:系統(tǒng)根據(jù)用戶要求隨機選題,生成試卷。v 預覽試卷:通過WORD文檔打開剛生成試卷,可以瀏覽生成試卷模版。v 預覽答案:通過WORD文檔打開剛生成試卷答案,可以瀏覽試卷答案。v 保存試卷:保存生成試卷“代號
31、”、“創(chuàng)建者”、“難易度”等信息。其界面如圖5-4所示。圖3-4 自動生成試卷界面實現(xiàn)該功能的核心代碼如下:Public Function LoadObject() 加載選擇題On Error GoTo DealErrorstrSQl = select * from Choice order by BH 確定操作的表和方式Set rs = QueryExt(strSQl) 打開紀錄集If rs.RecordCount 0 Thenrs.MoveFirstDo Until rs.EOFIf rs.Fields(ND) = 5 Thenint1 = int1 + 1Else If rs.Field
32、s(ND) = 10 Then int2 = int2 + 1 Else If rs.Fields(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í)行出錯,錯誤信
33、息如下: & vbCrLf & Err.DescriptionEnd Function3. 手動生成試卷自動生成試卷界面下可進行如下操作:v 加入試卷:選定加入試卷的題目,并記錄其信息。v 保存試卷:當總分正好100分時,點擊保存試卷,生成試卷并保存其信息。其界面如圖5-5所示。圖3-5 手動生成試卷界面以下為保存試卷功能的核心代碼:Private Sub Command2_Click()Dim index1 As IntegerRefreshMarksSummarks=RandChoice.Summarks+RandPragramfilling.Summarks+ andAnswerQues
34、tion.Summarks + RandPargramReading.Summarks + RandPargramDesign.SummarksIf Summarks = Combo1.Text ThenCalTestDifficultSaveContest 保存試卷,調(diào)用函數(shù)MsgBox 保存成功, vbInformationElseMsgBox 您設(shè)計的試卷與實際總分不合,請修改, vbCriticalEnd If4.3 系統(tǒng)中的關(guān)鍵技術(shù)實現(xiàn)4.3.1 顯示教材章節(jié)信息供用戶使用為了顯示教材章節(jié)信息供用戶使用,在數(shù)據(jù)庫里章節(jié)的存放是沒有規(guī)則也即它們的順序不一定按照真實書本的章節(jié)順序來存儲的
35、。但是在顯示章節(jié)信息的時候必須按照書本的章節(jié)順序來顯示。所以特別設(shè)置如下的數(shù)據(jù)類型: Dim Sql As String;Dim rs As String;論文選擇了TreeView控件來顯示章節(jié),因為這個控件用起來比較方便,算法代碼如下:If Not TreeView1.SelectedItem Is Nothing Then 只響應葉節(jié)點(沒有孩子) If TreeView1.SelectedItem.Children = 0 Then Dim Sql As String Sql = select BH,Type,TM,ZJ,ND from & ItemInfo Sql = Sql & w
36、here ZJ= Sql = Sql & Mid(TreeView1.SelectedItem.Key, 3, 4) & Set rs = QueryExt(Sql) DataGrid_Object rs, DataGrid1 Else4.3.2 手動生成試卷時所選試題的臨時保存處理手動生成試卷時要不斷的將用戶選擇的題目臨時存儲起來,由于記錄的信息不是很多,論文用數(shù)組把添加進去的試題的題號和類型存儲起來,后面添加的時候檢查在數(shù)組中是否存在,如果存在就證明已經(jīng)添加過了。If ItemInfo = “Choice” ThenIf RandChoice.DataExit(DataGrid1.Colu
37、mns(0).Text) = True ThenText1(0).Text = Text1(0).Text + 1RandChoice.TotalNum = Text1(0).TextRandChoice.KindOfitem DataGrid1.Columns(4).Text 判斷添加試題難度,并統(tǒng)計RandChoice.IncreaseContentsRandChoice.SetContent DataGrid1.Columns(0).Text, Text1(0).Text - 1MsgBox “添加成功!”, vbInformationElseMsgBox “您已經(jīng)選擇了此題!”, vb
38、Critical4.3.3自動生成試卷時生成一個覆蓋知識點廣且試題不重復的試卷處理自動生成試卷時如何生成一個覆蓋知識點廣且試題不重復的試卷,處理該問題的關(guān)鍵算法在于如何生成一個不重復的隨機數(shù)序列。產(chǎn)生不重復隨機數(shù)算法如下:(1)首先生成隨機數(shù) For index1 = 1 To SJ Do While True Randomize tempid = Int(Rnd() * (sum - 1) + 1 flag = True For index2 = 1 To index1 If tempid = RandNo(index2) Then flag = False Exit For Next in
39、dex2 If flag = True Then Exit Do Loop RandNo(index1) = tempid Next index1(2)然后對生成的隨機數(shù)排序 For index1 = 1 To SJ - 1 tempid = index1 For index2 = index1 + 1 To SJ If CInt(Trim(RandNo(index2) CInt(Trim(RandNo(tempid) Then tempid = index2 End If Next index2 temp = RandNo(index1) RandNo(index1) = RandNo(te
40、mpid) RandNo(tempid) = temp Next index1(3)最后將隨機號對應的記錄集中編號取出 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 Next index1 RItem = True4.3.4數(shù)據(jù)庫的備份與恢復1) 數(shù)據(jù)庫備份的部分代碼Public Function DBBackUp() Dim fs Set fs =
41、 CreateObject(Scripting.FileSystemObject) If fs.FileExists(App.path & 數(shù)據(jù)庫備份shijuanbeifen.mdb) Then fs.DeleteFile App.path & 數(shù)據(jù)庫備份shijuanbeifen.mdb fs.copyfile App.path & shijuan.mdb, App.path & 數(shù)據(jù)庫備份shijuanbeifen.mdb MsgBox 備份完成!, 64, 數(shù)據(jù)庫備份情況End Function2) 數(shù)據(jù)庫恢復的部分代碼:Public Function DBRestore()Dim fs Set fs = CreateObject(Scri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙醫(yī)學院《土力學實驗》2023-2024學年第一學期期末試卷
- 上饒幼兒師范高等??茖W?!斗蔷€性編輯制作技術(shù)》2023-2024學年第二學期期末試卷
- 2025年樂理考試題及答案學習通
- 2025年廣東水利安全b證試題及答案
- 2025年會計學堂面試題及答案
- 2025年美術(shù)中學的考試題及答案
- 工業(yè)分析與檢驗復習測試有答案
- 2025年市政二級實務試題及答案
- 2025年專職人員考試試題及答案
- 2025年安徽單招考試試題及答案
- 2024-2030年中國不銹鋼電纜橋架行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 零星維修服務方案
- DL-T5706-2014火力發(fā)電工程施工組織設(shè)計導則
- 外科打結(jié)法課件
- (高清版)JTGT 3365-05-2022 公路裝配式混凝土橋梁設(shè)計規(guī)范
- 《民航客艙設(shè)備操作與管理》課件-項目二 客艙服務設(shè)備
- 崔允漷教授的課堂觀察框架:4個要素20個視角68個觀察點
- 普通外科臨床路徑(2019年版)
- 孕產(chǎn)婦健康知識講座活動總結(jié)
- 三D打印公開課
- 天貓店鋪規(guī)劃方案
評論
0/150
提交評論