2002年(秋)Visual FoxPro二級考試上機(jī)試卷 (VFP04)
(本試卷上機(jī)考試時(shí)間為70分鐘)
說明:1.考試語言環(huán)境為Visual FoxPro 5.0/6.0 2. 運(yùn)行考試軟盤A中的“上機(jī)考試”應(yīng)用程序文件以輸入考生的準(zhǔn)考證號、姓名、試卷代號。 3. 啟動VFP系統(tǒng)后,首先在命令窗口中執(zhí)行命令: set default to A: 以設(shè)置默認(rèn)的工作目錄,然后再開始作題。 |
一、 項(xiàng)目、數(shù)據(jù)庫和表操作(12分) 打開軟盤根目錄下的項(xiàng)目文件TEST,在該項(xiàng)目中已有一數(shù)據(jù)庫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,要求先按職稱代碼(zcdh)字段排序,職稱相同的再按工作日期(gzrq)字段排序。 2. 為JS表添加編輯說明為“教師基本信息表”。 3. 把軟盤根目錄中的表文件GZB.DBF添加為TEST項(xiàng)目中的自由表。 4. 把GZB表中所有職稱(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ì)查詢(8分) 在TEST項(xiàng)目中已存在查詢chaxun,按如下要求修改該查詢: 基于學(xué)生(XS)表和成績(CJ)表查詢99級學(xué)生成績總分前3名。要求輸出字段為:xh、xm、xb、總成績,查詢結(jié)果按總成績降序排序。 說明:xh字段的前兩位表示年級,99級學(xué)生即xh以“99”開頭的學(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é)生情況”和“課程成績”; 4. 創(chuàng)建“教師情況”的子菜單,其中包含“任課”和“工資情況”菜單項(xiàng); 5. 在“學(xué)生情況”和“課程成績”菜單項(xiàng)之間插入分組線。
四、 設(shè)計(jì)表單(10分) TEST項(xiàng)目中已存在表單formD,用來實(shí)現(xiàn)學(xué)生用戶的登錄。數(shù)據(jù)來自學(xué)生表(XS),通過在下拉組合框中選擇一個(gè)姓名,使表中記錄指針定位到該學(xué)生,用學(xué)號作為驗(yàn)證密碼,如果在密碼文本框中輸入的密碼與當(dāng)前學(xué)生記錄的學(xué)號(xh)相同,則登錄成功。按如下要求修改表單,完成后表單的運(yùn)行界面如圖2所示。 1. 將姓名下拉組合框cboXM改為下拉列表框; 2. 將密碼文本框txtPwd的密碼字符設(shè)為“*”號,設(shè)置txtPwd輸入掩碼,使其只能輸入8位數(shù)字字符; 3. 為表單創(chuàng)建一個(gè)名為logSuccess的新屬性; 4. 添加一個(gè)文本框控件txtXH的可見性設(shè)為隱藏,數(shù)據(jù)控制源設(shè)為Xs.Xh; 5. 完善登錄按鈕cmdLogin的Click事件代碼,使之具有如下功能: 如果txtPwd文本框的值與txtXH文本框的值相等,則將logSuccess屬性值設(shè)置為.T.,并關(guān)閉該表單窗口,否則將焦點(diǎn)設(shè)到txtPwd文本框上。

五、 程序改錯(cuò)(5分) 下列程序的功能是:將一個(gè)字符串中的各個(gè)單詞的首字母組成其縮寫形式(大寫字母),其中,字符串由多個(gè)英文單詞組成且各單詞之間用一個(gè)空格分隔,例如,對于字符串“central processing unit”,生成其縮寫形式“CPU”。其基本算法為:字符串左邊加一個(gè)空格,然后依次檢查字符串的每一個(gè)字符,如果該字符為字母且左邊為空格,則該字母為首字母。要求: (1)目中有一個(gè)程序文件Pcode,將下列程序輸入到其中并進(jìn)行修改; (2)在修改程序時(shí),不允許修改程序的總框架和算法,不允許增加或減少語句數(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’ 縮寫形式為’+cResult |