




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實訓工程VB試題庫管理系統1VB試題庫管理系統實訓目的實訓要求工程開發步驟2實訓目的
〔1〕檢驗學生一門或幾門相關課程的知識理解和掌握的程度;〔2〕鍛煉和提高學生綜合運用所學知識來進行分析問題、解決問題的實際動手能力;〔3〕使學生獲得計算機應用專業技術人員所必須具備的根本職業技能訓練;〔4〕養成積極向上、勇于探索、分工協作的工作作風,幫助學生樹立正確的職業道德觀。3實訓要求〔1〕學生在教師的指導下學會調查研究的方式方法。〔2〕建立開發團隊,分工明確。〔3〕工程開發文檔完整,標準。〔4〕強調進度,完善進度記錄。〔5〕強化開發過程,注重軟件開發流程。4工程開發步驟一需求分析二系統設計三數據庫設計與實現四各功能模塊的設計與實現5一需求分析1、功能需求本系統主要完成?VisualBasic?課程的試題庫管理與期末試卷的自動生成等功能,系統需要設計并實現的根本功能如下:〔1〕用戶管理:實現添加操作用戶、修改用戶信息、刪除用戶等根本操作。〔2〕題庫管理:實現分類別瀏覽、修改題庫中題目,修改包括題目的添加、修改、刪除。題庫管理中還包含題庫的導出功能,即實現分類別把題庫中的題目導出到MicrosoftWord中,從而可以輕松實現排版和打印。〔3〕試卷管理:實現?VisualBasic?課程的期末考試試卷的生成與排版功能。6一需求分析2、環境需求本系統對軟硬件的根本要求如下:〔1〕硬件環境:本系統至少在處理器為InterPentium166MX、內存32M、硬盤空間1GB、配有SVGA顯示適配器或更高配置的硬件環境中運行。〔2〕軟件環境:本系統要求的操作平臺為Windows98/ME/2000/XP,采用的數據庫系統為MicrosoftAccess2000,需要安裝MicrosoftWord2000。7二系統設計1、系統功能模塊根據需求分析,可以將本系統分解成5個功能模塊:用戶登錄模塊、用戶管理模塊、試題庫管理模塊、試卷管理模塊和幫助模塊,如圖1-1所示。8二系統設計圖1-19二系統設計2、功能模塊功能設計〔1〕用戶登錄模塊:選擇用戶名,填寫正確的密碼,就可以進入系統,系統會根據用戶的類別,賦予用戶不同的權限。當用戶密碼輸入錯誤時,允許用戶重新輸入,但輸入次數不能超過三次,否那么自動退出登陸模塊。10二系統設計〔2〕用戶管理模塊:本模塊為系統管理人員的專用功能,實現對操作人員信息的管理,主要包括添加新用戶的信息,設定用戶類別,修改用戶信息和刪除用戶信息等具體功能。11二系統設計〔3〕題庫管理模塊:題庫中按試題類型存儲了大量的試題,本模塊實現對題庫試題的具體管理,主要包括題庫中按類型進行試題的瀏覽,題庫中試題的修改和題庫題目的導出,本系統的導出功能實現題目內容導出到MicrosoftWord2000,以表格的形式顯示,同時可以利用Word本身的打印功能實現題庫的打印。12二系統設計〔4〕試卷管理模塊:系統可以隨機按要求自動生成VisualBasic課程的期末考試試卷和對應的試卷答案,試卷存儲為擴展名為.doc的Word文檔,可以利用Word對試卷進行排版,并可打印試卷。〔5〕幫助模塊:顯示系統的根本信息,版權聲明等。13三數據庫設計與實現1、數據庫需求分析根據系統要求,可以列出以下記錄題庫相關信息的數據項和數據結構:〔1〕操作人員根本信息表〔操作人員表.mdb〕14表1-1操作人員根本信息表字段名稱數據類型是否主鍵是否可空說明IDLongYesNo操作人員編號UserNameTextNoNo用戶名UserPwdTextNoNo用戶密碼UserTypeTextNoNo用戶類別,分admin和teacher兩類。15三數據庫設計與實現〔2〕填空題目信息表〔填空.mdb〕表1-2填空題根本信息表字段名稱數據類型是否主鍵是否可空說明序號TextYesNo填空題編號內容MemoNoNo填空題目題干內容答案TextNoNo填空題答案分值byteNoNo該填空題題目分值16三數據庫設計與實現〔3〕根本控件應用編程題根本信息表〔根本件.mdb〕表1-3根本控件應用編程題根本信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo題目編號內容MemoNoNo題目題干內容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值17三數據庫設計與實現〔4〕圖形與動畫應用編程題目信息表〔圖片與動畫.mdb〕表1-4圖片與動畫編程題根本信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo題目編號內容MemoNoNo題目題干內容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值18三數據庫設計與實現〔5〕菜單應用編程題目信息表〔菜單應用.mdb〕表15-5菜單應用編程題根本信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo題目編號內容MemoNoNo題目題干內容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值19三數據庫設計與實現〔6〕綜合應用編程題目信息表〔綜合應用.mdb〕表1-6綜合應用編程題根本信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo題目編號內容MemoNoNo題目題干內容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值20三數據庫設計與實現〔7〕數據庫應用編程題目信息表〔數據庫應用.mdb〕表1-7數據庫應用編程題根本信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo題目編號內容MemoNoNo題目題干內容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值21三數據庫設計與實現〔8〕開設VisualBasic課程的專業信息表〔開設專業.mdb〕表1-8開課信息表字段名稱數據類型是否主鍵是否可空說明序號ByteYesNo專業序號專業TextNoNo專業的全名稱入學年份TextNoNo入學時間,如2001所在系別TextNoNo所在系別的全稱人數byteNoNo該專業的總人數任課教師TextNoNo任課教師姓名22三數據庫設計與實現本系統中數據庫的各個表的結構均在MicrosoftAccess2000中實現。23四各功能模塊的設計與實現〔1〕系統啟動界面設計〔2〕登錄對話框架設計〔3〕系統主窗體設計〔4〕菜單設計〔5〕工具欄設計〔6〕狀態欄設計24四各功能模塊的設計與實現〔7〕添加用戶模塊設計〔8〕修改用戶信息模塊設計〔9〕刪除用戶模塊設計〔10〕題庫瀏覽模塊設計〔11〕題庫修改模塊設計〔12〕題庫導出模塊設計〔13〕生成試卷模塊設計25四各功能模塊的設計與實現
----系統啟動界面設計1、系統啟動界面設計啟動VisualBasic,創立一個新的工程,保存為testpaper.vbp。將窗體Form1保存為Frmwelcom.frm,窗體設計見表1-9。26表1-9啟動界面窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmwelcom)NamefrmwelcomeBorderStyle0-none標簽1(Label1)CaptionVB試題庫管理系統標簽2(Label2)Caption-----遼陽職院穆紅濤ForeColor&H8000000E&標簽3(Label3)CaptionVB試題庫管理系統ForeColor&H00FF8080&圖片框(Picture1)AutoSizeTrueBackColor&H00FF0000&四各功能模塊的設計與實現
----系統啟動界面設計27四各功能模塊的設計與實現
----系統啟動界面設計其中Label1和Label3的字體設置除顏色外完全相同,目的想使文字具有陰影效果。窗體顯示如圖1-2所示。圖1-228四各功能模塊的設計與實現
----系統啟動界面設計程序代碼如下:OptionExplicit'單擊窗體,顯示登錄對話框PrivateSubForm_Click()frmlogin.ShowUnloadMeEndSub'窗體加載時,調整標簽位置,顯示圖片PrivateSubForm_Load()Label3.Left=Label1.Left+2Label3.Top=Label1.Top-2Picture1.Picture=LoadPicture(App.Path&"\usepic\boy7.gif")EndSub'使得窗體呈現上深下淺的藍色效果29四各功能模塊的設計與實現
----系統啟動界面設計PrivateSubForm_Paint()DimiAsIntegerFori=0To100Frmwelcome.Line(0,i)-(Me.Width,i),RGB(0,0,255)NextiFori=100To500Frmwelcome.Line(0,i)-(Me.Width,i),RGB(i\2-50,i\2-50,255)NextEndSub'單擊Label1,顯示登錄對話框PrivateSubLabel1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub30四各功能模塊的設計與實現
----系統啟動界面設計'單擊Label2,顯示登錄對話框PrivateSubLabel2_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'單擊Label3,顯示登錄對話框PrivateSubLabel3_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'單擊Picture1,顯示登錄對話框PrivateSubPicture1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub31四各功能模塊的設計與實現
----登錄對話框設計2、登錄對話框設計在工程中添加一新窗體,保存為文件Frmlogin.frm,該窗體用來實現用戶合法身份驗證,窗體設計見表1-10。32表1-10登錄對話框及各控件屬性設置對象屬性屬性設置值窗體(Frmlogin)NamefrmloginBorderStyle3-FixedDialog標簽1(Label1)Caption請確認身份和密碼:標簽2(Label2)Caption用戶名:標簽3(Label3)Caption密碼:組合框(Comobo1)Text空文本框(Text1)Text空PasswordChar*Data控件(Data1)DatabaseName……\mdb\testpaper.mdbRecordSource操作人員表圖片框(Picture1)AutoSizeTrue命令按鈕1(Command1)Caption確定命令按鈕2(Command2)Caption取消33四各功能模塊的設計與實現
----登錄對話框設計程序代碼如下:OptionExplicitDimstrsqlAsString,struserAsString,strpwdAsStringPrivateSubCommand1_Click()'驗證密碼的正確性,如果正確顯示系統主窗體MDIFrmmainStaticrAsInteger,answerAsIntegerstruser=Trim(Combo1.Text)strpwd=Trim(Text1.Text)strsql="select*from操作人員表whereusername='"&struser&"'"&"anduserpwd='"&strpwd&"'"Data1.RecordSource=strsqlData1.Refresh34四各功能模塊的設計與實現
----登錄對話框設計IfData1.Recordset.RecordCount>0ThenMDIFrmmain.Show'根據用戶的類別不同,使用權限也不同
IfTrim(Data1.Recordset.Fields("usertype"))="admin"ThenMDIFrmmain.mnumodify.Enabled=TrueMDIFrmmain.mnutestmanage.Enabled=TrueMDIFrmmain.mnuadduser.Enabled=TrueMDIFrmmain.mnudeluser.Enabled=TrueMDIFrmmain.mnumodiuser.Enabled=TrueElse35四各功能模塊的設計與實現
----登錄對話框設計MDIFrmmain.mnumodify.Enabled=FalseMDIFrmmain.mnutestmanage.Enabled=FalseMDIFrmmain.mnuadduser.Enabled=FalseMDIFrmmain.mnudeluser.Enabled=FalseMDIFrmmain.mnumodiuser.Enabled=FalseEndIfUnloadMe'錯誤次數限制
ElseIfr<3Thenr=r+1MsgBox("密碼錯,請重新輸入")Combo1.Text=""Text1.Text=""Combo1.SetFocusElse36四各功能模塊的設計與實現
----登錄對話框設計answer=MsgBox("您是非法用戶,請和管理員聯系!")Ifanswer=1ThenEndEndIfEndSubPrivateSubCommand2_Click()'取消按鈕,那么結束程序EndEndSub'窗體初始化時,把所有用戶名都添加到組合框Comobo1的List列表中PrivateSubForm_Initialize()Combo1.Clear37四各功能模塊的設計與實現
----登錄對話框設計Combo1.AddItemData1.Recordset.Fields("username")LoopEndSubPrivateSubForm_Load()Picture1.Picture=LoadPicture(App.Path&"\usepic\boy15.gif")Data1.Visible=FalseEndSub'單擊密碼框,執行“確定〞按鈕Click事件PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenCommand1_ClickEndSub38四各功能模塊的設計與實現
----登錄對話框設計窗體運行顯示效果如圖1-3所示。圖1-339四各功能模塊的設計與實現
----系統主窗體設計3、系統主窗體的設計在工程中添加一個MDI窗體,保存為MDIFrmmain.frm文件。本窗體為系統運行的主窗體,窗體設計見表1-11。40表1-11系統主窗體及各控件屬性設置對象屬性屬性設置值窗體(MDIFrmmain)NameMDIFrmmainCaption《VisualBasic》試題庫管理系統WindowState2-Maximized圖像列表1(ImageList1)NameImageList1通用對話框(CommonDialog1)NameCommonDialog1工具欄(ToolBar1)NameToolBar1狀態欄(StatusBar1)NameStatusBar141四各功能模塊的設計與實現
----菜單設計〔1〕菜單設計翻開“菜單編輯器〞,按照表1-12所示建立主窗體上的菜單。設計結果如圖1-4和圖1-5所示。圖1-4圖1-542四各功能模塊的設計與實現43四各功能模塊的設計與實現
----工具欄設計〔2〕工具欄設計為了設計工具欄,首先要在MDI窗體上添加工具條ToolBar控件和圖像列表ImageList控件。右鍵單擊圖像列表控件ImageList1,在其“屬性頁〞對話框中添加假設干個圖片,結果如圖1-6所示。圖1-644四各功能模塊的設計與實現在工具條ToolBar1的“屬性頁〞對話框中,插入5個按鈕,并對每個Button對象設置關鍵字屬性、工具提示文本和顯示圖像,5個按鈕對應的提示工具提示文本分別是:“修改用戶信息〞、“題庫導出〞、“生成試卷〞、“試卷排版〞和“幫助〞,如圖1-7所示。圖1-745四各功能模塊的設計與實現
----狀態欄設計〔3〕狀態欄設計設計狀態欄時,右鍵單擊狀態欄StatusBar1,在其“屬性頁〞對話框中,插入3個窗格。分別對3個窗格的工具提示文本、樣式等進行設置,3個窗格的樣式分別設置為1-sbrCaps、2-sbrDate和3-sbrTime。設計好的主窗體如圖1-8所示。圖1-846四各功能模塊的設計與實現
----狀態欄設計接下來設計程序代碼。本例中試卷的排版是利用API函數來翻開Word應用程序的,所以在本窗體模塊聲名局部需要參加ShellExecuteAPI函數聲明。具體方法為:在Windows開始菜單中運行“API文本瀏覽器〞,接下來選擇瀏覽器“文件〞菜單中的“加載文本文件〞,在彈出的對話框中選擇“WIN32API.TXT〞,單擊“翻開〞按鈕。在“鍵入你要查找內容的開頭幾個字母〞文本框中輸入“shelle〞單擊“添加〞按鈕,如圖1-9所示。圖1-947四各功能模塊的設計與實現
----系統總窗體設計單擊“復制〞按鈕,把“選定項〞內容復制到剪貼板上,回到VisualBasic集成開發環境,在聲明局部右鍵單擊鼠標,粘貼函數聲明。PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhwndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong48四各功能模塊的設計與實現
----系統總窗體設計ConstSW_SHOW=5'常量聲明'題庫導出菜單項PrivateSubfrmexport_Click()frmexport.Show'題庫導出窗體EndSub'在窗體上右鍵單擊彈出“試卷管理〞菜單PrivateSubMDIForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnutestmanageEndIfEndSub49四各功能模塊的設計與實現
----系統總窗體設計'添加用戶菜單項PrivateSubmnuadduser_Click()Frmadduser.ShowEndSub'瀏覽根本控件題目菜單項PrivateSubmnucontrol_Click()Frmcontrol_view.ShowEndSub'生成試卷菜單項PrivateSubmnucrepaper_Click()Frmobject.ShowEndSub'編輯根本控件題目菜單項PrivateSubmnuctrl_Click()frmcontrol_edit.ShowEndSub50四各功能模塊的設計與實現
----系統總窗體設計'刪除用戶菜單項PrivateSubmnudeluser_Click()Frmdeluser.ShowEndSub'試卷排版菜單項PrivateSubmnuedit_Click()CommonDialog1.ShowOpenIfCommonDialog1.FileName<>""ThenShellExecuteMe.hwnd,"open",CommonDialog1.FileName,"","",SW_SHOW'方法二'Str1="start"&CommonDialog1.FileName'ShellStr1EndIfEndSub51四各功能模塊的設計與實現
----系統總窗體設計'退出菜單項PrivateSubmnuexit_Click()EndEndSub'修改用戶信息菜單項PrivateSubmnumodiuser_Click()Frmmodiuser.ShowEndSub52四各功能模塊的設計與實現
----添加用戶模塊設計4、添加用戶模塊設計在工程中添加一個新的窗體,將它保存為Frmadduser.frm,其功能主要是實現添加新操作人員的信息。Frmadduser窗體上的主要控件及其屬性見表1-13。53表1-13Frmadduser〔添加用戶〕窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmadduser)NameFrmadduserCaption添加新用戶BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource操作人員表文本框1(Text1)DataSourceData1DataFieldID文本框2(Text2)DataSourceData1DataFieldUserName文本框3(Text3)DataSourceData1DataFieldUserPwd組合框1(Combo1)DataSourceData1DataFieldUserStyle命令按鈕1(Command1)Caption添加命令按鈕2(Command2)Caption取消命令按鈕3(Command3)Caption退出四各功能模塊的設計與實現
----添加用戶模塊設計54四各功能模塊的設計與實現
----添加用戶模塊設計編寫代碼如下:'“添加〞按鈕單擊事件PrivateSubCommand1_Click()OnErrorGoTohandlerIfTrim(Text1.Text)=""ThenMsgBox"請填寫好用戶編號!",,"警告"Text1.SetFocusElseIfTrim(Text2.Text)=""ThenMsgBox"請填寫好用戶名稱!",,"警告"Text2.SetFocusElseIfTrim(Text3.Text)=""ThenMsgBox"請填寫好用戶密碼!",,"警告"55四各功能模塊的設計與實現
----添加用戶模塊設計Text3.SetFocusElseIfTrim(Combo1.Text)=""ThenMsgBox"請選擇用戶類型!",,"警告"Combo1.SetFocusElseMsgBox"添加用戶操作成功!"EndIfExitSubhandler:MsgBox"添加用戶操作失敗!",,"警告"圖15-10ExitSubEndSub56四各功能模塊的設計與實現
----添加用戶模塊設計'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub窗體運行如圖1-10所示。圖1-1057四各功能模塊的設計與實現
----修改用戶信息模塊設計5、修改用戶信息模塊設計在工程中添加一個新的窗體,將它保存為Frmmodiuser.frm,其功能主要是實現修改操作人員的信息。Frmadduser窗體上的主要控件及其屬性見表1-14。58表1-14Frmmodiuser〔修改用戶信息〕窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmmodiuser)NameFrmmodiuserCaption修改用戶信息BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource操作人員表MSFlexGrid1(MSFlexGrid1)DataSourceData1命令按鈕1(Command1)Caption修改命令按鈕2(Command2)Caption取消命令按鈕3(Command3)Caption退出59四各功能模塊的設計與實現
----修改用戶信息模塊設計MSFlexGrid1為ActiveX控件,添加方法為選擇“工程〞菜單中“部件〞菜單項,在彈出的對話框中選擇“MicrosoftMSFlexGridControl6.0〞,單擊“確定〞按鈕即可。窗體上的Text1、Text2、Text3和Combo1控件的屬性設置和添加用戶模塊中對應的屬性設置完全一致,此處不再贅述。編寫代碼如下:'“修改〞按鈕單擊事件PrivateSubCommand1_Click()OnErrorGoTohandlerText1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=True60四各功能模塊的設計與實現
----修改用戶信息模塊設計MsgBox"修改數據成功!"Data1.RefreshExitSubhandler:MsgBox"修改數據失敗!",,"警告"ExitSubEndSub'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub61四各功能模塊的設計與實現
----修改用戶信息模塊設計'設置MSFlexGrid1控件的第一行文字內容PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用戶編號"&Chr(9)&"用戶名稱"&Chr(9)&"用戶密碼"&Chr(9)&"用戶類型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub62四各功能模塊的設計與實現
----修改用戶信息模塊設計'實現雙擊MSFlexGrid1的某一行,那么該行對應的記錄顯示在下面的各文本框中PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridText1.Locked=FalseText2.Locked=FalseText3.Locked=FalseCombo1.Locked=FalseEndSub63四各功能模塊的設計與實現
----修改用戶信息模塊設計本模塊窗體運行如圖1-11所示。圖1-1164四各功能模塊的設計與實現
----刪除用戶模塊設計6、刪除用戶模塊設計在工程中再添加一個新的窗體,將它保存為Frmdeluser.frm,其功能主要是實現刪除操作人員的信息。Frmadduser窗體上的主要控件及其屬性和修改用戶信息模塊窗體設置根本相同。表1-15僅列出了與上一模塊不同的控件設置。65表1-15Frmdeluser〔刪除用戶信息〕窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmdeluser)NameFrmdeluserCaption刪除用戶信息BorderStyle3-FixedDialogMDIChildTrue命令按鈕1(Command1)Caption刪除命令按鈕2(Command2)Caption取消命令按鈕3(Command3)Caption退出66四各功能模塊的設計與實現
----刪除用戶模塊設計編寫代碼如下:'“刪除〞按鈕單擊事件PrivateSubCommand1_Click()DimansAsIntegerOnErrorGoTohandlerIfNotData1.Recordset.EOFThenans=MsgBox("確定要刪除該用戶嗎?",vbOKCancel,"刪除提示")Ifans=vbOKThenMsgBox"數據已刪除!"Data1.RefreshElse67四各功能模塊的設計與實現
----刪除用戶模塊設計ExitSubEndIfEndIfExitSubhandler:MsgBox"數據無法刪除!",,"警告"ExitSubEndSub'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub68四各功能模塊的設計與實現
----刪除用戶模塊設計PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用戶編號"&Chr(9)&"用戶名稱"&Chr(9)&"用戶密碼"&Chr(9)&"用戶類型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub69四各功能模塊的設計與實現
----刪除用戶模塊設計PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridEndSub本模塊窗體運行如圖1-12所示。圖1-1270四各功能模塊的設計與實現
----題庫瀏覽模塊設計7、題庫瀏覽模塊設計本系統的題庫瀏覽模塊的主要功能是按六種題目類型分別進行試題的瀏覽,下面以瀏覽“根本控件的應用編程題〞為例,說明實現的方法。在工程中添加一個新的窗體,將它保存為Frmcontrol_view.frm,其功能主要是實現“根本控件的應用編程題〞的瀏覽。Frmcontrol_view窗體上的主要控件及其屬性見表15-16。71四各功能模塊的設計與實現
----題庫瀏覽模塊設計編寫代碼如下:'第一題PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'下一題PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已經到達最后一題!",,"提示"EndIf72四各功能模塊的設計與實現
----題庫瀏覽模塊設計Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'上一題PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已經到達第一題!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'最后一題73四各功能模塊的設計與實現
----題庫瀏覽模塊設計PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模塊窗體運行如圖1-13所示。圖1-1374四各功能模塊的設計與實現
----題庫修改模塊設計8、題庫修改模塊設計本系統的題庫修改模塊的主要功能是按六種題目類型分別進行試題的修改,下面以修改“根本控件的應用編程題〞為例,說明實現的方法。在工程中添加一個新的窗體,將它保存為Frmcontrol_edit.frm,其功能主要是實現“根本控件的應用編程題〞的修改。Frmcontrol_edit窗體上的主要控件及其屬性見表1-17。75表15-17Frmcontrol_edit〔修改根本控件〕窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmcontrol_edit)NameFrmcontrol_editCaption基本控件編程題修改WindowState2-MaximizedMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource基本控件命令按鈕5(Command5)Caption確定命令按鈕6(Command6)Caption刪除命令按鈕7(Command7)Caption修改命令按鈕8(Command8)Caption添加命令按鈕9(Command9)Caption取消76四各功能模塊的設計與實現
----題庫修改模塊設計Frmcontrol_edit窗體上的Text1、Text2、Text3、Text4、Text5、Command1、Command2、Command3和Command4的根本設置與Frmcontrol_view窗體上對應的控件設置根本相同。77四各功能模塊的設計與實現
----題庫修改模塊設計代碼編寫如下:'“第一題〞按鈕單擊事件PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))'保持圖片的同步EndSub'“下一題〞按鈕單擊事件PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已經到達最后一題!",,"提示"EndIf78四各功能模塊的設計與實現
----題庫修改模塊設計Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“上一題〞按鈕單擊事件PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已經到達第一題!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“最后一題〞按鈕單擊事件79四各功能模塊的設計與實現
----題庫修改模塊設計PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“確定〞按鈕單擊事件PrivateSubCommand5_Click()Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueText4.Locked=TrueText5.Locked=TrueEndSub80四各功能模塊的設計與實現
----題庫修改模塊設計'“刪除〞按鈕單擊事件PrivateSubCommand6_Click()DimansAsIntegerans=MsgBox("確定要刪除此條記錄嗎?",vbOKCancel+vbQuestion,"刪除提示")Ifans=vbOKThenIfData1.Recordset.EOFThenEndIfEndIfEndSub81四各功能模塊的設計與實現
----題庫修改模塊設計'“修改〞按鈕單擊事件PrivateSubCommand7_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub82四各功能模塊的設計與實現
----題庫修改模塊設計'“添加〞按鈕單擊事件PrivateSubCommand8_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub'“取消〞按鈕單擊事件PrivateSubCommand9_Click()Data1.RefreshText1.Locked=TrueText2.Locked=TrueText3.Locked=True83四各功能模塊的設計與實現
----題庫修改模塊設計Text4.Locked=TrueText5.Locked=TrueEndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模塊窗體運行如圖1-14所示。圖1-1484四各功能模塊的設計與實現
----題庫導出模塊設計9、題庫導出模塊設計本系統的題庫導出功能主要實現針對每種題型,可以分別把該類型的所有題目傳送到Word的文檔的表格中,然后可以直接利用Word的排版與打印功能實現題目的排版與打印。在工程中繼續添加新的窗體,保存為frmexport.frm。frmexport窗體上的主要控件及其屬性見表1-18。85表15-18frmexport〔題庫導出〕窗體及各控件屬性設置對象屬性屬性設置值窗體(frmexport)NamefrmexportCaption題庫導出與打印BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource基本控件命令按鈕1(Command1)Caption導出生成Word文檔命令按鈕2(Command2)Caption退出MSFlexGrid1(MSFlexGrid1)DataSourceData1AllowUserResizing3-flexResizeBoth組合框1(Combo1)NameCombo1List填空、基本控件、圖片動畫、菜單應用、綜合應用、數據庫應用86四各功能模塊的設計與實現
----題庫修改模塊設計編寫代碼如下:PrivatewordappAsWord.ApplicationPrivatedocAsWord.DocumentPrivatese1AsWord.SelectionPrivatedbAsDatabasePrivatersAsRecordset'“導出生成Word文檔〞按鈕單擊事件PrivateSubCommand1_Click()Setdb=OpenDatabase(App.Path&“\mdb\vbtest2.mdb")SelectCaseCombo1.ListIndexCase0Setrs=db.OpenRecordset("select*from填空")Case187四各功能模塊的設計與實現
----題庫修改模塊設計Setrs=db.OpenRecordset("select*from根本控件")Case2Setrs=db.OpenRecordset("select*from圖片與動畫")Case3Setrs=db.OpenRecordset("select*from菜單應用")Case4Setrs=db.OpenRecordset("select*from綜合應用")Case5Setrs=db.OpenRecordset("select*from數據庫應用")EndSelect'建立新的Word文檔,設置表格格式Setwordapp=NewWord.ApplicationSetdoc=wordapp.ActiveDocumentSetse1=wordapp.Selection88四各功能模塊的設計與實現
----題庫修改模塊設計doc.Tables.AddRange:=se1.Range,numrows:=1,numcolumns:=5se1.TypeTextText:="序號"se1.MoveRightunit:=12se1.TypeTextText:="題目"se1.MoveRightunit:=12se1.TypeTextText:="分值"se1.MoveRightunit:=12se1.TypeTextText:="附圖"se1.MoveRightunit:=12se1.TypeTextText:="答案"se1.MoveRightunit:=12DoUntilrs.EOF'向Word表格中逐行添加記錄內容89四各功能模塊的設計與實現
----題庫修改模塊設計se1.TypeTextText:=rs!序號
se1.MoveRightunit:=12se1.TypeTextText:=rs!內容
se1.MoveRightunit:=12se1.TypeTextText:=rs!分值
se1.MoveRightunit:=12se1.TypeTextText:=rs!附圖
se1.MoveRightunit:=12se1.TypeTextText:=rs!答案
se1.MoveRightunit:=12rs.MoveNextLoopwordapp.Visible=TrueSetwordapp=NothingEndSub'選擇組合框中的不同列表項,Data1控件設置不同的數據源90四各功能模塊的設計與實現
----題庫修改模塊設計PrivateSubCombo1_Click()SelectCaseCombo1.ListIndexCase0Data1.RecordSource="select*from填空"Case1Data1.RecordSource="select*from根本控件"Case2Data1.RecordSource="select*from圖片與動畫"Case3Data1.RecordSource="select*from菜單應用"Case4Data1.RecordSource="select*from綜合應用"Case5Data1.RecordSource="select*from數據庫應用"EndSelectData1.RefreshEndSub91四各功能模塊的設計與實現
----題庫修改模塊設計'“退出〞按鈕的單擊事件PrivateSubCommand2_Click()UnloadMeEndSub本模塊窗體運行后,先選擇導出的題目類型,然后單擊“導出生成Word文檔〞按鈕,窗體顯示如圖1-15所示。圖1-1592四各功能模塊的設計與實現
----生成試卷模塊設計10、生成試卷模塊設計試卷自動生成是本系統的一個非常重要而且關鍵的模塊。本模塊主要實現試卷的隨機自動生成,并保證試題知識分布的合理性。本模塊包含四個窗體,分別是Frmobjet.frm〔選擇考試對象窗體〕、Frmcontent.frm〔選擇題目內容分布窗體〕、Frmpaper.frm〔試卷顯示窗體〕和Frmanswer.frm〔答案顯示窗體〕。93四各功能模塊的設計與實現
----生成試卷模塊設計分別創立并保存四個窗體,四個窗體的主要控件及其屬性分別見表1-19、表1-20、表1-21和表1-22。〔1〕Frmobjet.frm〔選擇考試對象窗體〕的設計94表1-19Frmobjet〔選定考試對象〕窗體及各控件屬性設置對象屬性屬性設置值窗體(Frmobjet)NameFrmobjetCaption選定年級和專業:BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource開課信息表VisibleFalse組合框1(Combo1)Text空組合框2(Combo2)Text空命令按鈕1(Command1)Caption確定95四各功能模塊的設計與實現
----生成試卷模塊設計編寫代碼:'“確定〞按鈕的單擊事件PrivateSubCommand1_Click()Frmpaper.Text1.SelText=""+Combo1.Text+"級"+Combo2.Text+_"專業?VisualBasic?期末試題"+Chr(13)+Chr(10)Frmanswer.Text1.SelText=""+Combo1.Text+"級"+Combo2.Text+_"專業?VisualBasic?期末試題答案"+Chr(13)+Chr(10)Frmcontent.ShowFrmobject.HideEndSub'向Combo1和Combo2兩個組合框中添加“開課信息表〞中所有的入學年級和專業名稱96四各功能模塊的設計與實現
----生成試卷模塊設計PrivateSubForm_Activate()DimiAsInteger,flag1AsBoolean,flag2AsBooleanCombo1.ClearCombo2.Clearflag1=Falseflag2=FalseFori=0ToCombo1.ListCount-1IfTrim(Combo1.List(i))=Trim(Data1.Recordset.Fields("入學年份"))Thenflag1=TrueEndIf97四各功能模塊的設計與實現
----生成試卷模塊設計IfTrim(Combo2.List(i))=Trim(Data1.Recordset.Fields("專業"))Thenflag1=TrueEndIfNextiIfNotflag1ThenCombo1.AddItemData1.Recordset.Fields("入學年份")EndIfIfNotflag2ThenCombo2.AddItemData1.Recordset.Fields("專業")EndIfLoopEndSub98四各功能模塊的設計與實現
----生成試卷模塊設計窗體運行如圖1-16所示。圖1-1699四各功能模塊的設計與實現
----生成試卷模塊設計〔2〕Frmcontent.frm〔選擇題目內容分布窗體〕的設計表1-20Frmcontent〔選擇題目內容分布窗體〕窗體及屬性設置對象屬性屬性設置值窗體(Frmcontent)NameFrmcontentCaption選定試題模式:BorderStyle3-FixedDialogMDIChildTrue100四各功能模塊的設計與實現
----生成試卷模塊設計窗體中還包含6個Data控件,它們的DatabaseName屬性均設置為“…\mdb\testpaper.mdb〞,它們的RdocorSource屬性那么分別為“填空〞、“根本控件〞、“圖片動畫〞、“菜單應用〞、“綜合應用〞和“數據庫應用〞。窗體中還包含7個文本框。101四各功能模塊的設計與實現
----生成試卷模塊設計代碼設計如下:Frmcontent.frm窗體上的“確定〞按鈕的單擊事件。PrivateSubCommand1_Click()DimsumAsIntegerDima()AsByteDimi,j,k,resultAsIntegerDimrealsumAsIntegerDimmark,summarkAsInteger'以下是生成第一題Frmpaper.Text1.SelText="一、填空題〔20分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="一、填空題"+Chr(13)+Chr(10)sum=Val(Text1.Text)102四各功能模塊的設計與實現
----生成試卷模塊設計WithData1.Recordset.MoveFirst.MoveLastj=.RecordCountReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0summark=0Whilesummark<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1103四各功能模塊的設計與實現
----生成試卷模塊設計.Movekmark=.Fields("分值")Debug.Printmarksummark=summark+markrealsum=realsum+1Clipboard.SetText.Fields("內容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf104四各功能模塊的設計與實現
----生成試卷模塊設計Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+""EndIfWendEndWithFrmpaper.Text1.SelText="〔注:以下各題請按要求編寫程序實現。〕"+Chr(13)+Chr(10)'以下是生成第二題Frmpaper.Text1.SelText="二、編寫程序〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText=Chr(13)+Chr(10)+"二、編寫程序〔16分〕"+Chr(13)+Chr(10)sum=Val(Text2.Text)105四各功能模塊的設計與實現
----生成試卷模塊設計WithData2.Recordsetj=.RecordCountIfsum>jThenresult=MsgBox("輸入數據超過當前題庫中題目總數!",48,"輸入錯誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0106四各功能模塊的設計與實現
----生成試卷模塊設計Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1ealsum=realsum+1.MovekClipboard.SetText.Fields("內容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf107四各功能模塊的設計與實現
----生成試卷模塊設計Clipboard.SetText.Fields("附圖")Frmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)EndIfWendEndWith'以下是生成第三題Frmpaper.Text1.SelText="三、編程題〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="三、編程題〔16分〕"+Chr(13)+Chr(10)sum=Val(Text3.Text)WithData3.Recordsetj=.RecordCountIfsum>jThen108四各功能模塊的設計與實現
----生成試卷模塊設計result=MsgBox("輸入數據超過當前題庫中題目總數!",48,"輸入錯誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Then109四各功能模塊的設計與實現
----生成試卷模塊設計a(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("內容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIfClipboard.SetText.Fields("附圖")Frmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)EndIf110四各功能模塊的設計與實現
----生成試卷模塊設計WendEndWith'以下是生成第四題Frmpaper.Text1.SelText="四、編程題〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="四、編程題〔16分〕"+Chr(13)+Chr(10)sum=Val(Text4.Text)WithData4.Recordsetj=.RecordCountIfsum>jThenresult=MsgBox("輸入數據超過當前題庫中題目總數!",48,"輸入錯誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIf111四各功能模塊的設計與實現
----生成試卷模塊設計ReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("內容")Ifsum>1Then112四各功能模塊的設計與實現
----生成試卷模塊設計Frmpaper.Text1.SelText=Str$(realsum)+"、"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年衛生工程法規試題及答案
- 持續改進業務流程的年度計劃
- 腫瘤科個人工作計劃
- 學習型組織的管理之道計劃
- 教師健康與職業心理保障計劃
- 企業戰略調整的月度行動計劃
- 銷售業績提升的途徑計劃
- 深入開展風險評估確保安全運營計劃
- 探索家庭教育的開展與支持計劃
- 2025年建筑法規考試的有效溝通技巧與試題
- 第十章-老年人的臨終護理課件
- 結構化學大綱
- 康復評定學第三章肌力
- 圖形創意(高職藝術設計)PPT完整全套教學課件
- 2023年財會金融-注冊會計師-審計(官方)考試歷年真題甄選版帶答案
- 2023學年完整公開課版粘壓阻力
- YY/T 0299-2022醫用超聲耦合劑
- MT 181-1988煤礦井下用塑料管安全性能檢驗規范
- GB/T 193-2003普通螺紋直徑與螺距系列
- 因納特工商管理綜合實訓軟件V4.00
- 四議兩公開工作法課件
評論
0/150
提交評論