計(jì)算機(jī)等級(jí)考試二級(jí)VFP上機(jī)試題及解題思路(14)

字號(hào):

計(jì)算機(jī)等級(jí)考試二級(jí)VFP上機(jī)試題及解題思路(14)

    第十四套
    一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
    1、打開考生文件夾下的STSC數(shù)據(jù)庫,為STUDENT表建立主索引,索引名為學(xué)號(hào),索引表達(dá)式為學(xué)號(hào)。
    2、為SCORE表建立普通索引,索引名為學(xué)號(hào),索引表達(dá)式為學(xué)號(hào),并根據(jù)建立的索引建立STUDENT表和SCORE表之間的聯(lián)系。
    3、為以上聯(lián)系指定參照完整性,其中插入規(guī)則為"限制",更新規(guī)則和刪除規(guī)則為"級(jí)聯(lián)"。
    4、邏輯刪除STUDENT表中學(xué)號(hào)為"S5"的記錄。
    本題的主要考核點(diǎn):
    建立索引、為已建立索引的表建立聯(lián)系、為聯(lián)系指定參照完整性、邏輯刪除字段。
    解題思路:
    1.在表設(shè)計(jì)器中的索引頁面,建立索引名、索引表達(dá)式都為學(xué)號(hào)的主索引。
    2.建立兩個(gè)表的聯(lián)系。在父表中選中主索引,按住鼠標(biāo)拖動(dòng)至子表相應(yīng)的普通索引上,釋放鼠標(biāo),聯(lián)系即已建立。
    3.為聯(lián)系指定參照完整性:
    在聯(lián)系上單擊右鍵,打開“編輯參照完整性”對(duì)話框或者在“數(shù)據(jù)庫”菜單中選擇“編輯參照完整性”,打開“參照完整性”生成器。選擇插入規(guī)則為“限制”,更新規(guī)則和刪除規(guī)則為“級(jí)聯(lián)”。
    4.采用DELE命令進(jìn)行 格式為DELE FOR [條件表達(dá)式]
    二、簡單應(yīng)用(2小題,每題20分,計(jì)40分)
    1、在考生文件夾中有一個(gè)數(shù)據(jù)庫STSC,其中有數(shù)據(jù)庫表STUDENT、SCORE和COURSE利用SQL語句查詢選修了"C++"課程的學(xué)生的全部信息,并將結(jié)果按學(xué)號(hào)升序存放在CPLUS.DBF文件中(庫的結(jié)構(gòu)同 STUDENT,并在其后加入課程號(hào)和課程名字段)。
    2、在考生文件夾中有一個(gè)數(shù)據(jù)庫 STSC,其中有數(shù)據(jù)庫表STUDENT,使用報(bào)表向?qū)е谱饕粋€(gè)名為P1的報(bào)表,存放在考生文件夾中。要求:選擇 STUDENT表中所有字段,報(bào)表式樣為經(jīng)營式;報(bào)表布局:列數(shù)為1,方向?yàn)榭v向,字段布局為列;排序字段選擇學(xué)號(hào) (升序)報(bào)表標(biāo)題為"學(xué)生基本情況一覽表"。
    第1題,本題的主要考核點(diǎn)是SQL語句的查詢
    SELECT Student.*, Score.課程號(hào), Course.課程名;
    FROM stsc!student INNER JOIN stsc!score;
    INNER JOIN stsc!course ;
    ON Score.課程號(hào) = Course.課程號(hào) ;
    ON Student.學(xué)號(hào) = Score.學(xué)號(hào);
    WHERE AT("C++",Course.課程名) > 0;
    ORDER BY Student.學(xué)號(hào);
    INTO TABLE cplus.dbf
    第2題,本題的主要考核點(diǎn)是報(bào)表的制作。
    啟動(dòng)報(bào)表向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對(duì)話框,文件類型選擇報(bào)表,單擊向?qū)О粹o?;蛘咴?工具"菜單中選擇"向?qū)?子菜單,選擇"報(bào)表",或直接單擊工具欄上的"報(bào)表向?qū)?圖標(biāo)按鈕。
    按照向?qū)崾炯邦}目要求操作即可。
    三、綜合應(yīng)用(1小題,計(jì)30分)
    在考生文件夾下有職員管理數(shù)據(jù)庫staff_8,數(shù)據(jù)庫中有YUANGONG表和ZHICHENG表,YUANGONG的表結(jié)構(gòu)是職工編碼C(4)、姓名C(10)、職稱代碼C(1)、工資N(10.2)。ZHICHENG的表結(jié)構(gòu)是職稱代碼C(1)和職稱名稱C(8),增加百分比N(10.2),然后編寫并運(yùn)行符合下列要求的程序:設(shè)計(jì)一個(gè)名為staff_m的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
    程序運(yùn)行時(shí),單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
    在表yuangong中增加一新的字段:新工資 N(10.2)
    現(xiàn)在要給每個(gè)人增加工資,請(qǐng)計(jì)算YUANGONG 表的新工資字段,方法是根據(jù)
    ZHICHENG表中相應(yīng)職稱的增加百分比來計(jì)算:
    新工資=工資*(1+增加百分比/100)
    單擊"退出"菜單項(xiàng)對(duì)應(yīng)命令 SET SYSMENU TO DEFAULT,使之可以返回到系統(tǒng)菜單,程序終止運(yùn)行。
    本題主要考核點(diǎn):
    菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、分組查詢、臨時(shí)表的概念、查詢結(jié)果的去向等知識(shí)點(diǎn)。
    本題解題思路:
    第一步:利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"計(jì)算"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗口來添加"計(jì)算"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
    第二步:在單擊"計(jì)算"菜單項(xiàng)后面的"編輯"按鈕所打開的窗口中添加如下的過程代碼:
    SET TALK OFF &&在程序工作方式下關(guān)閉命令結(jié)果的顯示
    USE ZHICHENG IN 2 &&在第二工作區(qū)打開表ZHICHENG
    USE YUANGONG IN 1 &&在第一工作區(qū)打開表YUANGONG
    ALTER TABLE YUANGGONG ADD 新工資 N(7,2)
    &&ALTER TABLE SQL語句可以對(duì)現(xiàn)有的表結(jié)構(gòu)進(jìn)行修改,可以修改表的字段、索引、
    &&默認(rèn)值、有效性等,也可以增加以上內(nèi)容。增加一個(gè)字段如下:
    &&ALTER TABLE 表名 ADD 字段名 數(shù)據(jù)類型標(biāo)識(shí)[(字段長度 [,小數(shù)位數(shù)])]
    SELECT 2
    DO WHILE NOT EOF() &&遍歷ZHICHENG表中的每一條記錄
    SELECT 1
    UPDATE YUANGONG SET 新工資=工資*(1+ZHICHENG.增加百分比/100);
    WHERE YUANGONG.職稱代碼=ZHICHENG.職稱代碼
    &&UPDATE SQL語句對(duì)記錄進(jìn)行修改
    SELECT 2
    SKIP
    ENDDO
    SET TALK ON
    第三步:以staff_m.mnx名保存菜單,生成菜單,并運(yùn)行。