2002年(秋)Visual FoxPro二級(jí)考試上機(jī)試卷 (VFP04)
(本試卷上機(jī)考試時(shí)間為70分鐘)
說(shuō)明:1.考試語(yǔ)言環(huán)境為Visual FoxPro 5.0/6.0 2. 運(yùn)行考試軟盤(pán)A中的“上機(jī)考試”應(yīng)用程序文件以輸入考生的準(zhǔn)考證號(hào)、姓名、試卷代號(hào)。 3. 啟動(dòng)VFP系統(tǒng)后,首先在命令窗口中執(zhí)行命令: set default to A: 以設(shè)置默認(rèn)的工作目錄,然后再開(kāi)始作題。 |
一、 項(xiàng)目、數(shù)據(jù)庫(kù)和表操作(12分) 打開(kāi)軟盤(pán)根目錄下的項(xiàng)目文件TEST,在該項(xiàng)目中已有一數(shù)據(jù)庫(kù)SJK。 1. 按如下要求修改SJK中教師(JS)表的結(jié)構(gòu): (1) 為JS表設(shè)置有效性(驗(yàn)證)規(guī)則:工作日期(gzrq)與出生日期(csrq)之間至少相差20年; (2) 設(shè)置JS表的記錄有效性(驗(yàn)證)信息:教師參加工作時(shí)至少為20歲。 (3) 將工作日期(gzrq)字段的標(biāo)題設(shè)置為“工作日期”; (4) 為性別(xb)字段設(shè)置默認(rèn)值為:“男”; (5) 創(chuàng)建一個(gè)普通索引zcgzrq,要求先按職稱(chēng)代碼(zcdh)字段排序,職稱(chēng)相同的再按工作日期(gzrq)字段排序。 2. 為JS表添加編輯說(shuō)明為“教師基本信息表”。 3. 把軟盤(pán)根目錄中的表文件GZB.DBF添加為T(mén)EST項(xiàng)目中的自由表。 4. 把GZB表中所有職稱(chēng)(zc)為助教的綜合津貼(zhjt)增加100元。 5. 為JS表設(shè)置更新觸發(fā)器:僅允許修改2001年(含2001年)以后參加工作的教師記錄。 6. SJK中JS表已存在主索引jsgh,索引表達(dá)式為gh,GZ表已存在普通索引gzgh,索引表達(dá)式為gh。以JS表為主表,GZ表為子表按gh建立永久關(guān)系,并設(shè)置JS表和GZ表之間的餓參照完整性:刪除限制。
二、 設(shè)計(jì)查詢(xún)(8分) 在TEST項(xiàng)目中已存在查詢(xún)chaxun,按如下要求修改該查詢(xún): 基于學(xué)生(XS)表和成績(jī)(CJ)表查詢(xún)99級(jí)學(xué)生成績(jī)總分前3名。要求輸出字段為:xh、xm、xb、總成績(jī),查詢(xún)結(jié)果按總成績(jī)降序排序。 說(shuō)明:xh字段的前兩位表示年級(jí),99級(jí)學(xué)生即xh以“99”開(kāi)頭的學(xué)生
三、 設(shè)計(jì)菜單(5分) TEST項(xiàng)目中已存在菜單menu,其中已定義了“文件”菜單欄及其中的“恢復(fù)系統(tǒng)菜單”項(xiàng)。按如下要求設(shè)計(jì)菜單,完成后的運(yùn)行效果如圖1所示。

1. 創(chuàng)建“統(tǒng)計(jì)”菜單欄; 2. 為“統(tǒng)計(jì)”菜單設(shè)置熱鍵“ALT+T”; 3. 創(chuàng)建“統(tǒng)計(jì)”菜單中的菜單項(xiàng):“教師情況”、“學(xué)生情況”和“課程成績(jī)”; 4. 創(chuàng)建“教師情況”的子菜單,其中包含“任課”和“工資情況”菜單項(xiàng); 5. 在“學(xué)生情況”和“課程成績(jī)”菜單項(xiàng)之間插入分組線(xiàn)。
四、 設(shè)計(jì)表單(10分) TEST項(xiàng)目中已存在表單formD,用來(lái)實(shí)現(xiàn)學(xué)生用戶(hù)的登錄。數(shù)據(jù)來(lái)自學(xué)生表(XS),通過(guò)在下拉組合框中選擇一個(gè)姓名,使表中記錄指針定位到該學(xué)生,用學(xué)號(hào)作為驗(yàn)證密碼,如果在密碼文本框中輸入的密碼與當(dāng)前學(xué)生記錄的學(xué)號(hào)(xh)相同,則登錄成功。按如下要求修改表單,完成后表單的運(yùn)行界面如圖2所示。 1. 將姓名下拉組合框cboXM改為下拉列表框; 2. 將密碼文本框txtPwd的密碼字符設(shè)為“*”號(hào),設(shè)置txtPwd輸入掩碼,使其只能輸入8位數(shù)字字符; 3. 為表單創(chuàng)建一個(gè)名為logSuccess的新屬性; 4. 添加一個(gè)文本框控件txtXH的可見(jiàn)性設(shè)為隱藏,數(shù)據(jù)控制源設(shè)為Xs.Xh; 5. 完善登錄按鈕cmdLogin的Click事件代碼,使之具有如下功能: 如果txtPwd文本框的值與txtXH文本框的值相等,則將logSuccess屬性值設(shè)置為.T.,并關(guān)閉該表單窗口,否則將焦點(diǎn)設(shè)到txtPwd文本框上。

五、 程序改錯(cuò)(5分) 下列程序的功能是:將一個(gè)字符串中的各個(gè)單詞的首字母組成其縮寫(xiě)形式(大寫(xiě)字母),其中,字符串由多個(gè)英文單詞組成且各單詞之間用一個(gè)空格分隔,例如,對(duì)于字符串“central processing unit”,生成其縮寫(xiě)形式“CPU”。其基本算法為:字符串左邊加一個(gè)空格,然后依次檢查字符串的每一個(gè)字符,如果該字符為字母且左邊為空格,則該字母為首字母。要求: (1)目中有一個(gè)程序文件Pcode,將下列程序輸入到其中并進(jìn)行修改; (2)在修改程序時(shí),不允許修改程序的總框架和算法,不允許增加或減少語(yǔ)句數(shù)目。 cString=’central processing unit’ &&賦初值 cString=SPACE(1)+UPPER(cString) cResult=SPACE(0) FOR n=2 TO cString c=SUBSTR(cString,n,1) IF BETWEEN(c,’A’,’Z’)AND SUBSTR(cString,n-1,1)=SPACE(1) cResult=cResult+n ENDIF ENDFOR WAIT WINDOWS’ 縮寫(xiě)形式為’+cResult |