【正文】
JF=“考試時(shí)間”;清空考試表,清空臨時(shí)表;將考試題庫(kù)按順序添加進(jìn)臨時(shí)表,執(zhí)行循環(huán):如果臨時(shí)表非空,將考試題目按順序編號(hào);隨機(jī)抽取一道考試題目添加進(jìn)考試表,從臨時(shí)表中刪除該題目;如果臨時(shí)表為空,結(jié)束循環(huán)。將考試表中題目重新編號(hào),將“考試題號(hào)”大于“考試題數(shù)”的題目從考試表中刪除。調(diào)用“駕駛理論模擬考試練習(xí)”表單。*采用這種算法可以保證抽出的考試題目絕對(duì)是隨機(jī)生成順序,不可能重復(fù);而且“考試題數(shù)”不會(huì)出錯(cuò)。)7.1模擬考試登陸對(duì)話建一表單,將表單的CAPTION設(shè)置為:“模擬考試登陸對(duì)話”(目的:指定表單的標(biāo)題文本);表單的ALWAYSONTOP設(shè)置為T(目的:防止其它窗口遮擋本表單);表單的DESKTOP設(shè)置為T(目的:指定表單包含在VF的主窗口中;表單的AUTOCENTER設(shè)置為T(目的:指定本表單運(yùn)行時(shí),在VF主窗口中居中;表單的CONTROLBOX設(shè)置為假(目的:運(yùn)行是表單的左上角不顯示窗口菜單圖標(biāo),右上角也沒(méi)有了關(guān)閉、最大化和最小化按鈕)。在表單上添加按鈕兩個(gè)、標(biāo)簽兩個(gè)和文本框兩個(gè),布局如圖:設(shè)置LABEL1的CAPTION為“請(qǐng)輸入你的姓名”。設(shè)置LABEL2的CAPTION為“請(qǐng)輸入你的身份證號(hào)碼”。設(shè)置COMMAND1的CAPTION為“確定”。CLICK EVENT為:inxm=alltrim()insfzh=alltrim()if len(inxm)1 or len(insfzh)1 messagebox(不能輸入空值!請(qǐng)重新輸入!) =39。39。 =39。39。 else use database\成績(jī)表 set order to 身份證號(hào)碼 set exact on seek insfzh if alltrim()!=insfzh messagebox(請(qǐng)檢查輸入是否正確!如果是新用戶,請(qǐng)聯(lián)系管理人員!) use =39。39。 =39。39。 else if alltrim()!=inxm messagebox(請(qǐng)檢查輸入是否正確!如果是新用戶,請(qǐng)聯(lián)系管理人員!) use =39。39。 =39。39。 else dlcs=+1 dlcscs=alltrim(str(dlcs)) replace with dlcs use messagebox(歡迎你第+dlcscs+次進(jìn)入模擬考試系統(tǒng),祝你通過(guò)考試!) do form form\駕駛理論模擬考試 endif endif endif(如果輸入的身份證號(hào)碼和姓名中包含空值,則給出提示要求重新輸入;否則將輸入的身份證號(hào)碼和姓名與數(shù)據(jù)庫(kù)中的進(jìn)行精確比較,若不符合,就給出相應(yīng)提示;若符合,將登陸次數(shù)加一,并給出提示,如圖:學(xué)員確定后,調(diào)用“駕駛理論模擬考試”表單。)設(shè)置COMMAND2的CAPTION為“返回”。CLICK EVENT為:do form form\主菜單(重新調(diào)用主菜單,從內(nèi)存中釋放本表單。)7.2駕駛理論模擬考試將駕駛理論模擬考試練習(xí)表單另存為駕駛理論模擬考試表單,然后進(jìn)行修改:修改COMMAND11(“退出練習(xí)”)的CLICK EVENT為: qds=2sjf=sjm=do form form\確定(更改全局變量QDS=2,其余不變)。修改LABEL8的CAPTION為“剩余時(shí)間”。修改TIMER1的TIMER中定義如下(目的:進(jìn)行倒計(jì)時(shí),時(shí)間到,只允許交卷操作):do casecase 0 =case 0 and =0 = =59case =0 and =0 wait windows時(shí)間到!請(qǐng)按“我要交卷”! =.f. =.f. =.f. =.f. =.f. =.f. =.f. endcaseif =4 or =0 if i=0 =16711935 i=1 else =000 i=0 endif endif (程序進(jìn)行選擇運(yùn)行:如果秒大于零,秒在原來(lái)的基礎(chǔ)上減去一秒;如果分大于零而且秒等于零,分在原來(lái)的基礎(chǔ)上減去一分,秒設(shè)置為59;如果分秒都等于零, 出現(xiàn)WINDOWS提示時(shí)間到!請(qǐng)按“我要交卷”!,任何操作后,將答案選項(xiàng)和“前后按鈕”關(guān)閉,不響應(yīng)用戶操作,僅?!拔乙痪怼卑粹o用戶可用。其目的是強(qiáng)制學(xué)員在時(shí)間到的情況下交卷。結(jié)束選擇后,查看剩余時(shí)間如果是最后五分鐘或是最后一分鐘,查看全局變量I,如果I為0,則“剩余時(shí)間”字體顏色為紅色,并將全局變量I賦值為1,否則“剩余時(shí)間”字體顏色為黑色,并將全局變量I賦值為0。)去除標(biāo)簽LABEL6和LABEL7。去除表單的PAINT中定義如下部分(目的:不再提示學(xué)員所選是否正確。):if 是否正確=39。對(duì)39。 =.t. =.f. else if 是否正確=39。錯(cuò)39。 =.f. =.t. else =.f. =.f. endifendif7.3考試交卷提示 建一表單,將表單的CAPTION設(shè)置為“駕駛理論模擬考試”(目的:指定對(duì)象標(biāo)題文本。);將表單的ALWAYSONTOP設(shè)置為T(目的:防止其它窗口遮擋表單。);表單的DESKTOP設(shè)置為T(目的:指定表單包含在VF的主窗口中);表單的AUTOCENTER設(shè)置為T(目的:指定本表單運(yùn)行時(shí),在VF主窗口中居中);表單的CLOSABLE設(shè)置為F(目的:不能通過(guò)雙擊窗口菜單圖標(biāo)來(lái)關(guān)閉表單。);在表單的INIT EVENT中定義如下(目的:調(diào)用學(xué)員信息):set order to 身份證號(hào)碼seek insfzh在表單上添加標(biāo)簽十七個(gè),文本框六個(gè),按鈕三個(gè),將表“表名”拖入表單中,設(shè)置效果如圖:將各個(gè)文本框設(shè)置為只讀,利用生成器,將本表單的各個(gè)文本框與數(shù)據(jù)庫(kù)“成績(jī)表”中對(duì)應(yīng)字段建立聯(lián)系。設(shè)置COMMAND1的CAPTION為“返回主菜單”,CLICK EVENT中代碼如下:do form form\主菜單(運(yùn)行主菜單,從內(nèi)存釋放本表單。)設(shè)置COMMAND2的CAPTION為“查看錯(cuò)題”,CLICK EVENT中代碼如下:do form form\駕駛理論模擬考試查看錯(cuò)題(運(yùn)行“駕駛理論模擬考試查看錯(cuò)題”表單,從內(nèi)存釋放本表單。)設(shè)置COMMAND3的CAPTION為“退出程序”,CLICK EVENT中代碼如下:clear events(從內(nèi)存釋放本程序。)“題庫(kù)章節(jié)”,CLICK EVENT中代碼如下:set order to 表名go top(指定表索引標(biāo)識(shí)為“表名”,指針?lè)祷乇眍^,刷新表單。)“做錯(cuò)道數(shù)”,CLICK EVENT中代碼如下:set order to 做錯(cuò)道數(shù)go top(指定表索引標(biāo)識(shí)為“做錯(cuò)道數(shù)”,指針?lè)祷乇眍^,刷新表單。)其它標(biāo)簽的CAPTION根據(jù)所在位置進(jìn)行設(shè)置。7.4查看錯(cuò)題模塊將駕駛理論模擬考試練習(xí)表單另存為駕駛理論模擬考試查看錯(cuò)題表單,然后進(jìn)行修改:修改COMMAND11(“退出練習(xí)”)的CLICK EVENT為:do form form\主菜單(退出時(shí)直接返回主菜單)去除滑桿組件(因?yàn)橛锌赡軐W(xué)員全部答對(duì)題目后,也點(diǎn)擊查看錯(cuò)題,此時(shí)滑桿編碼就會(huì)出錯(cuò);再有一般模擬考試時(shí),錯(cuò)題都不多,此組件是可有可無(wú)的,完全沒(méi)有存在的必要。)其它部分完全不變。界面如圖:8管理菜單模塊 設(shè)置主菜單的COMMAND4的CAPTION為“管理入口”,CLICK EVENT中代碼如下:do form form\管理員登陸(調(diào)用“管理員登陸”表單。)8.1管理員登陸窗口建一表單,將表單的CAPTION設(shè)置為:“管理員登陸”(目的:指定表單的標(biāo)題文本);表單的ALWAYSONTOP設(shè)置為T(目的:防止其它窗口遮擋本表單);表單的DESKTOP設(shè)置為T(目的:指定表單包含在VF的主窗口中;表單的AUTOCENTER設(shè)置為T(目的:指定本表單運(yùn)行時(shí),在VF主窗口中居中;表單的CONTROLBOX設(shè)置為假(目的:運(yùn)行是表單的左上角不顯示窗口菜單圖標(biāo),右上角也沒(méi)有了關(guān)閉、最大化和最小化按鈕)。在表單上添加按鈕兩個(gè)、標(biāo)簽兩個(gè)和文本框兩個(gè),布局如圖:設(shè)置LABEL1的CAPTION為“管理員”。設(shè)置LABEL2的CAPTION為“密碼”。設(shè)置COMMAND1的CAPTION為“登陸”。CLICK EVENT為:ingly=alltrim()inmm=alltrim()if len(ingly)1 or len(inmm)1 messagebox(輸入不正確!請(qǐng)重新輸入!) =39。39。 =39。39。 else use database\管理員 set order to 管理員 set exact on seek ingly if alltrim()!=ingly messagebox(輸入不正確!請(qǐng)重新輸入!) use =39。39。 =39。39。 else if alltrim()!=inmm messagebox(輸入不正確!請(qǐng)重新輸入!) use =39。39。 =39。39。 else use messagebox(歡迎你進(jìn)入管理菜單!) do form form\管理菜單 endif endif endif(作用是:如果輸入的“管理員”和“密碼”非空,則與數(shù)據(jù)庫(kù)中保存的“管理員”和“密碼”對(duì)比;如果正確,允許進(jìn)入管理菜單,否則提示重新輸入。)設(shè)置COMMAND2的CAPTION為“退出”。CLICK EVENT為:(從內(nèi)存中釋放本表單。)8.2管理菜單建一表單,將表單的CAPTION設(shè)置為:“管理菜單”(目的:指定表單的標(biāo)題文本);表單的ALWAYSONTOP設(shè)置為T(目的:防止其它窗口遮擋本表單);表單的DESKTOP設(shè)置為T(目的:指定表單包含在VF的主窗口中;表單的AUTOCENTER設(shè)置為T(目的:指定本表單運(yùn)行時(shí),在VF主窗口中居中;在表單上添加按鈕六個(gè)、標(biāo)簽六個(gè)、文本框五個(gè),布局如圖:設(shè)置LABEL1的CAPTION為“請(qǐng)輸入模擬考試題數(shù)”。設(shè)置LABEL2的CAPTION為“請(qǐng)輸入模擬考試時(shí)間”。設(shè)置LABEL3的CAPTION為“徹底刪除已刪除考題”。設(shè)置LABEL4的CAPTION為“更改管理員名稱”。設(shè)置LABEL5的CAPTION為“更改密碼”。設(shè)置LABEL6的CAPTION為“再次輸入密碼”。(起提示用戶的作用)設(shè)置COMMAND1的CAPTION為“題庫(kù)維護(hù)”。CLICK EVENT為: do form form\錄入維護(hù)選擇(調(diào)用“錄入維護(hù)選擇”表單)設(shè)置COMMAND2的CAPTION為“我要返回”。CLICK EVENT為: (退出本表單)設(shè)置COMMAND3的CAPTION為“刪除”。CLICK EVENT為:qds=1do form form\確定(調(diào)用“確定”表單,設(shè)置全局變量QDS為1)設(shè)置COMMAND4的CAPTION為“更改”。CLICK EVENT為:=.f.=.f.=.f.=.t.(去除TEXTTEXT4和TEXT5的只讀屬性,使本表單“確定”按鈕可用,將光標(biāo)定位在TEXT3中。)設(shè)置COMMAND5的CAPTION為“確定”。CLICK EVENT為:ingzgly=alltrim()ingzmm=alltrim()if len(ingzgly)1 messagebox(請(qǐng)輸入新管理員名稱!) =39。39。 =39。39。 =39。39。 else if != messagebox(兩次密碼不一致,請(qǐng)?jiān)俅胃模? =39。39。 =39。39。 =39。39。 else use database\管理員