計(jì)算機(jī)等級(jí)考試二級(jí)VFP機(jī)試試題16

字號(hào):

第十六套
    一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
     1、在考生文件夾下建立項(xiàng)目STSC_M。
     2、把數(shù)據(jù)庫STSC加入到STSC_M項(xiàng)目中。
     3、打開STSC數(shù)據(jù)庫,三個(gè)表中必要的索引已經(jīng)建立,為三個(gè)表建立永久性聯(lián)系。
     4、為COURSE表增加字段:開課學(xué)期 I
    本題的主要考核點(diǎn):
     項(xiàng)目的建立、將數(shù)據(jù)庫添加到項(xiàng)目中、為已建立索引的表建立永久性聯(lián)系、字段的添加。
    解題思路:
    1.建立項(xiàng)目
    創(chuàng)建項(xiàng)目可用"文件"菜單中的"新建"命令。
    2.將數(shù)據(jù)庫加入到項(xiàng)目中:
    在項(xiàng)目管理器的"數(shù)據(jù)"選項(xiàng)卡選擇數(shù)據(jù)庫,單擊"添加",在"打開"對(duì)話框中選擇要添加的數(shù)據(jù)庫
    3.為表和表建立永久性聯(lián)系,方法是在數(shù)據(jù)庫設(shè)計(jì)器中,選中父表中的主索引,按住鼠標(biāo)拖動(dòng)至子表相應(yīng)的普通索引上,釋放鼠標(biāo),聯(lián)系即已建立。
    4.添加字段:
    打開表設(shè)計(jì)器,將光標(biāo)移動(dòng)到后的空字段格中,輸入新的字段名、字段類型及長(zhǎng)度。
    二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
     1、在考生文件夾中有數(shù)據(jù)庫STSC,其中有數(shù)據(jù)庫表STUDENT、SCORE和
     COURSE。三個(gè)表如下所示:
     STUDENT(學(xué)號(hào)、姓名、性別、院系、出生日期)
     SCORE(學(xué)號(hào)、課程編號(hào)、成績(jī))
     COURSE(課程編號(hào)、課程名稱、開課院系、開課學(xué)期)
     在考生文件夾下有一個(gè)程序dbtest4.prg,該程序的功能是檢索選課門數(shù)是3
     門以上的(包括3門)每個(gè)學(xué)生的學(xué)號(hào)、姓名、平均成績(jī)、低分、選課門數(shù)和院系,并
     按平均成績(jī)降序排序,同時(shí)將結(jié)果存放到表TEST1中,請(qǐng)修改程序中的錯(cuò)
     誤,并調(diào)試該程序,使之正確運(yùn)行。不得增加或刪減程序行。
     2、在考生文件夾中有數(shù)據(jù)庫STSC,其中有數(shù)據(jù)庫表STUDENT、SCORE和COURSE。
     三個(gè)表如下所示:
     STUDENT(學(xué)號(hào),姓名,性別,院系,出生日期)
     SCORE(學(xué)號(hào),課程編號(hào),成績(jī))
     COURSE(課程編號(hào),課程名稱,開課院系,開課學(xué)期)
     使用CREATE QUERY命令建立一個(gè)文件名為QUSC.QPR的查詢,要求含有學(xué)號(hào)、
     姓名、成績(jī)和課程名稱,按課程名稱升序排序,查詢?nèi)ハ蚴潜?表名是
    QUSC.DBF),然后執(zhí)行該查詢。
    第1題:本題是一個(gè)程序修改題,題中的第一個(gè)錯(cuò)誤是"SUM(課程編號(hào)) >= 3;",因?yàn)轭}面要求是統(tǒng)計(jì)選課門數(shù)是3門以上的,所以不應(yīng)用SUM,應(yīng)改為COUNT;第二個(gè)錯(cuò)誤"ORDER BY 平均成績(jī)";題面要求按平均成績(jī)降序排序,而此命令是按平均成績(jī)的升序排列的,所以在其后應(yīng)加DESC;第三個(gè)錯(cuò)誤是"INTO TEST1 SDF",此程序后要求將結(jié)果存放到表TEST1中,正確命令格式應(yīng)為"INTO table test1 "。
    第2小題:本題的主要考核點(diǎn)是使用命令建查詢,在命令窗口中輸入CREATE QUERY命令調(diào)出查詢?cè)O(shè)計(jì)器,添加數(shù)據(jù)庫的三個(gè)表,從字段中選擇學(xué)號(hào)、姓名、成績(jī)和課程名稱字段,單擊排序依據(jù),選擇課程名稱,單擊升序,再單擊查詢菜單下的查詢?nèi)ハ?,選擇表,輸入表名QUSC.DBF。運(yùn)行查詢,后將查詢保存為QUSC.QPR。
    三、綜合應(yīng)用(1小題,計(jì)30分)
     在考生文件夾下有職員管理數(shù)據(jù)庫staff_10,數(shù)據(jù)庫中有YUANGONG表結(jié)
     構(gòu)是職工編碼C(4)、姓名C(10)、夜值班天數(shù)I、晝值班天數(shù)I、加班費(fèi)N
     (10.2)。ZHIBAN表結(jié)構(gòu)是值班時(shí)間C(2),每天加班費(fèi)N(7.2),ZHIBAN表
     中只有兩條記錄,分別記載了白天和夜里的每天加班費(fèi)標(biāo)準(zhǔn)。
     請(qǐng)編寫運(yùn)行符合下列要求的程序:
     設(shè)計(jì)一個(gè)名為staff_m的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
     程序運(yùn)行時(shí),單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
     (1)計(jì)算YUANGONG表的加班費(fèi)字段值,計(jì)算方法是:
     加班費(fèi)=夜值班天數(shù)*夜每天加班費(fèi)+晝值班天數(shù)*晝每天加班費(fèi)
     (2)根據(jù)上面的結(jié)果,將員工的職工編碼、姓名、加班費(fèi)存儲(chǔ)到的自由表
     staff_d中 ,并按加班費(fèi)降序排列,如果加班費(fèi)相等,則按職工編碼的升
     序排列。
     單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
    本題考查知識(shí)點(diǎn):數(shù)據(jù)表的查詢,記錄的更新,數(shù)據(jù)表的定義等
    本題解題思路:
     SET TALK OFF &&在程序運(yùn)行時(shí)關(guān)閉命令結(jié)果的顯示
     SET SAFETY OFF &&關(guān)閉文件重名的提示
     OPEN DATABASE STAFF_10 &&打開數(shù)據(jù)庫文件STAFF_10
     SELECT 每天加班費(fèi) FROM ZHIBAN WHERE 值班時(shí)間="晝" INTO ARRAY zhou
     &&由于要得到"晝"和"夜"的每天的加班費(fèi),所以要用到SELECT SQL查詢
     &&WHERE 條件表達(dá)式 可以用來限定結(jié)果集,將條件表達(dá)式:值班時(shí)間="晝"
     &&放在WHERE的后面;也可以將結(jié)果集的列數(shù)進(jìn)行限制,這里我們只需要得到
     &&每天加班費(fèi) ,將其放在SELECT的后面;可以將返回的結(jié)果集放入一個(gè)數(shù)組變量中
     &&用到INTO ARRAY 數(shù)組變量名
     SELECT 每天加班費(fèi) FROM ZHIBAN WHERE 值班時(shí)間="夜" INTO ARRAY ye
     &&同上,這樣可以在ye中得到:值班時(shí)間="夜"的每天加班費(fèi)
     UPDATE YUANGONG SET 加班費(fèi)=夜值班天數(shù)*ye+晝值班天數(shù)*zhou
     &&UPDATE SQL語句用來修改某一個(gè),某幾個(gè)字段的值