第4章工程框架設(shè)計(jì) - 無(wú)標(biāo)題頁(yè)_第1頁(yè)
第4章工程框架設(shè)計(jì) - 無(wú)標(biāo)題頁(yè)_第2頁(yè)
第4章工程框架設(shè)計(jì) - 無(wú)標(biāo)題頁(yè)_第3頁(yè)
第4章工程框架設(shè)計(jì) - 無(wú)標(biāo)題頁(yè)_第4頁(yè)
第4章工程框架設(shè)計(jì) - 無(wú)標(biāo)題頁(yè)_第5頁(yè)
已閱讀5頁(yè),還剩121頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)訓(xùn)工程VB試題庫(kù)管理系統(tǒng)1VB試題庫(kù)管理系統(tǒng)實(shí)訓(xùn)目的實(shí)訓(xùn)要求工程開發(fā)步驟2實(shí)訓(xùn)目的

〔1〕檢驗(yàn)學(xué)生一門或幾門相關(guān)課程的知識(shí)理解和掌握的程度;〔2〕鍛煉和提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)來進(jìn)行分析問題、解決問題的實(shí)際動(dòng)手能力;〔3〕使學(xué)生獲得計(jì)算機(jī)應(yīng)用專業(yè)技術(shù)人員所必須具備的根本職業(yè)技能訓(xùn)練;〔4〕養(yǎng)成積極向上、勇于探索、分工協(xié)作的工作作風(fēng),幫助學(xué)生樹立正確的職業(yè)道德觀。3實(shí)訓(xùn)要求〔1〕學(xué)生在教師的指導(dǎo)下學(xué)會(huì)調(diào)查研究的方式方法?!?〕建立開發(fā)團(tuán)隊(duì),分工明確?!?〕工程開發(fā)文檔完整,標(biāo)準(zhǔn)?!?〕強(qiáng)調(diào)進(jìn)度,完善進(jìn)度記錄?!?〕強(qiáng)化開發(fā)過程,注重軟件開發(fā)流程。4工程開發(fā)步驟一需求分析二系統(tǒng)設(shè)計(jì)三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)5一需求分析1、功能需求本系統(tǒng)主要完成?VisualBasic?課程的試題庫(kù)管理與期末試卷的自動(dòng)生成等功能,系統(tǒng)需要設(shè)計(jì)并實(shí)現(xiàn)的根本功能如下:〔1〕用戶管理:實(shí)現(xiàn)添加操作用戶、修改用戶信息、刪除用戶等根本操作?!?〕題庫(kù)管理:實(shí)現(xiàn)分類別瀏覽、修改題庫(kù)中題目,修改包括題目的添加、修改、刪除。題庫(kù)管理中還包含題庫(kù)的導(dǎo)出功能,即實(shí)現(xiàn)分類別把題庫(kù)中的題目導(dǎo)出到MicrosoftWord中,從而可以輕松實(shí)現(xiàn)排版和打印?!?〕試卷管理:實(shí)現(xiàn)?VisualBasic?課程的期末考試試卷的生成與排版功能。6一需求分析2、環(huán)境需求本系統(tǒng)對(duì)軟硬件的根本要求如下:〔1〕硬件環(huán)境:本系統(tǒng)至少在處理器為InterPentium166MX、內(nèi)存32M、硬盤空間1GB、配有SVGA顯示適配器或更高配置的硬件環(huán)境中運(yùn)行?!?〕軟件環(huán)境:本系統(tǒng)要求的操作平臺(tái)為Windows98/ME/2000/XP,采用的數(shù)據(jù)庫(kù)系統(tǒng)為MicrosoftAccess2000,需要安裝MicrosoftWord2000。7二系統(tǒng)設(shè)計(jì)1、系統(tǒng)功能模塊根據(jù)需求分析,可以將本系統(tǒng)分解成5個(gè)功能模塊:用戶登錄模塊、用戶管理模塊、試題庫(kù)管理模塊、試卷管理模塊和幫助模塊,如圖1-1所示。8二系統(tǒng)設(shè)計(jì)圖1-19二系統(tǒng)設(shè)計(jì)2、功能模塊功能設(shè)計(jì)〔1〕用戶登錄模塊:選擇用戶名,填寫正確的密碼,就可以進(jìn)入系統(tǒng),系統(tǒng)會(huì)根據(jù)用戶的類別,賦予用戶不同的權(quán)限。當(dāng)用戶密碼輸入錯(cuò)誤時(shí),允許用戶重新輸入,但輸入次數(shù)不能超過三次,否那么自動(dòng)退出登陸模塊。10二系統(tǒng)設(shè)計(jì)〔2〕用戶管理模塊:本模塊為系統(tǒng)管理人員的專用功能,實(shí)現(xiàn)對(duì)操作人員信息的管理,主要包括添加新用戶的信息,設(shè)定用戶類別,修改用戶信息和刪除用戶信息等具體功能。11二系統(tǒng)設(shè)計(jì)〔3〕題庫(kù)管理模塊:題庫(kù)中按試題類型存儲(chǔ)了大量的試題,本模塊實(shí)現(xiàn)對(duì)題庫(kù)試題的具體管理,主要包括題庫(kù)中按類型進(jìn)行試題的瀏覽,題庫(kù)中試題的修改和題庫(kù)題目的導(dǎo)出,本系統(tǒng)的導(dǎo)出功能實(shí)現(xiàn)題目?jī)?nèi)容導(dǎo)出到MicrosoftWord2000,以表格的形式顯示,同時(shí)可以利用Word本身的打印功能實(shí)現(xiàn)題庫(kù)的打印。12二系統(tǒng)設(shè)計(jì)〔4〕試卷管理模塊:系統(tǒng)可以隨機(jī)按要求自動(dòng)生成VisualBasic課程的期末考試試卷和對(duì)應(yīng)的試卷答案,試卷存儲(chǔ)為擴(kuò)展名為.doc的Word文檔,可以利用Word對(duì)試卷進(jìn)行排版,并可打印試卷。〔5〕幫助模塊:顯示系統(tǒng)的根本信息,版權(quán)聲明等。13三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)1、數(shù)據(jù)庫(kù)需求分析根據(jù)系統(tǒng)要求,可以列出以下記錄題庫(kù)相關(guān)信息的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):〔1〕操作人員根本信息表〔操作人員表.mdb〕14表1-1操作人員根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明IDLongYesNo操作人員編號(hào)UserNameTextNoNo用戶名UserPwdTextNoNo用戶密碼UserTypeTextNoNo用戶類別,分admin和teacher兩類。15三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔2〕填空題目信息表〔填空.mdb〕表1-2填空題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)TextYesNo填空題編號(hào)內(nèi)容MemoNoNo填空題目題干內(nèi)容答案TextNoNo填空題答案分值byteNoNo該填空題題目分值16三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔3〕根本控件應(yīng)用編程題根本信息表〔根本件.mdb〕表1-3根本控件應(yīng)用編程題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo題目編號(hào)內(nèi)容MemoNoNo題目題干內(nèi)容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值17三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔4〕圖形與動(dòng)畫應(yīng)用編程題目信息表〔圖片與動(dòng)畫.mdb〕表1-4圖片與動(dòng)畫編程題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo題目編號(hào)內(nèi)容MemoNoNo題目題干內(nèi)容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值18三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔5〕菜單應(yīng)用編程題目信息表〔菜單應(yīng)用.mdb〕表15-5菜單應(yīng)用編程題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo題目編號(hào)內(nèi)容MemoNoNo題目題干內(nèi)容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值19三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔6〕綜合應(yīng)用編程題目信息表〔綜合應(yīng)用.mdb〕表1-6綜合應(yīng)用編程題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo題目編號(hào)內(nèi)容MemoNoNo題目題干內(nèi)容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值20三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔7〕數(shù)據(jù)庫(kù)應(yīng)用編程題目信息表〔數(shù)據(jù)庫(kù)應(yīng)用.mdb〕表1-7數(shù)據(jù)庫(kù)應(yīng)用編程題根本信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo題目編號(hào)內(nèi)容MemoNoNo題目題干內(nèi)容附圖TextNoNo題目附圖文件的目錄和文件名答案MemoNoNo代碼參考答案分值byteNoNo該題目分值21三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)〔8〕開設(shè)VisualBasic課程的專業(yè)信息表〔開設(shè)專業(yè).mdb〕表1-8開課信息表字段名稱數(shù)據(jù)類型是否主鍵是否可空說明序號(hào)ByteYesNo專業(yè)序號(hào)專業(yè)TextNoNo專業(yè)的全名稱入學(xué)年份TextNoNo入學(xué)時(shí)間,如2001所在系別TextNoNo所在系別的全稱人數(shù)byteNoNo該專業(yè)的總?cè)藬?shù)任課教師TextNoNo任課教師姓名22三數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)中數(shù)據(jù)庫(kù)的各個(gè)表的結(jié)構(gòu)均在MicrosoftAccess2000中實(shí)現(xiàn)。23四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)〔1〕系統(tǒng)啟動(dòng)界面設(shè)計(jì)〔2〕登錄對(duì)話框架設(shè)計(jì)〔3〕系統(tǒng)主窗體設(shè)計(jì)〔4〕菜單設(shè)計(jì)〔5〕工具欄設(shè)計(jì)〔6〕狀態(tài)欄設(shè)計(jì)24四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)〔7〕添加用戶模塊設(shè)計(jì)〔8〕修改用戶信息模塊設(shè)計(jì)〔9〕刪除用戶模塊設(shè)計(jì)〔10〕題庫(kù)瀏覽模塊設(shè)計(jì)〔11〕題庫(kù)修改模塊設(shè)計(jì)〔12〕題庫(kù)導(dǎo)出模塊設(shè)計(jì)〔13〕生成試卷模塊設(shè)計(jì)25四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)1、系統(tǒng)啟動(dòng)界面設(shè)計(jì)啟動(dòng)VisualBasic,創(chuàng)立一個(gè)新的工程,保存為testpaper.vbp。將窗體Form1保存為Frmwelcom.frm,窗體設(shè)計(jì)見表1-9。26表1-9啟動(dòng)界面窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmwelcom)NamefrmwelcomeBorderStyle0-none標(biāo)簽1(Label1)CaptionVB試題庫(kù)管理系統(tǒng)標(biāo)簽2(Label2)Caption-----遼陽(yáng)職院穆紅濤ForeColor&H8000000E&標(biāo)簽3(Label3)CaptionVB試題庫(kù)管理系統(tǒng)ForeColor&H00FF8080&圖片框(Picture1)AutoSizeTrueBackColor&H00FF0000&四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)27四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)其中Label1和Label3的字體設(shè)置除顏色外完全相同,目的想使文字具有陰影效果。窗體顯示如圖1-2所示。圖1-228四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)程序代碼如下:OptionExplicit'單擊窗體,顯示登錄對(duì)話框PrivateSubForm_Click()frmlogin.ShowUnloadMeEndSub'窗體加載時(shí),調(diào)整標(biāo)簽位置,顯示圖片PrivateSubForm_Load()Label3.Left=Label1.Left+2Label3.Top=Label1.Top-2Picture1.Picture=LoadPicture(App.Path&"\usepic\boy7.gif")EndSub'使得窗體呈現(xiàn)上深下淺的藍(lán)色效果29四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)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,顯示登錄對(duì)話框PrivateSubLabel1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub30四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)啟動(dòng)界面設(shè)計(jì)'單擊Label2,顯示登錄對(duì)話框PrivateSubLabel2_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'單擊Label3,顯示登錄對(duì)話框PrivateSubLabel3_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'單擊Picture1,顯示登錄對(duì)話框PrivateSubPicture1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub31四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)2、登錄對(duì)話框設(shè)計(jì)在工程中添加一新窗體,保存為文件Frmlogin.frm,該窗體用來實(shí)現(xiàn)用戶合法身份驗(yàn)證,窗體設(shè)計(jì)見表1-10。32表1-10登錄對(duì)話框及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmlogin)NamefrmloginBorderStyle3-FixedDialog標(biāo)簽1(Label1)Caption請(qǐng)確認(rèn)身份和密碼:標(biāo)簽2(Label2)Caption用戶名:標(biāo)簽3(Label3)Caption密碼:組合框(Comobo1)Text空文本框(Text1)Text空PasswordChar*Data控件(Data1)DatabaseName……\mdb\testpaper.mdbRecordSource操作人員表圖片框(Picture1)AutoSizeTrue命令按鈕1(Command1)Caption確定命令按鈕2(Command2)Caption取消33四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)程序代碼如下:OptionExplicitDimstrsqlAsString,struserAsString,strpwdAsStringPrivateSubCommand1_Click()'驗(yàn)證密碼的正確性,如果正確顯示系統(tǒng)主窗體MDIFrmmainStaticrAsInteger,answerAsIntegerstruser=Trim(Combo1.Text)strpwd=Trim(Text1.Text)strsql="select*from操作人員表whereusername='"&struser&"'"&"anduserpwd='"&strpwd&"'"Data1.RecordSource=strsqlData1.Refresh34四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)IfData1.Recordset.RecordCount>0ThenMDIFrmmain.Show'根據(jù)用戶的類別不同,使用權(quán)限也不同

IfTrim(Data1.Recordset.Fields("usertype"))="admin"ThenMDIFrmmain.mnumodify.Enabled=TrueMDIFrmmain.mnutestmanage.Enabled=TrueMDIFrmmain.mnuadduser.Enabled=TrueMDIFrmmain.mnudeluser.Enabled=TrueMDIFrmmain.mnumodiuser.Enabled=TrueElse35四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)MDIFrmmain.mnumodify.Enabled=FalseMDIFrmmain.mnutestmanage.Enabled=FalseMDIFrmmain.mnuadduser.Enabled=FalseMDIFrmmain.mnudeluser.Enabled=FalseMDIFrmmain.mnumodiuser.Enabled=FalseEndIfUnloadMe'錯(cuò)誤次數(shù)限制

ElseIfr<3Thenr=r+1MsgBox("密碼錯(cuò),請(qǐng)重新輸入")Combo1.Text=""Text1.Text=""Combo1.SetFocusElse36四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)answer=MsgBox("您是非法用戶,請(qǐng)和管理員聯(lián)系!")Ifanswer=1ThenEndEndIfEndSubPrivateSubCommand2_Click()'取消按鈕,那么結(jié)束程序EndEndSub'窗體初始化時(shí),把所有用戶名都添加到組合框Comobo1的List列表中PrivateSubForm_Initialize()Combo1.Clear37四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)Combo1.AddItemData1.Recordset.Fields("username")LoopEndSubPrivateSubForm_Load()Picture1.Picture=LoadPicture(App.Path&"\usepic\boy15.gif")Data1.Visible=FalseEndSub'單擊密碼框,執(zhí)行“確定〞按鈕Click事件PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenCommand1_ClickEndSub38四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----登錄對(duì)話框設(shè)計(jì)窗體運(yùn)行顯示效果如圖1-3所示。圖1-339四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)主窗體設(shè)計(jì)3、系統(tǒng)主窗體的設(shè)計(jì)在工程中添加一個(gè)MDI窗體,保存為MDIFrmmain.frm文件。本窗體為系統(tǒng)運(yùn)行的主窗體,窗體設(shè)計(jì)見表1-11。40表1-11系統(tǒng)主窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(MDIFrmmain)NameMDIFrmmainCaption《VisualBasic》試題庫(kù)管理系統(tǒng)WindowState2-Maximized圖像列表1(ImageList1)NameImageList1通用對(duì)話框(CommonDialog1)NameCommonDialog1工具欄(ToolBar1)NameToolBar1狀態(tài)欄(StatusBar1)NameStatusBar141四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----菜單設(shè)計(jì)〔1〕菜單設(shè)計(jì)翻開“菜單編輯器〞,按照表1-12所示建立主窗體上的菜單。設(shè)計(jì)結(jié)果如圖1-4和圖1-5所示。圖1-4圖1-542四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)43四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----工具欄設(shè)計(jì)〔2〕工具欄設(shè)計(jì)為了設(shè)計(jì)工具欄,首先要在MDI窗體上添加工具條ToolBar控件和圖像列表ImageList控件。右鍵單擊圖像列表控件ImageList1,在其“屬性頁(yè)〞對(duì)話框中添加假設(shè)干個(gè)圖片,結(jié)果如圖1-6所示。圖1-644四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)在工具條ToolBar1的“屬性頁(yè)〞對(duì)話框中,插入5個(gè)按鈕,并對(duì)每個(gè)Button對(duì)象設(shè)置關(guān)鍵字屬性、工具提示文本和顯示圖像,5個(gè)按鈕對(duì)應(yīng)的提示工具提示文本分別是:“修改用戶信息〞、“題庫(kù)導(dǎo)出〞、“生成試卷〞、“試卷排版〞和“幫助〞,如圖1-7所示。圖1-745四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----狀態(tài)欄設(shè)計(jì)〔3〕狀態(tài)欄設(shè)計(jì)設(shè)計(jì)狀態(tài)欄時(shí),右鍵單擊狀態(tài)欄StatusBar1,在其“屬性頁(yè)〞對(duì)話框中,插入3個(gè)窗格。分別對(duì)3個(gè)窗格的工具提示文本、樣式等進(jìn)行設(shè)置,3個(gè)窗格的樣式分別設(shè)置為1-sbrCaps、2-sbrDate和3-sbrTime。設(shè)計(jì)好的主窗體如圖1-8所示。圖1-846四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----狀態(tài)欄設(shè)計(jì)接下來設(shè)計(jì)程序代碼。本例中試卷的排版是利用API函數(shù)來翻開Word應(yīng)用程序的,所以在本窗體模塊聲名局部需要參加ShellExecuteAPI函數(shù)聲明。具體方法為:在Windows開始菜單中運(yùn)行“API文本瀏覽器〞,接下來選擇瀏覽器“文件〞菜單中的“加載文本文件〞,在彈出的對(duì)話框中選擇“WIN32API.TXT〞,單擊“翻開〞按鈕。在“鍵入你要查找內(nèi)容的開頭幾個(gè)字母〞文本框中輸入“shelle〞單擊“添加〞按鈕,如圖1-9所示。圖1-947四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)總窗體設(shè)計(jì)單擊“復(fù)制〞按鈕,把“選定項(xiàng)〞內(nèi)容復(fù)制到剪貼板上,回到VisualBasic集成開發(fā)環(huán)境,在聲明局部右鍵單擊鼠標(biāo),粘貼函數(shù)聲明。PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhwndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong48四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)總窗體設(shè)計(jì)ConstSW_SHOW=5'常量聲明'題庫(kù)導(dǎo)出菜單項(xiàng)PrivateSubfrmexport_Click()frmexport.Show'題庫(kù)導(dǎo)出窗體EndSub'在窗體上右鍵單擊彈出“試卷管理〞菜單PrivateSubMDIForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnutestmanageEndIfEndSub49四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)總窗體設(shè)計(jì)'添加用戶菜單項(xiàng)PrivateSubmnuadduser_Click()Frmadduser.ShowEndSub'瀏覽根本控件題目菜單項(xiàng)PrivateSubmnucontrol_Click()Frmcontrol_view.ShowEndSub'生成試卷菜單項(xiàng)PrivateSubmnucrepaper_Click()Frmobject.ShowEndSub'編輯根本控件題目菜單項(xiàng)PrivateSubmnuctrl_Click()frmcontrol_edit.ShowEndSub50四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)總窗體設(shè)計(jì)'刪除用戶菜單項(xiàng)PrivateSubmnudeluser_Click()Frmdeluser.ShowEndSub'試卷排版菜單項(xiàng)PrivateSubmnuedit_Click()CommonDialog1.ShowOpenIfCommonDialog1.FileName<>""ThenShellExecuteMe.hwnd,"open",CommonDialog1.FileName,"","",SW_SHOW'方法二'Str1="start"&CommonDialog1.FileName'ShellStr1EndIfEndSub51四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----系統(tǒng)總窗體設(shè)計(jì)'退出菜單項(xiàng)PrivateSubmnuexit_Click()EndEndSub'修改用戶信息菜單項(xiàng)PrivateSubmnumodiuser_Click()Frmmodiuser.ShowEndSub52四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----添加用戶模塊設(shè)計(jì)4、添加用戶模塊設(shè)計(jì)在工程中添加一個(gè)新的窗體,將它保存為Frmadduser.frm,其功能主要是實(shí)現(xiàn)添加新操作人員的信息。Frmadduser窗體上的主要控件及其屬性見表1-13。53表1-13Frmadduser〔添加用戶〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(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退出四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----添加用戶模塊設(shè)計(jì)54四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----添加用戶模塊設(shè)計(jì)編寫代碼如下:'“添加〞按鈕單擊事件PrivateSubCommand1_Click()OnErrorGoTohandlerIfTrim(Text1.Text)=""ThenMsgBox"請(qǐng)?zhí)顚懞糜脩艟幪?hào)!",,"警告"Text1.SetFocusElseIfTrim(Text2.Text)=""ThenMsgBox"請(qǐng)?zhí)顚懞糜脩裘Q!",,"警告"Text2.SetFocusElseIfTrim(Text3.Text)=""ThenMsgBox"請(qǐng)?zhí)顚懞糜脩裘艽a!",,"警告"55四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----添加用戶模塊設(shè)計(jì)Text3.SetFocusElseIfTrim(Combo1.Text)=""ThenMsgBox"請(qǐng)選擇用戶類型!",,"警告"Combo1.SetFocusElseMsgBox"添加用戶操作成功!"EndIfExitSubhandler:MsgBox"添加用戶操作失??!",,"警告"圖15-10ExitSubEndSub56四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----添加用戶模塊設(shè)計(jì)'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub窗體運(yùn)行如圖1-10所示。圖1-1057四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)5、修改用戶信息模塊設(shè)計(jì)在工程中添加一個(gè)新的窗體,將它保存為Frmmodiuser.frm,其功能主要是實(shí)現(xiàn)修改操作人員的信息。Frmadduser窗體上的主要控件及其屬性見表1-14。58表1-14Frmmodiuser〔修改用戶信息〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmmodiuser)NameFrmmodiuserCaption修改用戶信息BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource操作人員表MSFlexGrid1(MSFlexGrid1)DataSourceData1命令按鈕1(Command1)Caption修改命令按鈕2(Command2)Caption取消命令按鈕3(Command3)Caption退出59四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)MSFlexGrid1為ActiveX控件,添加方法為選擇“工程〞菜單中“部件〞菜單項(xiàng),在彈出的對(duì)話框中選擇“MicrosoftMSFlexGridControl6.0〞,單擊“確定〞按鈕即可。窗體上的Text1、Text2、Text3和Combo1控件的屬性設(shè)置和添加用戶模塊中對(duì)應(yīng)的屬性設(shè)置完全一致,此處不再贅述。編寫代碼如下:'“修改〞按鈕單擊事件PrivateSubCommand1_Click()OnErrorGoTohandlerText1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=True60四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)MsgBox"修改數(shù)據(jù)成功!"Data1.RefreshExitSubhandler:MsgBox"修改數(shù)據(jù)失??!",,"警告"ExitSubEndSub'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub61四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)'設(shè)置MSFlexGrid1控件的第一行文字內(nèi)容PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用戶編號(hào)"&Chr(9)&"用戶名稱"&Chr(9)&"用戶密碼"&Chr(9)&"用戶類型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub62四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)'實(shí)現(xiàn)雙擊MSFlexGrid1的某一行,那么該行對(duì)應(yīng)的記錄顯示在下面的各文本框中PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridText1.Locked=FalseText2.Locked=FalseText3.Locked=FalseCombo1.Locked=FalseEndSub63四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----修改用戶信息模塊設(shè)計(jì)本模塊窗體運(yùn)行如圖1-11所示。圖1-1164四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----刪除用戶模塊設(shè)計(jì)6、刪除用戶模塊設(shè)計(jì)在工程中再添加一個(gè)新的窗體,將它保存為Frmdeluser.frm,其功能主要是實(shí)現(xiàn)刪除操作人員的信息。Frmadduser窗體上的主要控件及其屬性和修改用戶信息模塊窗體設(shè)置根本相同。表1-15僅列出了與上一模塊不同的控件設(shè)置。65表1-15Frmdeluser〔刪除用戶信息〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmdeluser)NameFrmdeluserCaption刪除用戶信息BorderStyle3-FixedDialogMDIChildTrue命令按鈕1(Command1)Caption刪除命令按鈕2(Command2)Caption取消命令按鈕3(Command3)Caption退出66四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----刪除用戶模塊設(shè)計(jì)編寫代碼如下:'“刪除〞按鈕單擊事件PrivateSubCommand1_Click()DimansAsIntegerOnErrorGoTohandlerIfNotData1.Recordset.EOFThenans=MsgBox("確定要?jiǎng)h除該用戶嗎?",vbOKCancel,"刪除提示")Ifans=vbOKThenMsgBox"數(shù)據(jù)已刪除!"Data1.RefreshElse67四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----刪除用戶模塊設(shè)計(jì)ExitSubEndIfEndIfExitSubhandler:MsgBox"數(shù)據(jù)無(wú)法刪除!",,"警告"ExitSubEndSub'“取消〞按鈕單擊事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按鈕單擊事件PrivateSubCommand3_Click()UnloadMeEndSub68四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----刪除用戶模塊設(shè)計(jì)PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用戶編號(hào)"&Chr(9)&"用戶名稱"&Chr(9)&"用戶密碼"&Chr(9)&"用戶類型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub69四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----刪除用戶模塊設(shè)計(jì)PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridEndSub本模塊窗體運(yùn)行如圖1-12所示。圖1-1270四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)瀏覽模塊設(shè)計(jì)7、題庫(kù)瀏覽模塊設(shè)計(jì)本系統(tǒng)的題庫(kù)瀏覽模塊的主要功能是按六種題目類型分別進(jìn)行試題的瀏覽,下面以瀏覽“根本控件的應(yīng)用編程題〞為例,說明實(shí)現(xiàn)的方法。在工程中添加一個(gè)新的窗體,將它保存為Frmcontrol_view.frm,其功能主要是實(shí)現(xiàn)“根本控件的應(yīng)用編程題〞的瀏覽。Frmcontrol_view窗體上的主要控件及其屬性見表15-16。71四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)瀏覽模塊設(shè)計(jì)編寫代碼如下:'第一題PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'下一題PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已經(jīng)到達(dá)最后一題!",,"提示"EndIf72四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)瀏覽模塊設(shè)計(jì)Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'上一題PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已經(jīng)到達(dá)第一題!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'最后一題73四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)瀏覽模塊設(shè)計(jì)PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模塊窗體運(yùn)行如圖1-13所示。圖1-1374四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)8、題庫(kù)修改模塊設(shè)計(jì)本系統(tǒng)的題庫(kù)修改模塊的主要功能是按六種題目類型分別進(jìn)行試題的修改,下面以修改“根本控件的應(yīng)用編程題〞為例,說明實(shí)現(xiàn)的方法。在工程中添加一個(gè)新的窗體,將它保存為Frmcontrol_edit.frm,其功能主要是實(shí)現(xiàn)“根本控件的應(yīng)用編程題〞的修改。Frmcontrol_edit窗體上的主要控件及其屬性見表1-17。75表15-17Frmcontrol_edit〔修改根本控件〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(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四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)Frmcontrol_edit窗體上的Text1、Text2、Text3、Text4、Text5、Command1、Command2、Command3和Command4的根本設(shè)置與Frmcontrol_view窗體上對(duì)應(yīng)的控件設(shè)置根本相同。77四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)代碼編寫如下:'“第一題〞按鈕單擊事件PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))'保持圖片的同步EndSub'“下一題〞按鈕單擊事件PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已經(jīng)到達(dá)最后一題!",,"提示"EndIf78四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“上一題〞按鈕單擊事件PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已經(jīng)到達(dá)第一題!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“最后一題〞按鈕單擊事件79四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“確定〞按鈕單擊事件PrivateSubCommand5_Click()Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueText4.Locked=TrueText5.Locked=TrueEndSub80四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)'“刪除〞按鈕單擊事件PrivateSubCommand6_Click()DimansAsIntegerans=MsgBox("確定要?jiǎng)h除此條記錄嗎?",vbOKCancel+vbQuestion,"刪除提示")Ifans=vbOKThenIfData1.Recordset.EOFThenEndIfEndIfEndSub81四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)'“修改〞按鈕單擊事件PrivateSubCommand7_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub82四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)'“添加〞按鈕單擊事件PrivateSubCommand8_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub'“取消〞按鈕單擊事件PrivateSubCommand9_Click()Data1.RefreshText1.Locked=TrueText2.Locked=TrueText3.Locked=True83四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)Text4.Locked=TrueText5.Locked=TrueEndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模塊窗體運(yùn)行如圖1-14所示。圖1-1484四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)導(dǎo)出模塊設(shè)計(jì)9、題庫(kù)導(dǎo)出模塊設(shè)計(jì)本系統(tǒng)的題庫(kù)導(dǎo)出功能主要實(shí)現(xiàn)針對(duì)每種題型,可以分別把該類型的所有題目傳送到Word的文檔的表格中,然后可以直接利用Word的排版與打印功能實(shí)現(xiàn)題目的排版與打印。在工程中繼續(xù)添加新的窗體,保存為frmexport.frm。frmexport窗體上的主要控件及其屬性見表1-18。85表15-18frmexport〔題庫(kù)導(dǎo)出〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(frmexport)NamefrmexportCaption題庫(kù)導(dǎo)出與打印BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource基本控件命令按鈕1(Command1)Caption導(dǎo)出生成Word文檔命令按鈕2(Command2)Caption退出MSFlexGrid1(MSFlexGrid1)DataSourceData1AllowUserResizing3-flexResizeBoth組合框1(Combo1)NameCombo1List填空、基本控件、圖片動(dòng)畫、菜單應(yīng)用、綜合應(yīng)用、數(shù)據(jù)庫(kù)應(yīng)用86四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)編寫代碼如下:PrivatewordappAsWord.ApplicationPrivatedocAsWord.DocumentPrivatese1AsWord.SelectionPrivatedbAsDatabasePrivatersAsRecordset'“導(dǎo)出生成Word文檔〞按鈕單擊事件PrivateSubCommand1_Click()Setdb=OpenDatabase(App.Path&“\mdb\vbtest2.mdb")SelectCaseCombo1.ListIndexCase0Setrs=db.OpenRecordset("select*from填空")Case187四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)Setrs=db.OpenRecordset("select*from根本控件")Case2Setrs=db.OpenRecordset("select*from圖片與動(dòng)畫")Case3Setrs=db.OpenRecordset("select*from菜單應(yīng)用")Case4Setrs=db.OpenRecordset("select*from綜合應(yīng)用")Case5Setrs=db.OpenRecordset("select*from數(shù)據(jù)庫(kù)應(yīng)用")EndSelect'建立新的Word文檔,設(shè)置表格格式Setwordapp=NewWord.ApplicationSetdoc=wordapp.ActiveDocumentSetse1=wordapp.Selection88四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)doc.Tables.AddRange:=se1.Range,numrows:=1,numcolumns:=5se1.TypeTextText:="序號(hào)"se1.MoveRightunit:=12se1.TypeTextText:="題目"se1.MoveRightunit:=12se1.TypeTextText:="分值"se1.MoveRightunit:=12se1.TypeTextText:="附圖"se1.MoveRightunit:=12se1.TypeTextText:="答案"se1.MoveRightunit:=12DoUntilrs.EOF'向Word表格中逐行添加記錄內(nèi)容89四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)se1.TypeTextText:=rs!序號(hào)

se1.MoveRightunit:=12se1.TypeTextText:=rs!內(nèi)容

se1.MoveRightunit:=12se1.TypeTextText:=rs!分值

se1.MoveRightunit:=12se1.TypeTextText:=rs!附圖

se1.MoveRightunit:=12se1.TypeTextText:=rs!答案

se1.MoveRightunit:=12rs.MoveNextLoopwordapp.Visible=TrueSetwordapp=NothingEndSub'選擇組合框中的不同列表項(xiàng),Data1控件設(shè)置不同的數(shù)據(jù)源90四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)PrivateSubCombo1_Click()SelectCaseCombo1.ListIndexCase0Data1.RecordSource="select*from填空"Case1Data1.RecordSource="select*from根本控件"Case2Data1.RecordSource="select*from圖片與動(dòng)畫"Case3Data1.RecordSource="select*from菜單應(yīng)用"Case4Data1.RecordSource="select*from綜合應(yīng)用"Case5Data1.RecordSource="select*from數(shù)據(jù)庫(kù)應(yīng)用"EndSelectData1.RefreshEndSub91四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----題庫(kù)修改模塊設(shè)計(jì)'“退出〞按鈕的單擊事件PrivateSubCommand2_Click()UnloadMeEndSub本模塊窗體運(yùn)行后,先選擇導(dǎo)出的題目類型,然后單擊“導(dǎo)出生成Word文檔〞按鈕,窗體顯示如圖1-15所示。圖1-1592四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)10、生成試卷模塊設(shè)計(jì)試卷自動(dòng)生成是本系統(tǒng)的一個(gè)非常重要而且關(guān)鍵的模塊。本模塊主要實(shí)現(xiàn)試卷的隨機(jī)自動(dòng)生成,并保證試題知識(shí)分布的合理性。本模塊包含四個(gè)窗體,分別是Frmobjet.frm〔選擇考試對(duì)象窗體〕、Frmcontent.frm〔選擇題目?jī)?nèi)容分布窗體〕、Frmpaper.frm〔試卷顯示窗體〕和Frmanswer.frm〔答案顯示窗體〕。93四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)分別創(chuàng)立并保存四個(gè)窗體,四個(gè)窗體的主要控件及其屬性分別見表1-19、表1-20、表1-21和表1-22?!?〕Frmobjet.frm〔選擇考試對(duì)象窗體〕的設(shè)計(jì)94表1-19Frmobjet〔選定考試對(duì)象〕窗體及各控件屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmobjet)NameFrmobjetCaption選定年級(jí)和專業(yè):BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource開課信息表VisibleFalse組合框1(Combo1)Text空組合框2(Combo2)Text空命令按鈕1(Command1)Caption確定95四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)編寫代碼:'“確定〞按鈕的單擊事件PrivateSubCommand1_Click()Frmpaper.Text1.SelText=""+Combo1.Text+"級(jí)"+Combo2.Text+_"專業(yè)?VisualBasic?期末試題"+Chr(13)+Chr(10)Frmanswer.Text1.SelText=""+Combo1.Text+"級(jí)"+Combo2.Text+_"專業(yè)?VisualBasic?期末試題答案"+Chr(13)+Chr(10)Frmcontent.ShowFrmobject.HideEndSub'向Combo1和Combo2兩個(gè)組合框中添加“開課信息表〞中所有的入學(xué)年級(jí)和專業(yè)名稱96四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)PrivateSubForm_Activate()DimiAsInteger,flag1AsBoolean,flag2AsBooleanCombo1.ClearCombo2.Clearflag1=Falseflag2=FalseFori=0ToCombo1.ListCount-1IfTrim(Combo1.List(i))=Trim(Data1.Recordset.Fields("入學(xué)年份"))Thenflag1=TrueEndIf97四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)IfTrim(Combo2.List(i))=Trim(Data1.Recordset.Fields("專業(yè)"))Thenflag1=TrueEndIfNextiIfNotflag1ThenCombo1.AddItemData1.Recordset.Fields("入學(xué)年份")EndIfIfNotflag2ThenCombo2.AddItemData1.Recordset.Fields("專業(yè)")EndIfLoopEndSub98四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)窗體運(yùn)行如圖1-16所示。圖1-1699四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)〔2〕Frmcontent.frm〔選擇題目?jī)?nèi)容分布窗體〕的設(shè)計(jì)表1-20Frmcontent〔選擇題目?jī)?nèi)容分布窗體〕窗體及屬性設(shè)置對(duì)象屬性屬性設(shè)置值窗體(Frmcontent)NameFrmcontentCaption選定試題模式:BorderStyle3-FixedDialogMDIChildTrue100四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)窗體中還包含6個(gè)Data控件,它們的DatabaseName屬性均設(shè)置為“…\mdb\testpaper.mdb〞,它們的RdocorSource屬性那么分別為“填空〞、“根本控件〞、“圖片動(dòng)畫〞、“菜單應(yīng)用〞、“綜合應(yīng)用〞和“數(shù)據(jù)庫(kù)應(yīng)用〞。窗體中還包含7個(gè)文本框。101四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)代碼設(shè)計(jì)如下: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四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)WithData1.Recordset.MoveFirst.MoveLastj=.RecordCountReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0summark=0Whilesummark<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1103四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì).Movekmark=.Fields("分值")Debug.Printmarksummark=summark+markrealsum=realsum+1Clipboard.SetText.Fields("內(nèi)容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf104四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+""EndIfWendEndWithFrmpaper.Text1.SelText="〔注:以下各題請(qǐng)按要求編寫程序?qū)崿F(xiàn)?!?+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四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)WithData2.Recordsetj=.RecordCountIfsum>jThenresult=MsgBox("輸入數(shù)據(jù)超過當(dāng)前題庫(kù)中題目總數(shù)!",48,"輸入錯(cuò)誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0106四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1ealsum=realsum+1.MovekClipboard.SetText.Fields("內(nèi)容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf107四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)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四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)result=MsgBox("輸入數(shù)據(jù)超過當(dāng)前題庫(kù)中題目總數(shù)!",48,"輸入錯(cuò)誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Then109四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)a(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("內(nèi)容")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四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)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("輸入數(shù)據(jù)超過當(dāng)前題庫(kù)中題目總數(shù)!",48,"輸入錯(cuò)誤")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIf111四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)ReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("內(nèi)容")Ifsum>1Then112四各功能模塊的設(shè)計(jì)與實(shí)現(xiàn)

----生成試卷模塊設(shè)計(jì)Frmpaper.Text1.SelText=Str$(realsum)+"、"

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論