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

字號(hào):

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

    第十三套
    一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
    1、在考生文件夾下建立項(xiàng)目STSC_M。
    2、把數(shù)據(jù)庫(kù)STSC加入到STSC_M項(xiàng)目中。
    3、從STUDENT表中查詢"金融"系學(xué)生信息( STUDENT表全部字段),按學(xué)號(hào)升序存入新表NEW。
    4、使用視圖設(shè)計(jì)器在數(shù)據(jù)庫(kù)中建立視圖NEW_VIEW:視圖包括STUDENT表全部字段(字段順序和STUDENT表一樣)和全部記錄(元組),記錄按學(xué)號(hào)降序排序。
    本題的主要考核點(diǎn):
    項(xiàng)目的建立、將數(shù)據(jù)庫(kù)添加到項(xiàng)目中、查詢并存入新表、視圖的建立。
    解題思路:
    1.建立項(xiàng)目
    創(chuàng)建項(xiàng)目可用"文件"菜單中的"新建"命令。
    2.將數(shù)據(jù)庫(kù)加入到項(xiàng)目中:
    在項(xiàng)目管理器的"數(shù)據(jù)"選項(xiàng)卡選擇數(shù)據(jù)庫(kù),單擊"添加",在"打開(kāi)"對(duì)話框中選擇要添加的數(shù)據(jù)庫(kù)
    3.用SQL語(yǔ)句
    select * from student.dbf where 院系="金融";
    into table new order by 學(xué)號(hào) desc
    可完成此查詢。
    也可建立一個(gè)查詢完成。在菜單中選擇文件--新建--查詢--新建文件,添加全部字段,在篩選欄中輸入"院系="金融"",排序選擇"學(xué)號(hào)"升序,并將查詢?nèi)ハ蛟O(shè)為表NEW。注意NEW要保存到考生文件夾下。后運(yùn)行此查詢即可。
    4.打開(kāi)數(shù)據(jù)庫(kù)以后,在新建對(duì)話框中、項(xiàng)目管理器中、或用CREAT VIEW命令打開(kāi)視圖設(shè)計(jì)器建立一個(gè)視圖,將STUDENT表添加到視圖中,在排序依據(jù)中選擇"學(xué)號(hào)"、降序,后將視圖命名為NEW_VIEW。
    二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
    1、首先打開(kāi)考生文件夾中的數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)STSC,然后使用表單向?qū)е谱饕粋€(gè)表單,要求選擇STUDENT表中所有字段,表單樣式為陰影式;按鈕類型為圖片按鈕;排序字段選擇學(xué)號(hào)(升序);表單標(biāo)題為"學(xué)生信息數(shù)據(jù)輸入維護(hù)",后將表單存放在考生文件夾中,表單文件名為T(mén)1。
    2、在考生文件夾中有一個(gè)數(shù)據(jù)庫(kù) STSC,其中有數(shù)據(jù)庫(kù)表STUDENT存放學(xué)生信息,使用菜單設(shè)計(jì)器制作一個(gè)名為SMENU1的菜單,菜單包括"數(shù)據(jù)維護(hù)",和"文件"兩個(gè)菜單欄。
    每個(gè)菜單欄都包括一個(gè)子菜單。菜單結(jié)構(gòu)如下:
    數(shù)據(jù)維護(hù)
    數(shù)據(jù)表格式輸入
    文件
    退出
    其中:
    ·數(shù)據(jù)表格式輸入菜單項(xiàng)對(duì)應(yīng)的過(guò)程包括下列4條命令:打開(kāi)數(shù)據(jù)庫(kù)STSC的命
    令,打開(kāi)表STUDENT的命令,BROWSE命令,關(guān)閉數(shù)據(jù)庫(kù)的命令。
    ·退出菜單項(xiàng)對(duì)應(yīng)命令 SET SYSMENU TO DEFAULT,使之可以返回到系統(tǒng)菜單。
    第1題,本題的主要考核點(diǎn)是使用表單向?qū)е谱鞅韱巍?BR>    啟動(dòng)表單向?qū)Э稍凇拔募辈藛沃羞x擇“新建”或者單擊工具欄上的“新建”按鈕,打開(kāi)“新建”對(duì)話框,文件類型選擇表單,單擊向?qū)О粹o?;蛘咴凇肮ぞ摺辈藛沃羞x擇“向?qū)А弊硬藛?,選擇“表單”,或直接單擊工具欄上的“表單向?qū)А眻D標(biāo)按鈕。在“向?qū)нx取”對(duì)話框中選擇“表單向?qū)А?。然后按照表單向?qū)Р僮骷纯伞?BR>    第2題,本題的主要考核點(diǎn)是菜單的制作和數(shù)據(jù)庫(kù)基本命令。
    新建菜單可按下列步驟:選擇“文件”菜單中的“新建”命令,在“新建”對(duì)話框中選擇“菜單”,單擊“新建文件”按鈕。在“新建菜單”對(duì)話框中選擇“菜單”按鈕,調(diào)出“菜單設(shè)計(jì)器”。也可用CREATE MENU命令直接調(diào)出菜單設(shè)計(jì)器。在菜單名稱中填入“數(shù)據(jù)維護(hù)”,結(jié)果為子菜單,單擊編輯;在子菜單的菜單名稱中輸入“數(shù)據(jù)表格式輸入”,結(jié)果為過(guò)程。在過(guò)程中輸入下列命令:
    OPEN DATA STSC
    USE STUDENT
    BROWSE
    CLOSE ALL
    “文件”菜單同上,其中“退出”菜單對(duì)應(yīng)結(jié)果為命令,命令為SET SYSMENU TO DEFAULT。
    三、綜合應(yīng)用(1小題,計(jì)30分)
    在考生文件夾下有學(xué)生管理數(shù)據(jù)庫(kù)stu_7,該庫(kù)中有CHENGJI表和XUESHENG表,
    各表結(jié)構(gòu)如下:
    (1) CHENGJI表(學(xué)號(hào)C(9)、課程號(hào)C(3)、成績(jī)N(7.2)),該表用于記錄學(xué)生的考試成績(jī),單一個(gè)學(xué)生可以有多項(xiàng)記錄(登記一個(gè)學(xué)生的多門(mén)成績(jī))。
    (2) XUESHENG表(學(xué)號(hào)C(9)、姓名C(10)、平均分N(7.2)),該表是學(xué)生信息,一個(gè)學(xué)生只有一個(gè)記錄(表中有固定的已知數(shù)據(jù))。
    請(qǐng)編寫(xiě)并運(yùn)行符合下列要求的程序:
    設(shè)計(jì)一個(gè)名為form_stu的表單,表單中有兩個(gè)命令按鈕,按鈕的名稱分別為
    cmdYes和cmdNo,標(biāo)題分別為"統(tǒng)計(jì)"和"關(guān)閉"。
    程序運(yùn)行時(shí),單擊"統(tǒng)計(jì)"按鈕應(yīng)完成下列操作:
    (1) 根據(jù)CHENGJI表計(jì)算每個(gè)學(xué)生的平均分,并將結(jié)果存入XUESHENG表的平均分字段。
    (2) 根據(jù)上面的計(jì)算結(jié)果,生成一個(gè)新的自由表 pingjun,該表的字段按順序取自XUESHENG表的學(xué)號(hào)、姓名和平均分三項(xiàng),并且按平均分升序排序,如果平均分相等,則按學(xué)號(hào)升序排序。單擊"關(guān)閉"按鈕,程序終止運(yùn)行。
    本題主要考核點(diǎn):
    表單的建立、程序設(shè)計(jì)中循環(huán)結(jié)構(gòu)、條件結(jié)構(gòu)的應(yīng)用、SELECT語(yǔ)句的應(yīng)用等知識(shí)點(diǎn)
    解題思路:
    第一步:利用表單設(shè)計(jì)器建立所要求的表單,將在表單上添加兩個(gè)按鈕控件。分別設(shè)置兩個(gè)按鈕控件的標(biāo)題和名字屬性。
    第二步:雙擊標(biāo)題為"統(tǒng)計(jì)"的按鈕控件,在新打開(kāi)的窗口中添加此按鈕的CLICK事件代碼:
    SET TALK OFF &&在程序運(yùn)行的情況下關(guān)閉命令執(zhí)行的結(jié)果
    SET SAFETY OFF &&當(dāng)出現(xiàn)文件重名時(shí)不出現(xiàn)提示
    OPEN DATABASE STU_7 &&打開(kāi)數(shù)據(jù)庫(kù)文件STU_7
    USE XUESHENG &&在當(dāng)前工作區(qū)打開(kāi)XUESHENG表
    DO WHILE NOT EOF() &&遍歷學(xué)生表中的每一個(gè)記錄這樣可以對(duì)每一個(gè)學(xué)生進(jìn)行操作
    SELECT AVG(成績(jī)) FROM CHENGJI;
    WHERE 學(xué)號(hào)=XUESHENG.學(xué)號(hào) INTO ARRAY Atemp
    &&SELECT SQL語(yǔ)句中可以利用AVG()函數(shù)得到某一表達(dá)式的平均值
    &&可以將結(jié)果集存入一個(gè)數(shù)組之中INTO ARRAY Atemp
    REPLACE 平均分 WITH Atemp(1,1)
    &&將所得到的平均分代替當(dāng)前學(xué)號(hào)的在XUESHENG表中的平均分
    SKIP
    ENDDO
    SELECT 學(xué)號(hào),姓名,平均分 FROM XUESHENG;
    ORDER BY 平均分,學(xué)號(hào);
    INTO TABLE PINGJUN
    &&在SELECT SQL語(yǔ)句中可以利用ORDER BY 子句對(duì)結(jié)果集進(jìn)行排序,如果有多個(gè)排序依據(jù)
    &&在ORDER BY 中排在前面的優(yōu)先級(jí)更高一些,另外默認(rèn)的是以升序進(jìn)行排序,如果要以降
    &&序進(jìn)行排序,需要顯示指定DESC;對(duì)結(jié)果集可以直接放入到一個(gè)永久
    &&表中:INTO TABLE 表名
    CLOSE ALL
    SET TALK ON
    SET SAFETY ON
    第三步:雙擊標(biāo)題為"退出"的按鈕控件,在新打開(kāi)的窗口中添加此按鈕的CLICK事件代碼:THISFORM.RELEASE &&退出表單
    第四步:以文件名form_stu保存表單,并執(zhí)行表單。