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

字號:

第十一套
    一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
     1、在考生文件夾下建立項目MARKET。
     2、在項目MARKET中建立數(shù)據庫PROD_M。
     3、把考生文件夾中自由表CATEGORY和PRODUCTS加入到PROD_M數(shù)據庫中
     4、為CATEGORY表建立主索引,索引名為primarykey,索引表達式為分類編碼;為
    PRODUCTS表建立普通索引,索引名為regularkey,索引表達式為分類編碼。
    本題的主要考核點:
     項目的建立、在項目中創(chuàng)建數(shù)據庫、將自由表添加到數(shù)據庫中、主索引,普通索引的建立。
    解題思路:
    1.建立項目
    創(chuàng)建項目可用"文件"菜單中的"新建"命令。
    2.在項目中創(chuàng)建數(shù)據庫:
    在項目管理器的"數(shù)據"選項卡選擇數(shù)據庫,單擊"新建"。
    3.將自由表添加到數(shù)據庫中,可以在項目管理器或數(shù)據庫設計器中完成。在數(shù)據庫設計器中可以從"數(shù)據庫"菜單或在數(shù)據庫設計器上單擊右鍵彈出的菜單中選擇"添加表",然后在"打開"對話框中選擇要添加到當前數(shù)據庫的自由表。還可用ADD TABLE命令添加一個自由表到當前數(shù)據庫中。
    4.在CATEGORY表設計器中的索引選項卡輸入索引名primarykey,索引表達式為分類編碼,索引類型為主索引。在PRODUCTS表設計器中的索引選項卡建立索引名為regularkey,索引表達式為分類編碼的普通索引。
    二、簡單應用(2小題,每題20分,計40分)
     1、在考生文件夾中有一個數(shù)據庫SDB,其中STUDENT表結構如下:
     STUDENT(學號C(2),姓名C(8),年齡N(2),性別C(2),院系號C(2)),現(xiàn)在
     要對STUDENT表進行修改,指定學號為主索引,索引名和索引表達式均為學
     號;指定院系號為普通索引,索引名和索引表達式均為院系號;年齡字段的
     有效性規(guī)則在12至30之間(含12和30),默認值是16,性別字段有效性規(guī)則
     是'男'或'女',默認值是'男'。
     2、在考生文件夾中有一個數(shù)據庫SDB,其中有數(shù)據庫表STUDENT、SC和COURSE。
     表結構如下:
     STUDENT(學號,姓名,年齡,性別,院系號)
     SC(學號,課程號,成績,備注)
     COURSE(課程號,課程名,先修課程號,學分)
     在考生文件夾下有一個程序test.prg,該程序的功能是檢索選修課程門數(shù)等
     于3門或3門以上,每門課程成績大于或等于70分的每個學生的學號、姓名、
     性別、平均成績、低分和選課門數(shù),并將結果存放到表new_test中。請修
     改程序中的錯誤,并調試該程序,使之正確運行??忌坏迷黾踊騽h減程序
     行。
    第1題,本題的主要考核點是建立索引和有效性規(guī)則。
    建立索引是在表設計器中的索引選項卡建立,建立有效性規(guī)則在表設計器中的字段選項卡完成。選定"年齡"字段,在"規(guī)則" 欄中輸入"年齡=>12.AND.年齡<=30"(或用表達式生成器生成),"默認值"欄輸入"16"。選定"性別"字段,在"規(guī)則"欄中輸入"性別="男".OR.性別="女""(或用表達式生成器生成)"默認值"欄輸入"男"。
    第2題,本題是一個程序修改題。
    第一個錯誤在"WHILE STUDENT.學號 = SC.學號 AND 成績 >= 70"行,"WHILE"是循環(huán)語句,不能用在此處,設置查詢條件的語句是"WHERE"。第二個錯誤在"SUM(課程號) >= 3",因為題目要求是選課門數(shù)大于等于3,不應用SUM,應改為COUNT。第三個錯誤在"TO NEW_TEST",此處要導入表NEW_TEST,正確的命令格式是"INTO TABLE NEW_TEST"。
    三、綜合應用(1小題,計30分)
     在考生文件夾下有學生管理數(shù)據庫stu_five
     (1)CHENGJI表(學號C(9)、課程號C(3)、成績I)用于記錄學生的考試成績,其中
     一個學生可以有多項記錄(登記一個學生的多門成績)。
     (2)KECHENG表(課程號C(3)、課程名 C(10)、高分I、學號C(9))的內容是所開
     課程,一門課程只有一個記錄(表中有固定的已知數(shù)據)。
     請編寫并運行符合下列要求的程序:
     設計一個名為form_my的表單,表單中有兩個命令按鈕,按鈕的名稱分別為
     cmdYes和cmdNo,標題分別為"統(tǒng)計"和"關閉"。
     程序運行時,單擊"統(tǒng)計"按鈕應完成下列操作:
     (1)計算每門課程的高分,并將結果存入KECHENG表的高分字段,同時將得
     此高分的學生的學號存入該表的學號字段。
     (2)根據上面的計算結果,生成一個新的表jiangli,該表按順序含有來自
     KECHENG表的課程名和高分兩個字段,并且按高分降序排序。
     單擊"關閉"按鈕,程序終止運行。
    本題主要考核點:
    表單的建立、程序設計中循環(huán)結構、條件結構的應用、SELECT語句的應用等知識點
    解題思路:
    第一步:利用表單設計器建立所要求的表單,將在表單上添加兩個按鈕控件。分別設置兩個按鈕控件的標題和名字屬性。
    第二步:雙擊標題為"統(tǒng)計"的按鈕控件,在新打開的窗口中添加此按鈕的CLICK事件代碼:
     SET TALK OFF
    SELECT 2
    USE KECHENG
    &&在B工作區(qū)打開KECHENG表
    INDEX ON 課程號 TO KC
    &&以課程號為排序的依據對表KECHENG進行排序
    SELECT 1
    USE CHENGJI
    &&在A工作區(qū)打開CHANEGJI表
    DO WHILE NOT EOF() &&遍歷CHENGJI表
     SELECT 2
     SEEK A->課程號 &&在KECHENG表中查找當前成績表所在的課程號
     IF 高分成績 THEN && 如果KECHENG表中的高分小于當前CHENGJI表中的記錄的成績
    REPLACE 高分 WITH A->成績,學號 WITH A->學號
    ENDIF
    SELECT 1
    SKIP
    ENDDO
    SELECT 課程名,高分 FROM KECHENG ORDER BY 高分 INTO TABLE JIANGLI
    &&SELECT語句的ORDER BY 子句可以指定查詢結果的排序依據,默認是以指定排序依據的升序排序,
    &&如果要指定為降序需要用DESC;INTO TABLE 表名 可以將結果集放入一個永久表中。結果集也可以
    &&放入一個臨時表中:INTO CURSOR 臨時表名 ,也可以放入一個數(shù)組之中:INTO ARRAY 數(shù)組變量名
    SET TALK ON
    第三步:為標題為"退出"的按鈕控件加入CLICK事件代碼:
     THISFORM.RELEASE &&退出表單
    第三步:以form_my保存表單