通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā)_第1頁
通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā)_第2頁
通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā)_第3頁
通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā)_第4頁
通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、附錄 通用心理測試系統(tǒng)的設(shè)計(jì)和開發(fā),1、系統(tǒng)需求分析,意義: 人的心理特性是不能被直接觀察到的,而且還存在著明顯的個體差異,但是任何一種心理特性總會以一定的行為表現(xiàn)出來。 心理測驗(yàn)就是讓人們在測驗(yàn)時產(chǎn)生某些行為,即個體對測驗(yàn)題目的反應(yīng),并根據(jù)這些行為反應(yīng)來推論其相應(yīng)的心理特性。在一定程度上有助于我們了解人類的心理活動,并從中得到幫助。 例如在現(xiàn)實(shí)生活領(lǐng)域,心理測驗(yàn)可以幫助評價(jià)個人的智力水平和了解個性特征;可以用于對各種智能缺陷、精神疾病和腦功能障礙的臨床診斷;可以為特殊人才的選拔提供參考;心理測驗(yàn)結(jié)合心理咨詢有助于消除情緒困擾和人格障礙,提高生活品質(zhì)。,1、系統(tǒng)需求分析,現(xiàn)狀分析: 傳統(tǒng)的紙筆

2、測試方法操作煩瑣,人工結(jié)果統(tǒng)計(jì)費(fèi)時費(fèi)力,還可能存在計(jì)算錯誤的可能性,而且不利于對測試情況做到匯總分析。因此需要開發(fā)一套科學(xué)、靈活、易用的通用心理測試系統(tǒng),能夠進(jìn)行多種類型的心理測試,界面友好,操作簡單,能夠自動計(jì)算分?jǐn)?shù),實(shí)現(xiàn)數(shù)據(jù)存檔和查詢功能。,1、系統(tǒng)需求分析,通用心理測試系統(tǒng)設(shè)計(jì)的具體要求包括: 1.高效地錄入和保存信息。例如測試者的姓名、性別、籍貫、學(xué)歷數(shù)據(jù)等。 2.方便地完成測試過程,并保證測試的客觀性.如自動計(jì)時、自動匯總統(tǒng)計(jì)結(jié)果等。 3.實(shí)現(xiàn)多次測試結(jié)果的匯總。 4.實(shí)現(xiàn)基于數(shù)據(jù)庫的電子化信息管理。 5. 具有較強(qiáng)的擴(kuò)充性,能夠適應(yīng)新的測試內(nèi)容變化要求等。,2、系統(tǒng)流程圖,通用心理

3、測試系統(tǒng)的使用者包括兩類,測試者和管理員。 對于每個新的測試者而言,需要錄入其姓名、性別、文化程度等基本信息,然后開始測試,完成所有題目或測試時間到后,顯示其測試結(jié)果,并把測試結(jié)果自動保存到數(shù)據(jù)庫中。 對于管理員而言,需要通過口令進(jìn)行登錄,然后可以從數(shù)據(jù)庫中匯總測試結(jié)果等操作。,3、系統(tǒng)設(shè)計(jì)思路,界面設(shè)計(jì) 通用心理測試系統(tǒng)的應(yīng)用程序界面,即MVC模型中的View。 包括主窗體、關(guān)于窗體、新測試者基本信息錄入窗體、顯示測試題目并作答窗體、顯示測試結(jié)果窗體、管理員登錄窗體和測試結(jié)果匯總窗體等界面。,3、系統(tǒng)設(shè)計(jì)思路,代碼設(shè)計(jì) 程序代碼設(shè)計(jì)采用面向?qū)ο蟮氖录?qū)動機(jī)制,針對用戶界面上的對象的相應(yīng)事件(

4、主要是Click事件和定時器事件)來激發(fā)對象執(zhí)行所需的操作,即MVC模型中的Controller部分。,開始新的測試顯示V2:新測試者信息窗口顯示V3:測試窗口 查看測試記錄顯示V5:測試結(jié)果窗口 退出結(jié)束系統(tǒng) 幫助顯示V1:關(guān)于窗口,3、系統(tǒng)設(shè)計(jì)思路,數(shù)據(jù)庫設(shè)計(jì) 本系統(tǒng)使用ACCESS數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,即MVC模型中的Model部分。 在名為test的MDB數(shù)據(jù)庫文件中建立5張表。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),用戶表 用途:存放具有查詢測試結(jié)果權(quán)限的用戶姓名和口令。,用于存放具有查詢測試結(jié)果權(quán)限的用戶姓名和口令。管理員登錄時輸入用戶名稱和登錄口令后,系統(tǒng)將到用戶表中查詢是否存在輸入的用戶

5、名稱,如果存在則進(jìn)一步判斷輸入的登錄口令和數(shù)據(jù)庫中的口令是否相同。如果正確,則顯示測試結(jié)果匯總窗口,否則予以錯誤提示。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),試卷表 用途:保存試卷的名稱、測試時間、測試結(jié)果的判定標(biāo)準(zhǔn)和相應(yīng)結(jié)論內(nèi)容。,為實(shí)現(xiàn)通用,對現(xiàn)有紙筆類型的心理測試進(jìn)行分析,歸納出心理測試試題一般規(guī)律是通過若干選擇題的測試,根據(jù)得分所在范圍給出測試結(jié)論。 一般的,一套試題的結(jié)論不超過8個。所以試卷表定義了8組結(jié)論,分別包括標(biāo)準(zhǔn)和內(nèi)容兩部分。 同時考慮到某些測試對時間有所要求,因此定義了每套試卷的測試時間。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),試卷表 用途:保存試卷的名稱、測試時間、測試結(jié)果的判定標(biāo)準(zhǔn)和相應(yīng)結(jié)

6、論內(nèi)容。,試卷表中的試卷編號字段為主鍵,通過該主鍵與試題表連接。 執(zhí)行主窗口中的“系統(tǒng)”“開始新的測試”命令,系統(tǒng)顯示新測試者信息對話框。 其中選擇試卷下拉列表的項(xiàng)目是通過讀取試卷表的各條記錄的試卷名稱字段逐一添加。 選擇試卷后,將記錄其對應(yīng)的試卷編號,以便在測試窗口中顯示該試卷對應(yīng)的試題。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),試題表 用途:試題表與試卷表間為一對多的關(guān)系。即試卷表中的一條記錄,通過試卷編號與試題表中的多條記錄對應(yīng),從而形成一份試卷中的多道測試題。,每道測試題提供8個選擇項(xiàng)。(本案例中考慮的是單選測試題的形式) 使用者選擇試卷后,記錄其對應(yīng)的試卷編號,通過該試卷編號到試題表中查詢相應(yīng)的

7、記錄,并在測試窗口中顯示該試題的內(nèi)容和對應(yīng)的選擇項(xiàng)目。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),測試者表 用途:記錄測試者的信息。,執(zhí)行主窗口中的“系統(tǒng)”“開始新的測試”命令,完成所有試題的測試后系統(tǒng)將測試信息保存到測試者表中,并自動為每個新測試者分配一個ID。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),測試結(jié)果表 用途:保存每個測試者所進(jìn)行的測試的試卷編號和成績。,測試結(jié)果表通過“測試者ID”字段與測試者表連接。 通過“試卷編號”字段與試卷表連接。 執(zhí)行主窗口中的“系統(tǒng)”“查看測試記錄”命令,系統(tǒng)登錄對話框,成功登錄后顯示測試結(jié)果匯總窗口,窗口中的數(shù)據(jù)來自測試結(jié)果表的記錄。,4、系統(tǒng)實(shí)現(xiàn)方法數(shù)據(jù)庫設(shè)計(jì),測試結(jié)果表 用

8、途:保存每個測試者所進(jìn)行的測試的試卷編號和成績。,測試結(jié)果表通過“測試者ID”字段與測試者表連接。 通過“試卷編號”字段與試卷表連接。 執(zhí)行主窗口中的“系統(tǒng)”“查看測試記錄”命令,系統(tǒng)登錄對話框,成功登錄后顯示測試結(jié)果匯總窗口,窗口中的數(shù)據(jù)來自測試結(jié)果表的記錄。,4、系統(tǒng)實(shí)現(xiàn)方法窗體設(shè)計(jì),建立應(yīng)用程序 啟動Visual Basic程序,建立“標(biāo)準(zhǔn).EXE”項(xiàng)目。,4、系統(tǒng)實(shí)現(xiàn)方法窗體設(shè)計(jì),主窗體 修改窗體屬性。 拖動窗體右下角,調(diào)整窗體大小符合背景圖像的大小。 編輯主窗體菜單。,4、系統(tǒng)實(shí)現(xiàn)方法窗體設(shè)計(jì),新測試者、測試、用戶登錄、顯示測試記錄和關(guān)于窗體 添加新窗體 執(zhí)行“工程”菜單中的“添加窗

9、體”命令,顯示“添加窗體”對話框,選擇“新建”選項(xiàng)卡中的“窗體”圖標(biāo),單擊“打開”按鈕,在工程中添加一個新的窗體。 修改窗體屬性(參見教材) 添加控件,設(shè)置控件屬性、調(diào)整控件位置(參見教材),4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,主窗體菜單代碼,系統(tǒng)菜單-開始新的測試命令 Private Sub mnuStartTest_Click() 以模態(tài)窗口方式顯示新測試者信息窗口 frmTesterInfo.Show 1 End Sub 說明:show方法的參數(shù)1表示顯示的窗體模式為模態(tài)窗體,即關(guān)閉顯示窗體前對調(diào)用它的父窗體不做響應(yīng)。 系統(tǒng)菜單-查看測試記錄命令 Private Sub mnuDisplayRes

10、ult_Click() 以模態(tài)窗口方式顯示登錄窗口 frmLogin.Show 1 End Sub 系統(tǒng)菜單-退出命令 Private Sub mnuExit_Click() 結(jié)束系統(tǒng) End End Sub 幫助菜單-關(guān)于命令 Private Sub mnuAbout_Click() 以模態(tài)窗口方式顯示關(guān)于窗口 frmAbout.Show 1 End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 通用模塊,定義窗體級變量 保存測試者姓名的變量 Public testerName As String 保存測試者性別的變量 Public testerSex As String 保存測試者教

11、育程度的變量 Public testerEduLevel As String 保存測試者籍貫的變量 Public testerBirthPlace As String 注:本例中沒有對測試者的信息做檢驗(yàn)和保存,只是展現(xiàn)了復(fù)選按鈕的使用方法。 定義數(shù)據(jù)庫連接所需要的變量。 Dim sConnect As String Dim sSQL As String Dim dfwConn As ADODB.Connection Dim rs As ADODB.Recordset 保存用戶選擇的試卷對應(yīng)的試卷編號。 Public paperID As String,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼

12、 Load事件 用于初始化窗體控件的內(nèi)容,Private Sub Form_Load() AddItem用于向列表框/組合框中添加一項(xiàng) Me.cmbBirthPlace.AddItem 北京市 Me.cmbBirthPlace.AddItem 天津市“ 定義后臺數(shù)據(jù)庫路徑和名稱 DatabasePath = App.Path 定義SQL查詢語言 sSQL = select * from 試卷 order by 試卷編號 根據(jù)SQL查詢語言,從數(shù)據(jù)庫中檢索相應(yīng)記錄,并在記錄集中打開 rs.Open sSQL, dfwConn, 1, 3 ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 Load事件

13、 用于初始化窗體控件的內(nèi)容, 遍歷記錄集 For i = 0 To rs.RecordCount - 1 將記錄集中的試卷名稱內(nèi)容添加到cmbPaper控件中 Me.cmbPaper.AddItem rs.Fields(試卷名稱) 將記錄集中的試卷編號內(nèi)容添加到cmbPaperID控件中 Me.cmbPaperID.AddItem rs.Fields(試卷編號) 移動記錄集指針,指向下一條記錄 rs.MoveNext Next 關(guān)閉記錄集 rs.Close 關(guān)閉連接 dfwConn.Close End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 取消按鈕的Click事件 從內(nèi)存中卸載當(dāng)

14、前窗體,Private Sub cmdCancel_Click() 卸載本窗口 Unload Me End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 確定按鈕的Click事件 檢驗(yàn)用戶信息是否完整,Private Sub cmdOK_Click() 檢驗(yàn)是否填寫了測試者姓名 If Me.txtName.Text = Then MsgBox 請?zhí)顚懶彰? vbInformation Me.txtName.SetFocus Exit Sub End If 檢驗(yàn)是否選擇了測試者性別,單選按鈕的Value屬性為True,表示選擇,F(xiàn)alse表示未選擇。 If Me.optSexFemal.V

15、alue = False And Me.optSexMale.Value = False Then MsgBox 請選擇性別, vbInformation Me.optSexMale.SetFocus Exit Sub End If 檢驗(yàn)是否選擇了測試者文化程度,列表框控件的ListIndex屬性未-1表示未選擇。 If Me.lstEduLevel.ListIndex = -1 Then MsgBox 請選擇文化程度, vbInformation Me.lstEduLevel.SetFocus Exit Sub End If ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 確定按鈕的Click

16、事件 保存相關(guān)信息到全局變量,如果所有信息均填寫或選擇,則保存到相應(yīng)的全局變量中。 testerName = Me.txtName.Text If Me.optSexMale.Value = True Then testerSex = 男 Else testerSex = 女 End If 列表框中選擇的項(xiàng)目內(nèi)容保存在Text屬性中,將該屬性的內(nèi)容保存在testerEduLevel變量中。 testerEduLevel = Me.lstEduLevel.Text 組合框中選擇的項(xiàng)目內(nèi)容保存在Text屬性中,將該屬性的內(nèi)容保存在testerBirthPlace變量中。 testerBirthPl

17、ace = Me.cmbBirthPlace.Text 用戶選擇的試卷名稱,可通過cmbPaper的ListIndex獲得。 通過讀取cmbPaperID的list數(shù)組的相應(yīng)項(xiàng)目得到用戶選擇的試卷名稱所對應(yīng)的試卷編號。 保存該試卷標(biāo)號到paperID變量中,以便在測試窗體中顯示該試卷所包含的試題。 paperID = Me.cmbPaperID.List(Me.cmbPaper.ListIndex) ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,新測試者窗體代碼 確定按鈕的Click事件 執(zhí)行窗體切換, 從內(nèi)存中卸載當(dāng)前窗體,注:VB中用關(guān)鍵字me代表當(dāng)前窗體。 Unload Me 從內(nèi)存中卸載frmMain窗

18、體。 Unload frmMain 加載并顯示測試窗體frmTest frmTest.Show End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 通用模塊 定義窗體級變量,定義數(shù)據(jù)庫連接所需要的變量。 Dim sConnect As String Dim sSQL As String Dim dfwConn As ADODB.Connection Dim rs As ADODB.Recordset 用于保存測試總分 Dim totalScore As Integer 用于保存每道題的8個選擇項(xiàng)目對應(yīng)的分值 Dim scores(1 To 8) As Integer 用于保存該試卷規(guī)定的測

19、試時間 Dim testTime As Integer 用于保存已用的測試時間 Dim usedTime As Long 用于判斷測試是否結(jié)束 Dim testOver As Boolean,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 Load事件 初始化控件與變量,Private Sub Form_Load() 使用frmTesterInfo窗體的窗體級變量為當(dāng)前窗體的控件賦初值 Me.lblName = 姓名: Password=;User ID=Admin;Data Source= 定義數(shù)據(jù)庫連接對象,并建立數(shù)據(jù)庫連接 Set dfwConn = New Connection dfwConn

20、.Open sConnect 定義記錄集對象 Set rs = New Recordset rs.CursorLocation = adUseClient 創(chuàng)建SQL查詢字符串,根據(jù)測試者選擇的試卷編號,到試卷表中查詢對應(yīng)的試卷信息 sSQL = select * from 試卷 where 試卷編號= & frmTesterInfo.paperID & 根據(jù)SQL查詢字符串,打開記錄集,返回查詢結(jié)果 rs.Open sSQL, dfwConn, 1, 3 ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 Load事件 設(shè)置控件內(nèi)容,將記錄集中對應(yīng)的試卷名稱內(nèi)容顯示到當(dāng)前窗體的標(biāo)題欄上 Me.Capt

21、ion = Me.Caption & - & rs.Fields(試卷名稱) 將記錄集中測試時間字段的值賦給變量testTime testTime = rs.Fields(測試時間) 設(shè)置窗體上顯示剩余時間的控件 Me.lbl剩余時間.Caption = testTime & 分鐘 設(shè)置窗體上顯示已用時間的控件 Me.lbl已用時間.Caption = 0 分鐘 關(guān)閉記錄集 rs.Close 構(gòu)建新的SQL查詢字符串,根據(jù)試卷編號在試題表中查詢對應(yīng)的試題信息 sSQL = select * from 試題 where 試卷編號= & frmTesterInfo.paperID & order

22、by 試題編號 根據(jù)SQL字符串打開記錄集,發(fā)揮查詢結(jié)果 rs.Open sSQL, dfwConn, 1, 3 調(diào)用showQuestion自定義函數(shù),顯示試題內(nèi)容 showQuestion End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 showQuestion過程 顯示題目及選項(xiàng),Private Sub showQuestion() 利用lbl試題控件顯示試題內(nèi)容 Me.lbl試題.Caption = rs.Fields(試題編號) & 、 & rs.Fields(試題內(nèi)容) 如果該題的選項(xiàng)A字段不為空,則利用控件Option1顯示選項(xiàng)A,并使Option1可見,并將選項(xiàng)A對應(yīng)的

23、分值保存在scores數(shù)組的對應(yīng)元素中。 如果該選項(xiàng)為空,則隱藏對應(yīng)控件 選項(xiàng)B到選項(xiàng)H都按此方法判斷和設(shè)置。 If rs.Fields(選項(xiàng)A) Then Me.Option1.Caption = rs.Fields(選項(xiàng)A) scores(1) = rs.Fields(選項(xiàng)A分值) Me.Option1.Visible = True Else Me.Option1.Visible = False End If 設(shè)置默認(rèn)選擇為選項(xiàng)A Me.Option1.Value = True End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 開始測試按鈕的Click事件 設(shè)置控件狀態(tài) 啟動計(jì)時器,

24、Private Sub cmdStartTest_Click() 顯示包含題目和選項(xiàng)的Frame3控件 Me.Frame3.Visible = True 使下一題按鈕可用 Me.cmdNext.Enabled = True 使開始測試按鈕不可用 Me.cmdStartTest.Enabled = False 初始化已用測試時間變量 usedTime = 0 激活定時器,定時執(zhí)行Timer1的Timer事件,顯示測試時間信息 Me.Timer1.Enabled = True End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 定時器Timer1的Timer事件 設(shè)置控件狀態(tài) 啟動計(jì)時器,Pr

25、ivate Sub Timer1_Timer() Timer1的Interval屬性為1000,相對于1秒鐘,因此每次執(zhí)行Timer事件時將已用時間加1 usedTime = usedTime + 1 將已用時間轉(zhuǎn)換成分鐘并顯示,同時計(jì)算剩余時間并顯示 Me.lbl已用時間.Caption = Format(usedTime / 60, 0) & 分鐘 Me.lbl剩余時間.Caption = Format(testTime - usedTime / 60, 0) & 分鐘 如果剩余時間小于5分鐘,則通過變換Frame2的背景顏色和時間信息控件的前景顏色提示測試者 If testTime -

26、usedTime / 60 5 Then Me.lbl剩余時間.ForeColor = vbRed Me.Frame2.BackColor = QBColor(Int(Rnd() * 15) + 1) Me.lbl已用時間.ForeColor = RGB(0, 255, 0) Me.Label5.ForeColor = &HFF0000 End If 如果測試時間到,提示測試者 If testTime - usedTime / 60 0 Then MsgBox 測試時間到,請單擊確定按鈕察看得分, vbInformation + vbOKOnly Me.Timer1.Enabled = Fal

27、se Me.cmdShowResult.Value = True End If End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 下一題按鈕的Click事件 計(jì)算得分 顯示下一題內(nèi)容,Private Sub cmdNext_Click() 判斷當(dāng)前顯示的是否是最后一題 如果不是最后一題,則根據(jù)測試者選擇的項(xiàng)目,即哪個Option的Value為True,計(jì)算當(dāng)前總分 If Not rs.EOF() Then If Me.Option1.Value = True Then totalScore = totalScore + scores(1) If Me.Option2.Value = Tr

28、ue Then totalScore = totalScore + scores(2) 移動記錄集的指針指向下一記錄 rs.MoveNext End If ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 下一題按鈕的Click事件 完成全部試題后的處理,If rs.EOF And rs.RecordCount 0 Then 已到記錄集的最后,則返回最后一題 rs.MoveLast 禁用下一題按鈕 Me.cmdNext.Enabled = False 使查看結(jié)果按鈕可用 Me.cmdShowResult.Enabled = True 設(shè)置測試結(jié)束變量為True testOver = True 提示測試

29、者查看結(jié)果 MsgBox 您已經(jīng)完成了全部測試題,單擊查看結(jié)果顯示測試結(jié)論, vbInformation 退出子過程 Exit Sub End If 如果沒有到達(dá)記錄集的最后,則調(diào)用showQuestion子過程,根據(jù)當(dāng)前記錄的內(nèi)容顯示新的題目及選項(xiàng)。 showQuestion End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 查看結(jié)果按鈕的Click事件 根據(jù)得分顯示結(jié)論 停止計(jì)時,Private Sub cmdShowResult_Click() 關(guān)閉當(dāng)前顯示題目的記錄集 rs.Close 重新建立SQL查詢字符串,用于從試卷庫中查詢相應(yīng)試卷編號的記錄 sSQL = select *

30、 from 試卷 where 試卷編號= & frmTesterInfo.paperID & rs.Open sSQL, dfwConn, 1, 3 根據(jù)測試總分所在的范圍,顯示對應(yīng)的結(jié)論 If totalScore = rs.Fields(結(jié)論1標(biāo)準(zhǔn)) Then Me.txtResult.Text = rs.Fields(結(jié)論1內(nèi)容) End If If totalScore = rs.Fields(結(jié)論2標(biāo)準(zhǔn)) Then Me.txtResult.Text = -測試結(jié)論- & vbCrLf & vbCrLf & Me.txtResult.Text Me.txtResult.Text =

31、Me.txtResult.Text & vbCrLf & vbCrLf & vbCrLf & -測試結(jié)論僅作參考- 隱藏題目和選項(xiàng)所在的Frame3控件 Me.Frame3.Visible = False 顯示測試結(jié)論所在的txtResult控件 Me.txtResult.Visible = True 停止測試時間計(jì)時 Me.Timer1.Enabled = False End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 關(guān)閉按鈕的Click事件 保存測試者信息,Private Sub cmdClose_Click() 如果測試者完成了全部試題的測試,則保存測試者信息和測試結(jié)果。如果測試者

32、沒有完成全部試題的測試,由于測試時間已到結(jié)束,則為不完整測試,不保存相關(guān)信息。 If testOver = True Then 關(guān)閉當(dāng)前記錄集 rs.Close 打開測試者表 sSQL = select * from 測試者 rs.Open sSQL, dfwConn, 1, 3 在測試者表中新建一條記錄 rs.AddNew 為新記錄的各個字段賦值 ID字段為自動產(chǎn)生,其內(nèi)容是當(dāng)前的記錄數(shù) Dim testerID testerID = rs.RecordCount rs.Fields(ID) = testerID 姓名字段等用frmTesterInfo的窗體級變量賦值 rs.Fields(姓

33、名) = frmTesterInfo.testerName rs.Fields(性別) = frmTesterInfo.testerSex rs.Fields(文化程度) = frmTesterInfo.testerEduLevel rs.Fields(籍貫) = frmTesterInfo.testerBirthPlace 更新記錄集,實(shí)現(xiàn)新記錄的保存 rs.Update rs.Close,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 關(guān)閉按鈕的Click事件 保存測試結(jié)果,使用類似方法,在測試結(jié)果中建立新記錄,并保存測試者ID、試卷編號和成績。 sSQL = select * from 測試結(jié)果

34、 rs.Open sSQL, dfwConn, 1, 3 rs.AddNew rs.Fields(測試者ID) = testerID rs.Fields(試卷編號) = frmTesterInfo.paperID rs.Fields(成績) = totalScore rs.Update rs.Close End If 卸載本窗體 Unload Me 顯示主窗體 frmMain.Show End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,測試窗體代碼 窗體的Unload事件 關(guān)閉數(shù)據(jù)庫連接,Private Sub Form_Unload(Cancel As Integer) 卸載窗體時關(guān)閉后臺數(shù)據(jù)庫連接

35、 dfwConn.Close End Sub,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,用戶登錄窗體代碼 確定按鈕的Click事件 驗(yàn)證數(shù)據(jù)庫中是否存在相應(yīng)的用戶名稱,Private Sub cmdOK_Click() 定義變量用于保存用戶輸入的名稱 Dim strUserName As String strUserName = Me.txtUserName 定義后臺數(shù)據(jù)庫路徑和名稱 DatabasePath = App.Path 建立SQL查詢語句,,從用戶表中查詢姓名等于輸入內(nèi)容的記錄 sSQL = SELECT * FROM 用戶 where 姓名= & strUserName & rs.Open sSQL, dfwConn, 1, 3 如果記錄集的記錄數(shù)量為0,表示沒有該用戶,顯示提示信息。 If rs.RecordCount = 0 Then MsgBox 無此用戶,請重新輸入! Me.txtUserName.SetFocus Exit Sub End If ,4、系統(tǒng)實(shí)現(xiàn)方法代碼編程,用戶登錄窗體代碼 確定按鈕的Click事件 驗(yàn)證口令是否正確,定義變量保存用戶輸入的口令 Dim strPassword As String strPa

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論