2003年(秋)Visual FoxPro 二級考試上機試卷(VFP06)
(本試卷上機考試時間為70分鐘)
說明:1.運行考試軟盤A中的“上機考試”應用程序文件以輸入考生的準考證號、姓名、試卷代號。 2. 啟動VFP系統(tǒng)后,首先在命令窗口中執(zhí)行命令: set default to A: 以設置默認的工作目錄,然后再開始作題。 |
一。項目、數(shù)據(jù)庫和表操作(12分)
打開軟盤根目錄下的項目文件TEST,在該項目中已有一數(shù)據(jù)庫SJK。 1. 按如下要求修改SJK中工資(GZ)表的結(jié)構(gòu): (1) 為應發(fā)工資(yfgz)字段設置標題:應發(fā)工資。 (2) 設置工號(gh)字段的輸入掩碼:工號以1個任意英文字母開頭,后跟4位數(shù)字。 (3) 增加一個邏輯型字段,其字段名為yhdf。 。4) 創(chuàng)建一個普通索引jbgwzh,要求按基本工資(jbgz),崗位津貼(gwit)和綜合津貼(zhjt)三個字段的和降序排列。 。5) 為GZ表添加注釋:職工工資表。 2. 把A:\B0001.GIF文件添加到TEST項目中的適當位置,并將包含狀態(tài)設置為“排除”。 3. 計算GZ表中所有教師的應發(fā)工資(yfgz),應發(fā)工資是基本工資(jbgz)、崗位津貼(gwjt)和綜合津貼(zhjt)三個字段值的和。 4. 設置GZ表的記錄有效性規(guī)則,應發(fā)工資(yfgz)字段的值必須不超過基本工資(jbgz)、崗位津貼(gwjt)和綜合津貼(zhjt)三個字段值的和。 5. 設GZ表的更新權(quán)限由一個全局的字符變量UserName(表示用戶名)控制,只有當UserName的值為“Admin”時允許更新,根據(jù)此要求設置GZ表的更新觸發(fā)器。 6. SJK中教師(JS)表已存在主索引jsgh,索引表達式為gh。以JS表為主表,GZ表為子表按gh建立永久關(guān)系,并設置JS 表和GZ表之間的參照完整性:更新級聯(lián)。
二.設計查詢(5分)
假設現(xiàn)有GZ表中的若干工資項將有所變動:基本工資(jbgz)每人增加120元;崗位津貼(gwjt)每人增加20%;男女職工的綜合津貼(zhjt)分別為10元和50元。希望通過查詢預覽一下變動后的工資情況,按如下要求修改TEST項目中的查詢CHAXUN: 基于JS表和GZ表查詢變動后的工資情況,輸出字段:gh,xm,xb,jbgz,jbgz2,gwjt,gwjt2,zhjt,zhjt2,其中字段名末位是“2”的字段表示變動后的工資項,要求按gh升序排列,且僅顯示排在前10%的記錄,結(jié)果輸出到VFP主窗口中。
三.設計菜單(5分)
TEST項目中已存在菜單MUNUE,按如下要求修改菜單,完成后的運行效果如圖所示。 1. 為“文件”菜單欄下的“退出”菜單項設置快捷鍵“CTRL+R”。 2. 在“文件”菜單欄的“退出”菜單項之間插入系統(tǒng)菜單“導出”。 |
 |
3. 為“數(shù)據(jù)維護”菜單欄下的“學生信息維護”菜單項編制子菜單,該子菜單包括兩個菜單項“學生基本信息維護”和“學生成績維護”,并用分隔線隔開。 4. 設置“數(shù)據(jù)查詢”菜單欄下的“教師信息查詢”菜單項廢止。 5. 為“學生信息查詢”菜單項下的“學生基本信息查詢”設置SQL命令,要求當執(zhí)行該菜單項時,在瀏覽窗口中顯示學生(XS)表中所有女生的學號(xh),姓名(xm)和出生日期(csrq)。
四.設計菜單(10分) TEST項目中已經(jīng)存在表單FORMF,該表單用來查詢USER表中的人員信息,根據(jù)下列要求修改表單,完成以后運行表單,效果如圖所示。
1. 設置表格的有關(guān)屬性,使表格能夠獲得焦點,但不能修改其內(nèi)容。 2. 設置表單標題為“人員信息查詢”。 3. 設置表格中“工號”列的標題居中。 4. 設置表單中test1文本框的有關(guān)屬性,使當光標移到文本框上時,鼠標指針的形狀為“1”型。 5. 在表單的Load事件代碼中已經(jīng)包含了創(chuàng)建名為USER-CUR臨時表的命令。完善代碼,要求以部門(department)和工號(no)兩個字段為該臨時表創(chuàng)建一個結(jié)構(gòu)復合索引,索引名為int-bmgh,使得該臨時表中的數(shù)據(jù)以部門排序,部門相同時,再按工號排序。 6. 已知在A盤根目錄下存在報表文件USER-REP。為“預覽”按鈕編制Click事件代碼,當點擊該按鈕時,預覽報表USER-REP。 7. 已知表單的數(shù)據(jù)環(huán)境中已經(jīng)添加了人員信息表(USER)。完善表單的Init事件代碼,以完成將USER表中的所有記錄添加到臨時表USER-CUR中的功能。 |
 |
五.程序改錯(5分)
下列程序的功能是:將一個用字符串表示的正整數(shù)序列重新排列為一個新的正整數(shù)序列字符串。新序列排列的規(guī)則是:序列左邊為奇數(shù)、右邊為偶數(shù),且奇、偶數(shù)分別從序列的兩端開始依次向序列中間排放。例如,若原序列為“31,58,71,5,82,45,54,41,2”,則新序列為“31,71,5,45,41,2,54,82,58”。注:“,”為英文逗號。要求: 1. 項目中有一個程序文件PCODE,將下列程序輸入到其中并進行修改。 2. 在修改程序時,不允許修改程序的總體框架和算法,不允許增加或減少語句的數(shù)目。
cString=‘31,58,71,5,82,45,54,41,2’ STORE SPACE(0)TO cLeft,cRight n=1 DO WHILE n#0 n=AT(cString,“,”) IF n=0 c=SUBSTR(cString,1,n-1) cString=SUBSTR(cString,n) ENDIF IF MOD(VAL(c),2)=0 cRight=c+“,”+cRight ELSE cLeft=cLeft+“,”+c ENDIF ENDDO cResult=cLeft+“,”+cRight WAIT WINDOWS‘結(jié)果字符串為’+cResult
|