freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

無紙化考試系統(tǒng)—畢業(yè)設(shè)計論文(編輯修改稿)

2025-01-08 21:04 本頁面
 

【文章內(nèi)容簡介】 交卷 4. 6 考生答案 為了能夠了解考生的具體答題信息,并且在考生意外退出后能夠重新加載考生的信息,我們需要記錄該考生的答案。表結(jié)構(gòu)如下: 字段名稱 字段類型 備注 ID 自動編號 主關(guān)鍵字 準(zhǔn)考證號 字符 題目編號 字符 考生答案 字符 4. 7 題庫主表 在設(shè)計數(shù)據(jù)庫的時候,我們考慮到系統(tǒng)的可擴展性和數(shù)據(jù)減少數(shù)據(jù)庫容量的考慮,經(jīng)常是采取分開幾張表存儲的方式,比如說前面的題庫主表和備選答案的處理就是經(jīng)常采取的方式。所以我們要想得到所有的信息,或者說是具體的信息,我們往往要借助視圖了,題庫 主表就是采取視圖的方式顯示,該視圖的 SQL 語句如下: SELECT 題庫主表 .ID, 題庫主表 .題目編號 , 題庫主表 .題目內(nèi)容 , 題庫主表 .題目套號 , IIf([題目類型 ]=False,單選題 ,多選題 ) AS 類型 , 題庫主表 .題目答案 , 題庫主表 .題目分值 , 題庫主表 .題目備注 FROM 題庫主表 。 4. 8 評分表 該表是用來顯示學(xué)生的答題正確于否,以及做的試題是什么,還包括考生的自身信息,可以說是一張非常重要的視圖了,該視圖的 SQL 語句如下: SELECT 題庫主表 .*, 考生答案 .考生答案 , 考生答案 .準(zhǔn)考證號 , IIf([考生答案 ]=[題目答案 ],正確 ,錯誤 ) AS 是否正確 , IIf([考生答案 ]=[題目答案 ],[題目分值 ],0) AS 得分 FROM 題庫主表 INNER JOIN 考生答案 ON 題庫主表 .題目編號 = 考生答案 .題目編號 。 第五章 系統(tǒng)實現(xiàn) 在經(jīng)過了前面的功能設(shè)計之后,我們進入到了我們的系統(tǒng)實現(xiàn)部分,也就是真正的代碼實現(xiàn)階段了。在經(jīng)過了前面的鋪墊工作以后,這里實現(xiàn)起來思路就相對來說非常的清晰了。下面來分幾個重要的模塊來說一下設(shè)計思路和實現(xiàn)方法,對于一些很顯示的 我就不在說明了 5. 1 ADO 技術(shù) 在本系統(tǒng)中我們用到了數(shù)據(jù)庫的技術(shù),在 VB 中,有很多的方法,可以訪問數(shù)據(jù)庫,比如比較原始比較底層 的 ODBC,專門為 Access 數(shù)據(jù)庫設(shè)計的 DAO,還有專門為了遠程設(shè)計的 RDO。但是現(xiàn)在微軟的推崇的數(shù)據(jù)訪問技術(shù)是 ADO 技術(shù) ADO( ActiveX Data Objects) Active 數(shù)據(jù)對象。 ADO 設(shè)計為一種極為簡單的格式,通過 ODBC 的方法同數(shù)據(jù)庫接口。可以用任何一種 ODBC 數(shù)據(jù)源,如: SQL Server、 Oracle、 Access、 Excel、文本文件、圖形文件和 無格式的數(shù)據(jù)文件。而且 ADO 訪問數(shù)據(jù)庫的代碼非常的簡單,而且很容易讓人理解。最重要的是他能夠訪問不同的數(shù)據(jù)庫。如果代碼寫的質(zhì)量高的話,完全可以使用同一種代碼訪問不同的數(shù)據(jù)庫。 5. 2 VB 中的錯誤處理 系統(tǒng)運行難免有錯誤,比如說系統(tǒng)的可使用內(nèi)容不夠了,即使我們的代碼沒有錯誤,也將不能運行,但是如果不能運行就非法退出的話,我想對于客戶是不能接受的,至少也該來個系統(tǒng)內(nèi)存不足的提示,給客戶一些好的建議,我想客戶肯定會非常滿意的。不知不覺就會提高你產(chǎn)品的形象,必定顧客是上帝,我們不可能一點都不顧客戶的感受。所以我們 有必要在可能發(fā)生錯誤的地方加上我們錯誤處理代碼,來捕獲這種錯誤了。 VB 的錯誤代碼處理非常的簡單,簡單的來說,就是遇見錯誤,忽略。另外一種是遇到錯誤跳出執(zhí)行。我們來看看典型的兩種方式呀 比如有如下的代碼 : dim I as Integer on error goto Proc_Exit 在這里發(fā)生了錯誤,則會直接跳到 Proc_Exit 后面的代碼執(zhí)行,那么 I=I+1 就不執(zhí)行了 I=I+1 Proc_Exit: 另外一段代碼: dim I as Integer on error Resume next 在這 里發(fā)生了錯誤,繼續(xù)執(zhí)行 I=I+1 的代碼 I=I+1 兩種錯誤處理方法都是有不同的使用的地方的,就看我們?nèi)绾戊`活的掌握了。我在這個系統(tǒng)里主要采用的還是第一種的錯誤處理。 5. 3 套號設(shè)置 套號設(shè)置是一個基礎(chǔ)的設(shè)置,要想添加新的一份試卷,首先我們該使用該功能來添加一個套的信息,我們設(shè)計了如下的界面: 在文本框里輸入套號名稱后確定就可以在數(shù)據(jù)庫里添加該套號了,添加成功后,系統(tǒng)會自動轉(zhuǎn)入下一個添加狀態(tài),也就是可以接著再添加套號。這里的代碼實現(xiàn)如下: 其中確定按鈕的代碼如下: Private Sub Command1_Click() Dim rst As Recordset On Error GoTo Proc_Exit If Len(Text1) 0 Then Set rst = New Recordset select * from 套號 , pCN, adOpenStatic, adLockBatchOptimistic rst![套號名稱 ] = Text1 Text1 = End If Proc_Exit: If 0 Then If = 2147467259 Then MsgBox 套號名稱不能重復(fù) !, vbInformation Else MsgBox 發(fā)生意外錯誤 ,錯誤號 : amp。 amp。 錯誤描述 : amp。 , vbInformation End If End If End Sub 在本段代碼里,我就運用了錯誤處理的代碼。由于套號名稱是唯一的,所以當(dāng)用戶添加同樣的套號名稱的時候,就會發(fā)生錯誤,從上面的代碼我們知道,這時候的錯誤代碼就是- 2147467259。我們捕獲了該錯誤,然后對用戶進行提示。最后把該錯誤清除了。而發(fā)生其他的錯誤時候,我們就把錯誤給顯示出來,這樣非常的有利于我們來維護使用我們的系統(tǒng)。 5. 4 題庫內(nèi)容維護和備選答案維護 在前面的設(shè)計的時候我們已經(jīng) 知道餓了題庫內(nèi)容和備選答案正好是主表和子表的關(guān)系,所以有必要把這幾個模塊一起處理的。所以我設(shè)計了一個典型的主表和子表的瀏覽界面如下: 上面的表格就是題目的內(nèi)容部分,下面的表格就是該道試題的備選答案的內(nèi)容。而上面表格列出是哪套試題,取決于在組合框里選擇的是哪一套試題了。 我們來了解一下這里的代碼實現(xiàn)了,為了充分發(fā)揮 VB 的 RAD 開發(fā)工具的優(yōu)勢,我們這里采取了數(shù)據(jù)綁定來顯示數(shù)據(jù)和更新數(shù)據(jù),整個代碼就顯的非常的簡單了: 首先我們在窗體加載的時候,我們要加載界面的顯示內(nèi)容,我們可以在 Form 的 Load事件里進行這 些初始化工作的。比如加載題庫套號數(shù)據(jù),然后加載該套試題的數(shù)據(jù)。 Private Sub Form_Load() Call InitSubjectSet Call InitSubject End Sub 39。39。 初始化組合框里的數(shù)據(jù) Private Sub InitSubjectSet() Dim rst As Recordset Dim i As Integer Set rst = New Recordset = adLockBatchOptimistic = adUseClient = adOpenStatic = pCN = select * from 套號 For i = 1 To rst![套號名稱 ] ( 1) = rst![ID] Next i If 0 Then = 0 End If Set rst = Nothing End Sub 根據(jù)選中的套號從數(shù)據(jù)庫里檢索出數(shù)據(jù),并且在題目內(nèi)容的表格里進行顯示,代碼如下: Private Sub InitSubject() = = select * from 題庫主表 where 題目套號 = amp。 () Set = If 1 Then = 1 End If Call InitSubjectAnswer End Sub 由于我們在選中上面表格的每道試題的時候,需要顯示下面的數(shù)據(jù),當(dāng)表格的選中的單元格發(fā)生改變的時候會發(fā)生 RowColChange 事件,所以我們把備選答案的顯示放在該事件里做,代碼如下: Private Sub MSHFlexGrid1_RowColChange() Call InitSubjectAnswer End Sub Private Sub InitSubjectAnswer() If 1 Then = = select * from 題目明細 where 題目編號 =39。 amp。 (, 1) amp。 39。 Set = Else = 1 End If End Sub 按上面的增加按鈕后我們就彈出如下的界面: 該代碼里比較重要的代碼如下: 留給外部窗體調(diào)用的時候的接口代碼: Public Function EditSubject(Optional ByVal lngID As Long = 0, Optional lngSubjectSetID As Long) Dim rst As Recordset mlngSubjectID = lngSubjectSetID mlngID = lngID mblnEdit = IIf(lngID 0, True, False) If mblnEdit Then Set rst = New Recordset select * from 題庫主表 where ID= amp。 lngID, pCN, adOpenStatic, adLockBatchOptimistic Text3 = rst![題目編號 ] If rst![題目類型 ] Then = True Else = True End If Text1 = rst![題目內(nèi)容 ] Text4 = rst![題目分值 ] Text5 = rst![題目答案 ] Text2 = rst![題目備注 ] amp。 = amp。H80000018 = True Else = vbWhite = False End If Set rst = Nothing 1 End Function 保存代碼如下 Private Sub Command1_Click() Dim rst As Recordset Dim strTemp As String Dim i As Integer On Error GoTo Proc_Exit If Len(Text3) = 0 Then MsgBox 題目編號不為空 !, vbInformation GoTo Proc_Exit End If If Len(Text1) = 0 Then MsgBox 題目內(nèi)容不為空 !, vbInformation GoTo Proc_Exit End If If Len(Text5) = 0 Then MsgBox 題目答案不為空 !, vbInformation GoTo Proc_Exit End If For i = 1 To Len(Text5) strTemp = Mid(Text5, i, 1) If Not (Asc(strTemp) = 65 And Asc(strTemp) = 90) And Not (Asc(strTemp) = 97 And Asc(strTemp) = 122) Then MsgBox 題目答案必須為字母 !, vbInformation GoTo Proc_Exit End If Next i Set rst = New Recordset If mblnEdit Then select * from 題庫主表 where ID= amp。 mlngID, pCN, adOpenStati
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1