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

字號:

第一套
    一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
     注意:基本操作題為4道SQL題,請將每道題的SQL命令粘貼到SQL1.txt文件,
    每條命令占一行,第1道題的命令是第1行,第2道題的命令是第2行,以此類推;
    如果某道題沒有做相應(yīng)行為空。
    在考生文件夾下完成下列操作:
    1. 利用SQL SELECT命令將表stock_sl.dbf復(fù)制到stock_bk.dbf。
    2. 利用SQL INSERT命令插入記錄("600028",4.36, 4.60, 5500)到stock_bk.dbf表。
    3. 利用SQL UPDATE命令將stock_bk.dbf表中"股票代碼"為600007的股票"現(xiàn)價"改為8.88。
    4. 利用SQL DELETE命令刪除stock_bk.dbf表中"股票代碼"為600000的股票。
    本題的主要考核點:
    SQL語句的使用。
    1、SELE * FROM stock_sl INTO DBF stock_bk
    2、INSE INTO stock_bk (股票代碼,買入價,現(xiàn)價,持有數(shù)量)VALU("600028", 4.36, 4.60, 5500)
    3、UPDA stock_bk SET 現(xiàn)價=8.88 WHER 股票代碼="600007"
    4、DELE FROM stock_bk WHER 股票代碼="600000"
    二、簡單應(yīng)用(2小題,每題20分,計40分)
     1、在考生文件夾下建立數(shù)據(jù)庫sc2,將考生文件夾下的自由表score2添加進
     sc2中。根據(jù)score2表建立一個視圖score_view,視圖中包含的字段與
     score2表相同,但視圖中只能查詢到積分小于等于1500的信息。然后利用
     新建立的視圖查詢視圖中的全部信息,并將結(jié)果按積分升序存入表v2。
     2、建立一個菜單filemenu,包括兩個菜單項"文件"和"幫助", "文件"將激活
     子菜單,該子菜單包括"打開"、"存為"和 "關(guān)閉"三個菜單項;"關(guān)閉"子菜
     單項用SET SYSMENU TO DEFAULT命令返回到系統(tǒng)菜單,其他菜單項的功能
    不做要求。
    第1題,本題的主要考核點是視圖的建立。
    在"項目管理器"中選擇一個數(shù)據(jù)庫,選擇"本地視圖",然后選擇"新建"按鈕,打開"視圖設(shè)計器"。選擇所有字段,在"篩選"欄內(nèi)輸入條件"積分<=1500",關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計器中打開視圖,用sort on 積分 to v2 命令存入新表。
    第2題,本題的主要考核點是菜單的建立。新建菜單可按下列步驟:選擇"文件"菜單中的"新建"命令,在"新建"對話框中選擇"菜單",單擊"新建文件"按鈕。在"新建菜單"對話框中選擇"菜單"按鈕,調(diào)出"菜單設(shè)計器"。也可用CREATE MENU命令直接調(diào)出菜單設(shè)計器。在菜單名稱中填入"文件"、"幫助","文件"結(jié)果為子菜單,單擊編輯;在子菜單的菜單名稱中輸入"打開"、"存為"、 "關(guān)閉","關(guān)閉"結(jié)果為命令"SET SYSMENU TO DEFAULT"。
    三、綜合應(yīng)用(1小題,計30分)
     在考生文件夾下有學(xué)生成績數(shù)據(jù)庫XUESHENG3,包括如下所示三個表文件以及相
     關(guān)的索引文件:
     1、XS.DBF(學(xué)生文件: 學(xué)號 C8,姓名 C8,性別 C2,班級 C5;另有索引文件
     XS.IDX,索引鍵:學(xué)號)
     2、CJ.DBF(成績文件: 學(xué)號 C8,課程名 C20,成績 N5.1;另有索引文件
     CJ.IDX,索引鍵:學(xué)號)
     3、CJB.DBF(成績表文件:學(xué)號 C8,姓名 C8,班級 C5,課程名 C12,成績
     N5.1)
     設(shè)計一個名為XS3的菜單,菜單中有兩個菜單項"計算"和"退出"。
     程序運行時, 單擊"計算"菜單項應(yīng)完成下列操作:
     將所有選修了"計算機基礎(chǔ)"的學(xué)生的"計算機基礎(chǔ)"成績,按成績由高到低的順
     序填列到成績表文件CJB.DBF中(事前須將文件中原有數(shù)據(jù)清空)。
     單擊"退出"菜單項,程序終止運行。
     (注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
    本題的主要考核點:
    結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、查詢的去向等知識
    解題思路:
    在本題中要想得到所有選修了"計算機基礎(chǔ)"的學(xué)生的"計算機基礎(chǔ)" 成績及學(xué)生的姓名等信息,就需要用到聯(lián)接查詢。因為學(xué)生的姓名、班級在表XS.DBF中,而學(xué)生的成績在表CJ.DBF中。而這兩個表要聯(lián)接起來可以通過"學(xué)號"字段。
    有以下兩種聯(lián)接查詢的形式:SELECT XS.學(xué)號,姓名,班級,課程名,成績 FROM XS,CJ WHERE XS.學(xué)號=CJ.學(xué)號 AND 課程名="計算機基礎(chǔ)" 或者 SELECT XS.學(xué)號,姓名,班級,課程名,成績 FROM XS LEFT JION CJ ON XS.學(xué)號=CJ.學(xué)號 WHERE 課程名="計算機基礎(chǔ)"
     通過以上的聯(lián)接查詢便得到了所有選修"計算機基礎(chǔ)"的學(xué)生的"計算機基礎(chǔ)"的成績及學(xué)生的姓名等信息。而題中所要求按成績的降序排序,所以應(yīng)該在以上SQL語句的基礎(chǔ)上加入:ORDER BY 成績 DESC
     將查詢所得到的結(jié)果放于一個數(shù)組變量AFieldsValue中,要用到INTO ARRAY AFieldsValue.至此一個完整的SQL聯(lián)接查詢語句便形成了:SELECT XS.學(xué)號,姓名,班級,課程名,成績 FROM XS,CJ WHERE XS.學(xué)號=CJ.學(xué)號 AND 課程名="計算機基礎(chǔ)" ORDER BY 成績 DESC INTO ARRAY AFieldsValue
     清空CJB.DBF
     將tableName中的資料添加到已被清空的CJB.DBF中INSERT INTO CJB FROM ARRAY AFieldsValue
    第二套
    一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
    在考生文件夾下完成下列操作(在"成績管理"數(shù)據(jù)庫中完成):
    1. 為"學(xué)生"表在"學(xué)號"字段上建立升序主索引, 索引名為學(xué)號;
    2. 為"學(xué)生"表的"性別"字段定義有效性規(guī)則, 規(guī)則表達(dá)式為 性別$"男女"出錯提示信息是: "性別必須是男或女"。
    3. 在"學(xué)生"表的"性別"和"年齡"字段之間插入一個"出生日期"字段,數(shù)據(jù)類型
     為"日期型"(修改表結(jié)構(gòu));
    4. 用SQL的UPDATE命令將學(xué)生"王三風(fēng)"的出生日期修改為1983年5月1日,并將該
     語句粘貼在SQL2.TXT文件中(第一行、只占一行)
    本題的主要考核點:
     主索引的建立、字段有效規(guī)則的建立,表結(jié)構(gòu)的更改,SQL語言的使用。
    解題思路:
    1.在表設(shè)計器中的索引頁面建立索引。
    2、建立有效性規(guī)則在表設(shè)計器中的字段選項卡。在"規(guī)則"欄中輸入"性別$"男女"","提示信息"欄輸入"性別必須是男或女"(不要雙引號)。
    3.增加字段的方法:
    打開表設(shè)計器,將光標(biāo)移動到"年齡"字段格中,點擊"插入",在"新字段"格中輸入新的字段名、字段類型及長度。
    4.SQL語句的用法
    UPDA 學(xué)生 SET 出生日期={^1983/05/01} WHER 姓名="王三風(fēng)"
    二、簡單應(yīng)用(2小題,每題20分,計40分)
     1、根據(jù)考生文件夾下的txl表和jsh表建立一個查詢query2,查詢出單位是
     "南京大學(xué)" 的所有教師的姓名、職稱、電話,要求查詢?nèi)ハ蚴潜恚砻?BR>     是query2.dbf,并執(zhí)行該查詢。
     2、建立表單enterf,表單中有兩個命令按鈕,按鈕的名稱分別為cmdin和
     cmdout,標(biāo)題分別為"進入"和"退出"。
    第1題,本題的主要考核點是建立查詢。
    建立查詢可以使用"文件"菜單完成,選擇文件--新建--查詢--新建文件,將txl和jsh添加入查詢中,從字段中選擇姓名、職稱和電話字段,單擊查詢菜單下的查詢?nèi)ハ?,選擇表,輸入表名query2.DBF。后運行該查詢。
    第2題,本題的主要考核點是表單的建立。
    可以用三種方法調(diào)用表單設(shè)計器:在項目管理器環(huán)境下調(diào)用;單擊"文件"菜單中的"新建",打開"新建"對話框,選擇"表單";在命令窗口輸入CREATE FORM命令。
    打開表單設(shè)計器后,在表單控件工具欄上單擊"命令按鈕",在表單上放置兩個按鈕。分別修改其屬性Name為cmdin和cmdout,Caption屬性為"進入"和"退出"。
    三、綜合應(yīng)用(1小題,計30分)
     在考生文件夾下有倉庫數(shù)據(jù)庫CK3,包括如下所示兩個表文件:
     CK(倉庫號C(4),城市C(8),面積N(4))
     ZG(倉庫號C(4),職工號C(4),工資N(4))
     設(shè)計一個名為ZG3的菜單,菜單中有兩個菜單項"統(tǒng)計"和"退出"。
     程序運行時,單擊"統(tǒng)計"菜單項應(yīng)完成下列操作:檢索出所有職工的
     工資都大于 1220元的職工所管理的倉庫信息,將結(jié)果保存在wh1數(shù)據(jù)表(WH1為
     自由表)文件中,該文件的結(jié)構(gòu)和CK數(shù)據(jù)表文件的結(jié)構(gòu)一致,并按面積升序排
     序。
     單擊"退出"菜單項,程序終止運行。
     (注:相關(guān)數(shù)據(jù)表文件存在于考生文件夾下)
    本題主要考核點:
    菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的嵌套查詢、查詢結(jié)果的去向等知識。
    解題思路:
    利用菜單設(shè)計器定義兩個菜單項,在菜單名稱為"統(tǒng)計"的菜單項的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個窗中來添加"統(tǒng)計"菜單項要執(zhí)行的命令。在菜單名稱為"退出"的菜單項的結(jié)果列中選擇"命令",并在后面的"選項"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
    "統(tǒng)計"菜單項要執(zhí)行的程序:
    首先中打開數(shù)據(jù)庫文件 OPEN DATABASE CK3.DBC
    下面我們分析所要用到的查詢語句的實現(xiàn),題面要求"檢索出所有職工的工資都大于1220的職工所管理的倉庫信息",所以得到滿足以上條件的倉庫號成為解答本題的關(guān)鍵。"所有職工的工資都大于1220的職工所管理的倉庫"這個條件可以將其分解為同時滿足以下兩個條件的結(jié)果" 倉庫號不存在于職工的工資小于等于1220的職工所管理的倉庫號中"并且"倉庫號存在于表ZG中",而以上兩個條件我們可以利用SQL輕松寫出來。所以后形成的查詢語句以下:SELECT * FROM CK WHERE 倉庫號 NOT IN (SELECT 倉庫號 FROM ZG WHERE 工資<=1220) AND 倉庫號 IN (SELECT 倉庫號 FROM ZG) INTO TABLE wh1.dbf.后面的INTO TABLE wh1.dbf決定了查詢的結(jié)果是生成一個wh1.dbf文件。
    本題還考對查詢的排序和查詢的去向進行了考核.可以用ORDER BY order_Item [ASC|DESC]來讓查詢的結(jié)果按某一列或某幾列的升序(ASC)或降序(DESC)進行排列。而查詢的去向可以通過INTO TABLE strTableName 而直接生成一個文件名為strTableName的.DBF表。