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

字號(hào):

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

    一、基本操作(共四小題,第1和2題是7分、第3和4題是8分
    1、請(qǐng)?jiān)诳忌募A下建立一個(gè)數(shù)據(jù)庫(kù)KS4。
    2、將考生文件夾下的自由表STUD、COUR、SCOR加入到數(shù)據(jù)庫(kù)KS4中。
    3、為STUD表建立主索引,索引名和索引表達(dá)式均為學(xué)號(hào)
    為COUR表建立主索引,索引名和索引表達(dá)式均為課程編號(hào)
    為SCOR表建立兩個(gè)普通索引,其中一個(gè)索引名和索引表達(dá)式均為學(xué)號(hào);另一個(gè)索引名和索引表達(dá)式均為課程編號(hào)
    4、在以上建立的各個(gè)索引的基礎(chǔ)上為三個(gè)表建立聯(lián)系。
    本題的主要考核點(diǎn):
    數(shù)據(jù)庫(kù)的建立、將自由表添加到數(shù)據(jù)庫(kù)中、主索引和普通索引的建立,為已建立索引的表建立聯(lián)系。
    解題思路:
    1.建立數(shù)據(jù)庫(kù)的常用方法有三種:
    在項(xiàng)目管理器中建立數(shù)據(jù)庫(kù);
    通過(guò)"新建"對(duì)話(huà)框建立數(shù)據(jù)庫(kù);
    使用命令交互建立數(shù)據(jù)庫(kù),命令為: CREATE DATABASE [DatabaseName|?]
    2.將自由表添加到數(shù)據(jù)庫(kù)中,可以在項(xiàng)目管理器或數(shù)據(jù)庫(kù)設(shè)計(jì)器中完成。打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器,在"數(shù)據(jù)庫(kù)"菜單中或在數(shù)據(jù)庫(kù)設(shè)計(jì)器上單擊右鍵彈出的菜單中選擇"添加表",然后在"打開(kāi)"對(duì)話(huà)框中選擇要添加到當(dāng)前數(shù)據(jù)庫(kù)的自由表。還可用ADD TABLE命令添加一個(gè)自由表到當(dāng)前數(shù)據(jù)庫(kù)中。
    3.在STUD表設(shè)計(jì)器中的索引選項(xiàng)卡建立索引名和索引表達(dá)式為學(xué)號(hào)的主索引。分別為COUR和SCOR建立主索引和普通索引。
    4.在數(shù)據(jù)庫(kù)設(shè)計(jì)器中建立三個(gè)表的聯(lián)系。在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,將選中STUD表中的主索引"學(xué)號(hào)",按住鼠標(biāo)拖動(dòng)到SCOR表的普通索引"學(xué)號(hào)"上。
    用同樣的方法可以建立COUR表和SCOR表的"課程編號(hào)"之間的聯(lián)系。
    二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
    1、在考生文件夾中有一個(gè)數(shù)據(jù)庫(kù)STSC,其中有數(shù)據(jù)庫(kù)表STUDENT、SCORE和
    COURSE
    利用SQL語(yǔ)句查詢(xún)選修了"網(wǎng)絡(luò)工程"課程的學(xué)生的全部信息,并將結(jié)果按學(xué)號(hào)降序存放在 NETP.DBF文件中(庫(kù)的結(jié)構(gòu)同STUDENT,并在其后加入課程號(hào)和課程名字段)。
    2、在考生文件夾中有一個(gè)數(shù)據(jù)庫(kù)STSC,其中有數(shù)據(jù)庫(kù)表STUDENT,使用一對(duì)多報(bào)表向?qū)е谱饕粋€(gè)名為CJ2的報(bào)表,存放在考生文件夾中要求:選擇父表STUDENT 表中學(xué)號(hào)和姓名字段,從子表SCORE中選擇課程號(hào)和成績(jī),排序字段選擇學(xué)號(hào)(升序),報(bào)表式樣為簡(jiǎn)報(bào)式,方向?yàn)榭v向。報(bào)表標(biāo)題為"學(xué)生成績(jī)表"。
    第1題,本題的主要考核點(diǎn)是SQL語(yǔ)句的查詢(xún)。
    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("網(wǎng)絡(luò)工程",Course.課程名) > 0;
    ORDER BY Student.學(xué)號(hào) desc;
    INTO TABLE netp.dbf
    第2題,本題的主要考核點(diǎn)是使用報(bào)表向?qū)е谱鲌?bào)表。
    啟動(dòng)報(bào)表向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開(kāi)"新建"對(duì)話(huà)框,文件類(lèi)型選擇報(bào)表,單擊向?qū)О粹o?;蛘咴?工具"菜單中選擇"向?qū)?子菜單,選擇
    "報(bào)表",或直接單擊工具欄上的"報(bào)表向?qū)?圖標(biāo)按鈕。然后按照向?qū)崾静僮骷纯伞?BR>    三、綜合應(yīng)用(1小題,計(jì)30分)
    在考生文件夾下有工資數(shù)據(jù)庫(kù)WAGE3,包括數(shù)據(jù)表文件:ZG(倉(cāng)庫(kù)號(hào)C(4),
    職工號(hào)C(4),工資N(4))
    設(shè)計(jì)一個(gè)名為T(mén)J3的菜單,菜單中有兩個(gè)菜單項(xiàng)"統(tǒng)計(jì)"和"退出"。
    程序運(yùn)行時(shí),單擊"統(tǒng)計(jì)"菜單項(xiàng)應(yīng)完成下列操作:檢索出工資小于或等于本倉(cāng)庫(kù)職工平均工資的職工信息,并將這些職工信息按照倉(cāng)庫(kù)號(hào)升序,在倉(cāng)庫(kù)號(hào)相同的情況下再按職工號(hào)升序存放到EMP1(EMP1為自由表)文件中,該數(shù)據(jù)表文件和ZG數(shù)據(jù)表文件具有相同的結(jié)構(gòu)。單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
    (注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
    本題主要考核點(diǎn):
    菜單的建立、結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)中的聯(lián)接查詢(xún)、查詢(xún)的排序、臨時(shí)表的概念、查詢(xún)結(jié)果的去向等知識(shí)。
    解題思路:
    利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱(chēng)為"統(tǒng)計(jì)"的菜單項(xiàng)的結(jié)果列中選擇"過(guò)程",并通過(guò)單擊"編輯"按鈕打開(kāi)一個(gè)窗中來(lái)添加"統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱(chēng)為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
    "統(tǒng)計(jì)"菜單項(xiàng)要執(zhí)行的程序:
    首先是打開(kāi)數(shù)據(jù)庫(kù)文件OPNE DATABASE WAGE3.DBC我們應(yīng)該得到每一個(gè)倉(cāng)庫(kù)的職工平均工資,并將結(jié)果放在一個(gè)臨時(shí)的表CurTable中.利用以下語(yǔ)句可以實(shí)現(xiàn):SELECT 倉(cāng)庫(kù)號(hào),AVG(工資) AS AvgGZ FROM ZG GROUP BY 倉(cāng)庫(kù)號(hào) INTO CURSOR CurTable.這樣就生成了一個(gè)表名為CurTable的臨時(shí)表。表中有兩個(gè)字段:倉(cāng)庫(kù)號(hào),AvgGZ,內(nèi)容為每一個(gè)倉(cāng)庫(kù)的倉(cāng)庫(kù)號(hào)和所對(duì)應(yīng)的職工的平均工資。
    有了臨時(shí)表CurTable后我們可以將其與ZG進(jìn)行聯(lián)接查詢(xún),我們這里聯(lián)接查詢(xún)的目的不是為了得到臨時(shí)表中的內(nèi)容做為結(jié)果的一部分,而是要用其中的字段AvgGZ做為查詢(xún)的條件.我們便可以得到"工資小于或低于本倉(cāng)庫(kù)職工平均工資的職工信息"的查詢(xún):SELECT ZG.* FROM ZG,CurTable WHERE ZG.倉(cāng)庫(kù)號(hào)=CurTable.倉(cāng)庫(kù)號(hào) AND ZG.工資