計算機等級考試二級VFP機試試題10

字號:

第十套
    一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
     1、在考生文件夾下建立項目SALES_M。
     2、把考生文件夾中的數(shù)據(jù)庫CUST_M加入SALES_M項目中。
     3、為CUST_M數(shù)據(jù)庫中CUST表增加字段:聯(lián)系電話C(12),字段值允許"空"
     4、為CUST_M數(shù)據(jù)庫中ORDER1表"送貨方式"字段設(shè)計默認值為"鐵路"。
    本題的主要考核點:
     項目的建立、將數(shù)據(jù)庫添加到項目中、字段的添加、為字段設(shè)置默認值。
    解題思路:
    1.建立項目
    創(chuàng)建項目可用"文件"菜單中的"新建"命令。
    2.將數(shù)據(jù)庫加入到項目中:
    在項目管理器的"數(shù)據(jù)"選項卡選擇數(shù)據(jù)庫,單擊"添加",在"打開"對話框中選擇要添加的數(shù)據(jù)庫
    3.打開CUST表的表設(shè)計器,將光標移動到后的空字段格中,輸入新的字段名、字段類型及長度。字段值允許為空,則選中"NULL"項。
    4.在表設(shè)計器中,選中"送貨方式"字段,在"字段有效性-默認值"中填入"鐵路"(此處要雙引號),單擊確認。
    二、簡單應(yīng)用(2小題,每題20分,計40分)
     1、在考生文件夾下,有一個數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT、SC和
     COURSE。表結(jié)構(gòu)如下:
     STUDENT(學(xué)號,姓名,年齡,性別,院系號)
     SC(學(xué)號,課程號,成績,備注)
     COURSE(課程號,課程名,先修課程號,學(xué)分)
     在表單向?qū)е羞x取一對多表單向?qū)?chuàng)建一個表單。要求:從父表STUDENT中
     選取字段學(xué)號和姓名,從子表SC中選取字段課程號和成績,表單樣式選
     "浮雕式",按鈕類型使用"文本按鈕",按學(xué)號降序排序,表單標題為"學(xué)生
     成績" ,后將表單存放在考生文件夾中,表單文件名是form1。
     2、在考生文件夾中有一數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT,SC和COURSE。建
     立成績大于等于60分,按學(xué)號升序排序的本地視圖GRADELIST,該視圖按順
     序包含字段學(xué)號、姓名、成績和課程名,然后使用新建立的視圖查詢視圖中
     的全部信息,并將結(jié)果存入表v_grade。
    第1題,本題的主要考核點是使用表單向?qū)е谱鞅韱巍?BR>    啟動表單向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對話框,文件類型選擇表單,單擊向?qū)О粹o。或者在"工具"菜單中選擇"向?qū)?子菜單,選擇"表單",或直接單擊工具欄上的"表單向?qū)?圖標按鈕。在"向?qū)нx取"對話框中選擇"一對多表單向?qū)?。然后按照表單向?qū)崾炯邦}目要求操作即可。
    第2題,本題的主要考核點是建立視圖。
    先打開數(shù)據(jù)庫SDB,在數(shù)據(jù)庫設(shè)計器中單擊右鍵,選擇"建立本地視圖",打開"視圖設(shè)計器"。將數(shù)據(jù)庫的三個表添加到視圖中,按提示建立聯(lián)接。選擇字段學(xué)號、姓名、成績和課程名,在"篩選"欄中的字段名中選擇"sc.成績",條件中選擇">=",實例中輸入"60" (不要雙引號),關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計器中打開視圖,用copy to v_grade 命令或在"文件"菜單中選擇"導(dǎo)出",將結(jié)果存入新表v_grade。
    三、綜合應(yīng)用(1小題,計30分)
     在考生文件夾下有股票管理數(shù)據(jù)庫stock_4,數(shù)據(jù)庫中有stock_mm表和stock_cc
     表,stock_mm的表結(jié)構(gòu)是股票代碼C(6)、買賣標記L(.T.表示買進,.F.表示賣
     出),單價N(7.2)、本次數(shù)量N(6)。stock_cc的表結(jié)構(gòu)是股票代碼C(6),持倉
     數(shù)量N(8)。 stock_mm表中一只股票對應(yīng)多個記錄,stock_cc表中一只股票對應(yīng)
     一個記錄(stock_cc表開始時記錄個數(shù)為0)。
     請編寫并運行符合下列要求的程序:
     設(shè)計一個名為menu_lin的菜單,菜單中有兩個菜單項"計算"和"退出"。
     程序運行時,單擊"計算"菜單項應(yīng)完成下列操作:
     (1)根據(jù)stock_mm統(tǒng)計每只股票的持倉數(shù)量,并將結(jié)果存放到stock_cc表。計算
     方法:買賣標記為.T.(表示買進),將本次數(shù)量加到相應(yīng)股票的持倉數(shù)量;
     買賣標記為.F.(表示賣出),將本次數(shù)量從相應(yīng)股票的持倉數(shù)量中減去。
     (注意:stock_cc表中的記錄按股票代碼從小到大順序存放)。
     (2)將stock_cc表中持倉數(shù)量少的股票信息存儲到自由表stock_x中(與
     stock_cc表結(jié)構(gòu)相同)。
     單擊"退出"菜單項,程序終止運行。
    本題主要考核點:
    菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、臨時表的概念、查詢結(jié)果的去向等知識點。
    本題解題思路:
    第一步:利用菜單設(shè)計器定義兩個菜單項,在菜單名稱為"計算"的菜單項的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個窗口來添加"計算"菜單項要執(zhí)行的命令。在菜單名稱為"退出"的菜單項的結(jié)果列中選擇"命令",并在后面的"選項"列中輸入以下退出菜單的命令: SET SYSMENU TO DEFAULT
    第二步:在單擊"計算"菜單項后面的"編輯"按鈕所打開的窗口中添加如下的過程代碼:
    SET TALK OFF &&在程序中常常要關(guān)閉命令結(jié)果的顯示
    OPEN DATABASE STOCK_4 &&打開數(shù)據(jù)庫文件STOCK_4
    SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
    WHERE 買賣標記 GROUP BY 股票代碼;
    INTO CURSOR CurTable1
    &&
    SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
    WHERE NOT 買賣標記 GROUP BY 股票代碼;
    INTO CURSOR CurTable2
    SELECT CurTable1.股票代碼,(CurTable1.持倉數(shù)量-CurTable2.持倉數(shù)量) AS 持倉數(shù)量;
    FROM CurTable1,CurTable2 ;
    WHERE CurTable1.股票代碼=CurTable2.股票代碼;
    ORDER BY CurTable1.股票代碼;
    INTO ARRAY AfieldsValue
    &&由于每種股票的買進的數(shù)量的和與賣出的數(shù)量的和在兩個不同的臨時表CurTable1和
    &&CurTable2中。因此要想得到兩者之間的差,需要進行聯(lián)接查詢,可以通過"股票代碼"來
    &&做為聯(lián)接的條件,置于WHERE的后面;可以用ORDER BY 子句來確定查詢的排序依據(jù),
    &&這里以股票代碼的升序進行排序:ORDER BY 股票代碼;可以利用INTO ARRAY 數(shù)組名子句
    &&將SELECT語句的查詢結(jié)果放在一個數(shù)組中,以備后面的程序利用
    DELETE FROM STOCK_CC
    &&刪除STOCK_CC表中以前的記錄
    &&DELETE SQL語句可以將滿足指定條件的記錄加上刪除標記
    &&DELETE FROM [DatabaseName!]TableName
    &&[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
    INSERT INTO STOCK_CC FROM ARRAY AfieldsValue
    &&將所得到每支股票的代碼和持倉數(shù)量的數(shù)組插入到表STOCK_CC中
    &&INSERT SQL語句可以向指定的表追加一條新的記錄
    &&INSERT 可以直接將一個數(shù)組中的值做為記錄值追加到表中,
    &&利用FROM ARRAY 數(shù)組變量名來實現(xiàn)
    CLOSE ALL
    USE STOCK_CC
    PACK
    &&物理刪除加上刪除標記的記錄
    USE
    SELECT * 1 FROM STOCK_CC ORDER BY 持倉數(shù)量 INTO TABLE STOCK_X
    &&SELECT語句中可以通過來限制返回結(jié)果集中行數(shù) n[PERCENT] n指定返回的行數(shù)。&&如果未指定 PERCENT,n 就是返回的行數(shù)。如果指定了 PERCENT,n 就是返回的結(jié)果集行的&&百分比;INTO TABLE 表名 可以將結(jié)果集生成一個表
    SET TALK ON
    第三步:保存所編輯的菜單為menu_lin.mnx,并生成菜單menu_lin.mpr,運行。