版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 一般情況教師想出一份試卷,要么到龐大的題庫里一道一道的把題找出來,或是從幾本相關(guān)的書里把題一道一道挑出來。這樣即費時又費力,而且很難保證試題的覆蓋面和把握好試卷的難度。正是為了能夠幫助教師輕松的出一份高質(zhì)量的試卷而開發(fā)了本系統(tǒng)。</p><p> 以做一個數(shù)據(jù)庫原理這門課的題庫系統(tǒng)為例,為了達到預(yù)期
2、的標準本文最終選擇了txt文本文件做為本系統(tǒng)的終端輸出。并且實現(xiàn)了以下主要功能試題數(shù)據(jù)庫的創(chuàng)建、不同章節(jié)不同難度的試題錄入、圖片保存、試卷分析、自動生成試卷等功能,多次運行證明本系統(tǒng)運行較為穩(wěn)定且各項功能運行得比較正確,基本達到了預(yù)期的要求。</p><p> 關(guān)鍵詞: Visual Basic 6.0,SQL Server 2000,題庫管理系統(tǒng) </p><p><b>
3、 目錄</b></p><p> 1 系統(tǒng)功能概述3</p><p><b> 1.1系統(tǒng)功能3</b></p><p> 1.2系統(tǒng)結(jié)構(gòu)總圖3</p><p> 1.3系統(tǒng)E-R模型4</p><p><b> 2 數(shù)據(jù)庫設(shè)計5</b><
4、;/p><p> 2.1 需求分析5</p><p> 2.2 功能分析5</p><p> 2.4 表結(jié)構(gòu)設(shè)計21</p><p> 3 系統(tǒng)各功能模塊的詳細設(shè)計24</p><p> 3.1配置數(shù)據(jù)源(ODBC數(shù)據(jù)源)24</p><p> 3.2 窗體的設(shè)計24<
5、;/p><p> 3.3主要窗體源程序代碼28</p><p> 4系統(tǒng)優(yōu)缺點評價42</p><p><b> 參考文獻42</b></p><p><b> 1 系統(tǒng)功能概述</b></p><p><b> 1.1系統(tǒng)功能</b><
6、;/p><p><b> 系統(tǒng)功能介紹:</b></p><p> 1、創(chuàng)建題庫:本系統(tǒng)適合不同科目的老師進行試題的錄入,可根據(jù)不同的課程名創(chuàng)建不同的試題數(shù)據(jù)庫,且自動生成簡答題、單選題、多選題、填空題、難度值四張表。</p><p><b> 題庫維護系統(tǒng):</b></p><p> 該系統(tǒng)是
7、適合不同課程的老師錄入考試試題,本系統(tǒng)包括了題文的錄入、題文的查找、題文的刪除和修改,章節(jié)的設(shè)定,分值的設(shè)置,試題的難度設(shè)置,試卷分析,以及生成試卷的功能。</p><p><b> 2、生成卷:</b></p><p> 該系統(tǒng)是本軟件的主要的功能的體現(xiàn),不受分值和難易程度的限制,可以人為定義,同時在分析的過程中那判定合理性,并提示最高設(shè)置值,讓老師更合理地考察
8、不同程度的學(xué)生的學(xué)習(xí)情況。</p><p> 3、各個試題數(shù)據(jù)庫中主要包含以下實體及其屬性:</p><p> ?。?)簡答題(旅游團編號、旅游點名稱、地理位置、旅游天數(shù),價格,出發(fā)日期,返回日期)</p><p> (2)單選題(導(dǎo)游編號、導(dǎo)游姓名、性別、聯(lián)系電話)</p><p> ?。?)多選題(游客編號、游客姓名、性別、年齡、聯(lián)系
9、電話)</p><p> ?。?)填空題(用戶名、密碼)</p><p><b> 1.2系統(tǒng)結(jié)構(gòu)總圖</b></p><p><b> 流程圖:</b></p><p><b> 結(jié)構(gòu)圖:</b></p><p> 1.3系統(tǒng)E-R模型<
10、/p><p><b> 2 數(shù)據(jù)庫設(shè)計</b></p><p><b> 2.1 需求分析</b></p><p> 設(shè)計試題生成功能,試題能分布整個教學(xué)內(nèi)容</p><p> 設(shè)計試題的難易程度分析功能</p><p> 具有試題的答案生成功能</p>
11、<p><b> 數(shù)據(jù)庫設(shè)計及維護</b></p><p><b> 程序的其它選項設(shè)置</b></p><p><b> 2.2 功能分析</b></p><p> 1.每創(chuàng)建一個數(shù)據(jù)庫將自動生成四種題型幾個各個章節(jié)的數(shù)據(jù)表,因為在錄入題目的時候要顯示書本章節(jié)信息以供用戶使用。而在
12、數(shù)據(jù)庫里章節(jié)的存放是沒有規(guī)則也即它們的順序不一定按照真實書本的章節(jié)順序來存儲的。但是在顯示章節(jié)信息的時候必須按照書本的章節(jié)順序來顯示。所以分別設(shè)置如下的各張表的數(shù)據(jù)類型: </p><p> '創(chuàng)建“章節(jié)”數(shù)據(jù)表</p><p> strSQL = "Create Table 章節(jié) (" _</p><p> &
13、"編號 int identity primary key," _</p><p> & "名稱 varchar(50) not null)"</p><p> objCn.Execute strSQL</p><p> objCn.Close</p><p> Set objCn =
14、Nothing</p><p> MsgBox "數(shù)據(jù)庫已成功創(chuàng)建!"</p><p> 由于數(shù)據(jù)庫里章節(jié)的數(shù)量是不定的,故此種數(shù)據(jù)類型的變量必須是一種長度可變的類型才行。接下來的問題就是把這個變量記錄的數(shù)據(jù)按一定順序顯示到combobox的控件里了。由于章節(jié)的數(shù)量還是比較多的,所以我選擇了“改進的選擇排序”,具體的排序算法代碼實現(xiàn)如下:</p>&l
15、t;p> If cmbChapter <> "" Then</p><p> objRs.Filter = "章節(jié)=" & cmbChapter.ItemData(cmbChapter.ListIndex)</p><p> If objRs.RecordCount > 0 Then objRs.MoveFirs
16、t</p><p><b> Show_Data</b></p><p><b> Else</b></p><p> objRs.Filter = "章節(jié)=-99999"</p><p><b> Show_Data</b></p>
17、<p><b> End If </b></p><p> 2.試卷分析的過程中,要考慮到一張試卷里面各個不同題目所在比例與試題庫中該類試題占所有試題庫中的比例之間的差異問題,所以在分析的過程中在成分不足或者成分超過的情況需要設(shè)置提示,整個參數(shù)分析代碼為:</p><p> '分析章節(jié)中的題數(shù)分配</p><p>
18、 Dim News, i%, j%, strFilter$, Chapter%(3, 2), k%</p><p> News = Array("判斷題", "單選題", "多選題", "填空題")</p><p> For i = 0 To 3</p><p> If Val(t
19、xtScore(i)) <> 0 And Val(lblRemain(i)) <> 0 Then</p><p> MsgBox News(i) & "試題剩余" & lblRemain(i) & "%未分配", vbCritical</p><p> txtScale(i).SetFocus<
20、;/p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> Next</b></p><p> '檢查章節(jié)題量分配是否有效</p><p> If objRsChapter.
21、RecordCount <= 0 Then Exit Sub</p><p> For i = 0 To 3</p><p> If Val(txtScore(i)) <> 0 Then</p><p> For j = 0 To cmbChapter(i).ListCount - 1</p><p> objRsC
22、hapter.MoveFirst</p><p> objRsChapter.Find "名稱='" & cmbChapter(i).List(j) & "'"</p><p> strFilter = "章節(jié)=" & objRsChapter!編號</p><p&g
23、t; Select Case i</p><p> Case 0 '檢查判斷題題量分配是否有效</p><p> objRsJudge.Filter = strFilter</p><p> If objRsJudge.RecordCount < Int(cmbChapter(i).ItemData(j) * _</p><
24、;p> txtCount(i) / 100) Then</p><p> MsgBox "<" & News(i) & "><" & objRsChapter!名稱 & ">中只有<" _</p><p> & objRsJudge.RecordCo
25、unt & ">道試題,小題百分比最多<" _</p><p> & Int(objRsJudge.RecordCount / Val(txtCount(i)) * 100) _</p><p> & ">", vbCritical</p><p> cmbChapter(i).
26、ListIndex = j</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> '小題數(shù)通過檢驗,統(tǒng)計各類難度試題數(shù)量</p><p> For k = 0 To 2</p><p> obj
27、RsJudge.Filter = strFilter & " and 難度=" & k</p><p> Chapter(i, k) = Chapter(i, k) + objRsJudge.RecordCount</p><p><b> Next</b></p><p> Case 1 '
28、檢查單選題題量分配是否有效</p><p> objRsSingle.Filter = strFilter</p><p> If objRsSingle.RecordCount < Int(cmbChapter(i).ItemData(j) * _</p><p> txtCount(i) / 100) Then</p><p>
29、; MsgBox "<" & News(i) & "><" & objRsChapter!名稱 & ">中只有<" _</p><p> & objRsSingle.RecordCount & ">道試題,小題百分比最多<" _</p&
30、gt;<p> & Int(objRsSingle.RecordCount / Val(txtCount(i)) * 100) _</p><p> & ">", vbCritical</p><p> cmbChapter(i).ListIndex = j</p><p><b> Exit
31、 Sub</b></p><p><b> End If</b></p><p> '小題數(shù)通過檢驗,統(tǒng)計各類難度試題數(shù)量</p><p> For k = 0 To 2</p><p> objRsSingle.Filter = strFilter & " and 難度=&
32、quot; & k</p><p> Chapter(i, k) = Chapter(i, k) + objRsSingle.RecordCount</p><p><b> Next</b></p><p> Case 2 '檢查多選題題量分配是否有效</p><p> objRsMore.F
33、ilter = strFilter</p><p> If objRsMore.RecordCount < Int(cmbChapter(i).ItemData(j) * _</p><p> txtCount(i) / 100) Then</p><p> MsgBox "<" & News(i) & &quo
34、t;><" & objRsChapter!名稱 & ">中只有<" _</p><p> & objRsMore.RecordCount & ">道試題,小題百分比最多<" _</p><p> & Int(objRsMore.RecordCount / Val
35、(txtCount(i)) * 100) _</p><p> & ">", vbCritical</p><p> cmbChapter(i).ListIndex = j</p><p><b> Exit Sub</b></p><p><b> End If<
36、;/b></p><p> '小題數(shù)通過檢驗,統(tǒng)計各類難度試題數(shù)量</p><p> For k = 0 To 2</p><p> objRsMore.Filter = strFilter & " And 難度 = " & k</p><p> Chapter(i, k) = Cha
37、pter(i, k) + objRsMore.RecordCount</p><p><b> Next</b></p><p> Case 3 '檢查填空題題量分配是否有效</p><p> objRsSpace.Filter = strFilter</p><p> If objRsSpace.Re
38、cordCount < Int(cmbChapter(i).ItemData(j) * _</p><p> txtCount(i) / 100) Then</p><p> MsgBox "<" & News(i) & "><" & objRsChapter!名稱 & ">
39、中只有<" _</p><p> & objRsSpace.RecordCount & ">道試題,小題百分比最多<" _</p><p> & Int(objRsSpace.RecordCount / Val(txtCount(i)) * 100) & ">", vbCritic
40、al</p><p> cmbChapter(i).ListIndex = j</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> '小題數(shù)通過檢驗,統(tǒng)計各類難度試題數(shù)量</p><p> F
41、or k = 0 To 2</p><p> objRsSpace.Filter = strFilter & " and 難度=" & k</p><p> Chapter(i, k) = Chapter(i, k) + objRsSpace.RecordCount</p><p><b> Next</b&
42、gt;</p><p> End Select</p><p><b> Next</b></p><p><b> End If</b></p><p><b> Next</b></p><p> '按難度檢查題量分配是否合理<
43、;/p><p> For i = 0 To 3</p><p> '檢查難度屬于“難”的題題量分配是否有效</p><p> If Chapter(i, 0) < Int(Val(txtCount(i)) * txtLevel0(i) / 100) Then</p><p> MsgBox News(i) & &qu
44、ot;題庫中難度屬于“難”的題只有<" _</p><p> & Chapter(i, 0) & ">道,難度百分比最大可為<" _</p><p> & Int(Chapter(i, 0) / Val(txtCount(i)) * 100) _</p><p> & "
45、>", vbCritical</p><p> txtLevel0(i).SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> '檢查難度屬于“一般”的題題量分配是否有效</p&g
46、t;<p> If Chapter(i, 1) < Int(Val(txtCount(i)) * txtLevel1(i) / 100) Then</p><p> MsgBox News(i) & "題庫中難度屬于“一般”的題只有<" _</p><p> & Chapter(i, 1) & ">
47、道,難度百分比最大可為<" _</p><p> & Int(Chapter(i, 1) / Val(txtCount(i)) * 100) _</p><p> & ">", vbCritical</p><p> txtLevel1(i).SetFocus</p><p>&
48、lt;b> Exit Sub</b></p><p><b> End If</b></p><p> '檢查難度屬于“容易”的題題量分配是否有效</p><p> If Chapter(i, 2) < Int(Val(txtCount(i)) * txtLevel2(i) / 100) Then<
49、/p><p> MsgBox News(i) & "題庫中難度屬于“容易”的題只有<" _</p><p> & Chapter(i, 2) & ">道,難度百分比最大可為<" _</p><p> & Int(Chapter(i, 2) / Val(txtCount(i))
50、 * 100) _</p><p> & ">", vbCritical</p><p> txtLevel2(i).SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p>
51、<p><b> Next</b></p><p> MsgBox "試卷參數(shù)設(shè)置正確,可以生成試卷!", vbInformation</p><p> '取消各個記錄集的過慮設(shè)置</p><p> objRsSpace.Filter = ""</p><p&
52、gt; objRsMore.Filter = ""</p><p> objRsSingle.Filter = ""</p><p> objRsJudge.Filter = ""</p><p> cmdMakePaper.Enabled = True</p><p>&l
53、t;b> Exit Sub</b></p><p> 3.在自動生成試卷里最主要的一點就是如何生成一個覆蓋知道點廣且試題不重復(fù)的試卷。其中的關(guān)鍵算法在于如何生成一個不重復(fù)的隨機數(shù)序列。同時,為了防止生成時間過長或者說代碼編寫出錯時造成程序運行不停止,需要設(shè)置一個時間函數(shù),控制試卷生成時間,本文定義的是30秒,如果超過這個時間將停止生成試卷并提示錯誤。程序如下:</p><
54、p> Randomize Timer</p><p> Dim Level0%(3), Level1%(3), Level2%(3), i%, n%, strTest$, strAnswer$</p><p> Dim Count%(3), Selected$, Chapter%(), Ok, Abcd, more%, doTime As Long</p><
55、;p> doTime = Timer '開始計算生成試題時間</p><p> Abcd = Array("A", "B", "C", "D")</p><p> ReDim Chapter(3, cmbChapter(0).ListCount - 1)</p><p
56、> '計算各類題型的難度小題數(shù)</p><p> For i = 0 To 3</p><p> n = Val(txtCount(i))</p><p> Count(i) = n</p><p> Level0%(i) = Int(Val(txtLevel0(i)) * n / 100)</p>&l
57、t;p> Level1%(i) = Int(Val(txtLevel1(i)) * n / 100)</p><p> Level2%(i) = Int(Val(txtLevel2(i)) * n / 100)</p><p> If Level0%(i) + Level1%(i) + Level2%(i) <> n Then _</p><p&
58、gt; Level1%(i) = n - Level0%(i) - Level2%(i)</p><p><b> Next</b></p><p> For i = 0 To 3</p><p> cmbChapter(i).ItemData(0) = 20</p><p> cmbChapter(i).It
59、emData(1) = 30</p><p> cmbChapter(i).ItemData(2) = 30</p><p> cmbChapter(i).ItemData(3) = 20</p><p><b> Next</b></p><p> '計算個章節(jié)各類題型的小題數(shù)</p>&
60、lt;p> For i = 0 To 3</p><p> For j = 0 To cmbChapter(0).ListCount - 1</p><p> Chapter(i, j) = Int(cmbChapter(i).ItemData(j) * Val(txtCount(i)) / 100)</p><p><b> Next<
61、;/b></p><p><b> n = 0</b></p><p> For j = 0 To cmbChapter(0).ListCount - 1</p><p> n = n + Chapter(i, j)</p><p><b> Next</b></p>&
62、lt;p> If n <> Val(txtCount(i)) Then Chapter(i, 0) = Chapter(i, 0) + Val(txtCount(i)) - n</p><p><b> Next</b></p><p> '將cmbchapter列表itemdata中的百分比數(shù)轉(zhuǎn)換為章節(jié)編號</p>&l
63、t;p> For i = 0 To 3</p><p> For j = 0 To cmbChapter(0).ListCount - 1</p><p> objRsChapter.MoveFirst</p><p> objRsChapter.Find "名稱='" & cmbChapter(i).List(j)
64、 & "'"</p><p> cmbChapter(i).ItemData(j) = objRsChapter!編號</p><p><b> Next</b></p><p><b> Next</b></p><p><b> '生
65、成試卷</b></p><p> For i = 0 To 3</p><p> Selected = ""</p><p> Select Case i</p><p> Case 0 '選擇判斷題</p><p> strTest = strTest &
66、"一、簡答題。(共" & txtCount(i) _</p><p> & ",每小題" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf</p><p> strAnswer = strAnswer
67、& "一、簡答題。(共" & txtCount(i) _</p><p> & ",每小題" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf</p><p><b> j = 1&l
68、t;/b></p><p> While Count(i) > 0</p><p> '隨即產(chǎn)生一個未選擇的試題的記錄序號</p><p><b> Do</b></p><p> If Timer - doTime > 30 Then</p><p> Msg
69、Box "本次生成判斷題花費時間過長,退出重試!", vbCritical</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> n = Int(Rnd * objRsJudge.RecordCount + 1)</p>
70、<p> Loop Until InStr(Selected, "#" & n & "#") = 0</p><p> Selected = Selected & "#" & n & "#"</p><p> objRsJudge.MoveFirst&l
71、t;/p><p> objRsJudge.Move n - 1</p><p> Select Case objRsJudge!難度</p><p><b> Case 0</b></p><p> If Level0(i) > 0 Then</p><p> '檢查本章試題是
72、否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsJudge!章節(jié) Then Exit For</p><p><b> Next</b></p><p> If Chapter(i, n) > 0 Then&
73、lt;/p><p> strTest = strTest & j & "、" & objRsJudge!題干 & "( )" & vbCrLf</p><p> strAnswer = strAnswer & j & "、"</p><p>
74、9;If objRsJudge!答案 Then</p><p> ' strAnswer = strAnswer & "錯誤"</p><p><b> ' Else</b></p><p> ' strAnswer = strAnswer & "正確"&l
75、t;/p><p><b> ' End If</b></p><p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1<
76、/p><p> Level0(i) = Level0(i) - 1</p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsJudge!圖片) Then _</p><p> strTest = strTest & "本題圖片:" & o
77、bjRsJudge!圖片</p><p><b> End If</b></p><p><b> End If</b></p><p><b> Case 1</b></p><p> If Level1(i) > 0 Then</p><p
78、> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsJudge!章節(jié) Then Exit For</p><p><b> Next</b></p><p> If Chapter(
79、i, n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsJudge!題干 & "( )" & vbCrLf</p><p> strAnswer = strAnswer & j & "、"</p&g
80、t;<p> 'If objRsJudge!答案 Then</p><p> 'strAnswer = strAnswer & "錯誤"</p><p><b> 'Else</b></p><p> ' strAnswer = strAnswer & &
81、quot;正確"</p><p><b> 'End If</b></p><p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter
82、(i, n) - 1</p><p> Level1(i) = Level1(i) - 1</p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsJudge!圖片) Then _</p><p> strTest = strTest & "本題圖片:
83、" & objRsJudge!圖片</p><p><b> End If</b></p><p><b> End If</b></p><p><b> Case 2</b></p><p> If Level2(i) > 0 Then<
84、;/p><p> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsJudge!章節(jié) Then Exit For</p><p><b> Next</b></p><p>
85、; If Chapter(i, n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsJudge!題干 & "( )" & vbCrLf</p><p> strAnswer = strAnswer & j & "、
86、"</p><p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level2(i) = Level2(i) - 1&l
87、t;/p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsJudge!圖片) Then _</p><p> strTest = strTest & "本題圖片:" & objRsJudge!圖片</p><p><b> En
88、d If</b></p><p><b> End If</b></p><p> End Select</p><p><b> Wend</b></p><p> Case 1 '卸載單選題</p><p> strTest = strTe
89、st & "二、單選題。(共" & txtCount(i) _</p><p> & ",每小題" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf</p><p> strAnswer = s
90、trAnswer & "二、單選題。(共" & txtCount(i) _</p><p> & ",每小題" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf</p><p><b>
91、 j = 1</b></p><p> While Count(i) > 0</p><p> '隨即產(chǎn)生一個未選擇的試題的記錄序號</p><p><b> Do</b></p><p> If Timer - doTime > 30 Then</p><p
92、> MsgBox "本次生成單選題試題花費時間過長,退出重試!", vbCritical</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> n = Int(Rnd * objRsSingle.RecordCount + 1
93、)</p><p> Loop Until InStr(Selected, "#" & n & "#") = 0</p><p> Selected = Selected & "#" & n & "#"</p><p> objRsSingl
94、e.MoveFirst</p><p> objRsSingle.Move n - 1</p><p> Select Case objRsSingle!難度</p><p><b> Case 0</b></p><p> If Level0(i) > 0 Then</p><p>
95、; '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsSingle!章節(jié) Then Exit For</p><p><b> Next</b></p><p> If Chapter(i,
96、 n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsSingle!題干 & vbCrLf</p><p> strTest = strTest & " A、" & objRsSingle!選項1 & vbCrLf<
97、;/p><p> strTest = strTest & " B、" & objRsSingle!選項2 & vbCrLf</p><p> strTest = strTest & " C、" & objRsSingle!選項3 & vbCrLf</p><p>
98、strTest = strTest & " D、" & objRsSingle!選項4 & vbCrLf</p><p> strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf</p><p><b>
99、 j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level0(i) = Level0(i) - 1</p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsSingle!圖
100、片) Then _</p><p> strTest = strTest & "本題圖片:" & objRsSingle!圖片</p><p><b> End If</b></p><p><b> End If</b></p><p><b>
101、 Case 1</b></p><p> If Level1(i) > 0 Then</p><p> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsSingle!章節(jié) Then Exit
102、For</p><p><b> Next</b></p><p> If Chapter(i, n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsSingle!題干 & vbCrLf</p><p&
103、gt; strTest = strTest & " A、" & objRsSingle!選項1 & vbCrLf</p><p> strTest = strTest & " B、" & objRsSingle!選項2 & vbCrLf</p><p> strTest = strTe
104、st & " C、" & objRsSingle!選項3 & vbCrLf</p><p> strTest = strTest & " D、" & objRsSingle!選項4 & vbCrLf</p><p> strAnswer = strAnswer & j &
105、 "、" & Abcd(objRsSingle!答案) & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level1(i) = Level1(i) - 1</p>
106、<p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsSingle!圖片) Then _</p><p> strTest = strTest & "本題圖片:" & objRsSingle!圖片</p><p><b> End If<
107、;/b></p><p><b> End If</b></p><p><b> Case 2</b></p><p> If Level2(i) > 0 Then</p><p> '檢查本章試題是否已選夠</p><p> For n =
108、0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsSingle!章節(jié) Then Exit For</p><p><b> Next</b></p><p> If Chapter(i, n) > 0 Then</p><p> strTest = st
109、rTest & j & "、" & objRsSingle!題干 & vbCrLf</p><p> strTest = strTest & " A、" & objRsSingle!選項1 & vbCrLf</p><p> strTest = strTest & "
110、 B、" & objRsSingle!選項2 & vbCrLf</p><p> strTest = strTest & " C、" & objRsSingle!選項3 & vbCrLf</p><p> strTest = strTest & " D、" & o
111、bjRsSingle!選項4 & vbCrLf</p><p> strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter
112、(i, n) = Chapter(i, n) - 1</p><p> Level2(i) = Level2(i) - 1</p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsSingle!圖片) Then _</p><p> strTest = strTest
113、& "本題圖片:" & objRsSingle!圖片</p><p><b> End If</b></p><p><b> End If</b></p><p> End Select</p><p><b> Wend</b>&
114、lt;/p><p> Case 2 '選擇多選題</p><p> strTest = strTest & "三、多選題。(共" & txtCount(i) _</p><p> & ",每小題" & txtAvg(i) & "分,共" & txt
115、Score(i) & "分)" & vbCrLf</p><p> strAnswer = strAnswer & "三、多選題。(共" & txtCount(i) _ & ",每小題" & txtAvg(i) & "分,共" & txtScore(i) & &
116、quot;分)" & vbCrLf</p><p><b> j = 1</b></p><p> While Count(i) > 0</p><p> '隨即產(chǎn)生一個未選擇的試題的記錄序號</p><p><b> Do</b></p>&l
117、t;p> If Timer - doTime > 30 Then</p><p> MsgBox "本次生成試題花費時間過長,退出重試!", vbCritical</p><p><b> Exit Sub</b></p><p><b> End If</b></p>
118、<p> n = Int(Rnd * objRsMore.RecordCount + 1)</p><p> Loop Until InStr(Selected, "#" & n & "#") = 0</p><p> Selected = Selected & "#" & n &
119、amp; "#"</p><p> objRsMore.MoveFirst</p><p> objRsMore.Move n - 1</p><p> Select Case objRsMore!難度</p><p><b> Case 0</b></p><p>
120、 If Level0(i) > 0 Then</p><p> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsMore!章節(jié) Then Exit For</p><p><b> Next<
121、;/b></p><p> If Chapter(i, n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsMore!題干 & vbCrLf</p><p> strTest = strTest & " A、&qu
122、ot; & objRsMore!選項1 & vbCrLf</p><p> strTest = strTest & " B、" & objRsMore!選項2 & vbCrLf</p><p> strTest = strTest & " C、" & objRsMore!選項3
123、& vbCrLf</p><p> strTest = strTest & " D、" & objRsMore!選項4 & vbCrLf</p><p> strAnswer = strAnswer & j & "、"</p><p> For more = 0 To
124、 3</p><p> If Mid(objRsMore!答案, more + 1, 1) = "1" Then _</p><p> strAnswer = strAnswer & Abcd(more) & ","</p><p><b> Next</b></p>
125、<p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level0(i) = Level0(i) - 1</p><p>
126、; Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsMore!圖片) Then _</p><p> strTest = strTest & "本題圖片:" & objRsMore!圖片</p><p><b> End If</b></p
127、><p><b> End If</b></p><p><b> Case 1</b></p><p> If Level1(i) > 0 Then</p><p> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p&
128、gt;<p> If cmbChapter(i).ItemData(n) = objRsMore!章節(jié) Then Exit For</p><p><b> Next</b></p><p> If Chapter(i, n) > 0 Then</p><p> strTest = strTest & j &
129、amp; "、" & objRsMore!題干 & vbCrLf</p><p> strTest = strTest & " A、" & objRsMore!選項1 & vbCrLf</p><p> strTest = strTest & " B、" &
130、objRsMore!選項2 & vbCrLf</p><p> strTest = strTest & " C、" & objRsMore!選項3 & vbCrLf</p><p> strTest = strTest & " D、" & objRsMore!選項4 & vbCr
131、Lf</p><p> strAnswer = strAnswer & j & "、"</p><p> For more = 0 To 3</p><p> If Mid(objRsMore!答案, more + 1, 1) = "1" Then _</p><p> strA
132、nswer = strAnswer & Abcd(more) & ","</p><p><b> Next</b></p><p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p>
133、<p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level1(i) = Level1(i) - 1</p><p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsMore!圖片) Then _</p><p> st
134、rTest = strTest & "本題圖片:" & objRsMore!圖片</p><p><b> End If</b></p><p><b> End If</b></p><p><b> Case 2</b></p><p&
135、gt; If Level2(i) > 0 Then</p><p> '檢查本章試題是否已選夠</p><p> For n = 0 To 3</p><p> If cmbChapter(i).ItemData(n) = objRsMore!章節(jié) Then Exit For</p><p><b> Nex
136、t</b></p><p> If Chapter(i, n) > 0 Then</p><p> strTest = strTest & j & "、" & objRsMore!題干 & vbCrLf</p><p> strTest = strTest & " A
137、、" & objRsMore!選項1 & vbCrLf</p><p> strTest = strTest & " B、" & objRsMore!選項2 & vbCrLf</p><p> strTest = strTest & " C、" & objRsMore!
138、選項3 & vbCrLf</p><p> strTest = strTest & " D、" & objRsMore!選項4 & vbCrLf</p><p> strAnswer = strAnswer & j & "、"</p><p> For more =
139、0 To 3</p><p> If Mid(objRsMore!答案, more + 1, 1) = "1" Then _</p><p> strAnswer = strAnswer & Abcd(more) & ","</p><p><b> Next</b></p&g
140、t;<p> strAnswer = strAnswer & vbCrLf</p><p><b> j = j + 1</b></p><p> Chapter(i, n) = Chapter(i, n) - 1</p><p> Level2(i) = Level2(i) - 1</p><
141、p> Count(i) = Count(i) - 1</p><p> If Not IsNull(objRsMore!圖片) Then _</p><p> strTest = strTest & "本題圖片:" & objRsMore!圖片</p><p> End If End If</p>
142、<p> End Select</p><p><b> Wend</b></p><p> Case 3 '選擇填空題</p><p> strTest = strTest & "四、填空題。(共" & txtCount(i) _</p><p> &a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫原理課程設(shè)計---教室管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫原理課程設(shè)計---圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫系統(tǒng)原理
- 數(shù)據(jù)庫原理課程設(shè)計---個人事物管理數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計--人事管理系統(tǒng)數(shù)據(jù)庫
- 數(shù)據(jù)庫原理課程設(shè)計---學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計--超市管理系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計-- 庫存管理系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計——倉庫管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計
- 數(shù)據(jù)庫原理b課程設(shè)計--數(shù)據(jù)庫學(xué)生信息管理系統(tǒng)
- 《數(shù)據(jù)庫原理》課程設(shè)計--物業(yè)管理系統(tǒng)
- 《數(shù)據(jù)庫原理及應(yīng)用》課程設(shè)計---師生管理數(shù)據(jù)庫系統(tǒng)設(shè)計
- 《數(shù)據(jù)庫系統(tǒng)原理》課程設(shè)計
- 數(shù)據(jù)庫原理課程設(shè)計--圖書管理系統(tǒng)
- 數(shù)據(jù)庫原理課程設(shè)計---人事管理系統(tǒng)
- 數(shù)據(jù)庫原理及應(yīng)用課程設(shè)計--職工考勤管理系統(tǒng)數(shù)據(jù)庫設(shè)計
- 數(shù)據(jù)庫原理課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計-試題庫管理系統(tǒng)
- 《數(shù)據(jù)庫原理》課程設(shè)計-圖書管理系統(tǒng)
評論
0/150
提交評論