計(jì)算機(jī)等級(jí)考試:二級(jí)VFP機(jī)試第42套

字號(hào):

第四十二套
    一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
    在考生目錄下完成如下操作:
     1. 新建一個(gè)名為"學(xué)生"的數(shù)據(jù)庫(kù)。
     2. 將"學(xué)生"、"選課"、"課程"三個(gè)自由表添加到新建的數(shù)據(jù)庫(kù)"學(xué)生"中。
     3. 通過"學(xué)號(hào)"字段為"學(xué)生"表和"選課"表建立永久聯(lián)系。
     4. 為上面建立的聯(lián)系設(shè)置參照完整性約束:更新和刪除規(guī)則為"級(jí)聯(lián)",插入規(guī)則
     為"限制"。
    本題主要考核點(diǎn):
    數(shù)據(jù)庫(kù)的建立、將自由表添加到數(shù)據(jù)庫(kù)中、表索引的建立、表之間的永久聯(lián)系的建立、參照完整性約束的編輯等知識(shí)點(diǎn)
    本題解題思路:
    第1題:在Visual FoxPro主窗口中按下組合鍵Ctrl+N,系統(tǒng)彈出"新建"對(duì)話框,在文件類型中選擇"數(shù)據(jù)庫(kù)",點(diǎn)擊"新建文件"按鈕,在彈出的對(duì)話框的"數(shù)據(jù)庫(kù)名"處輸入"學(xué)生",單擊保存按鈕。
    第2題:打開考生文件夾下的"學(xué)生"數(shù)據(jù)庫(kù),打開數(shù)據(jù)庫(kù)菜單選擇"添加表(A)",在彈出的"打開"對(duì)話框中,選定考生文件夾下的"學(xué)生"表,再點(diǎn)擊"確定"即可,這樣表"學(xué)生"就添加到了"學(xué)生"數(shù)據(jù)庫(kù)中,用同樣的方法,將"選課"表、"課程"表也添加到"學(xué)生"數(shù)據(jù)庫(kù)中。
    第3題:在數(shù)據(jù)庫(kù)設(shè)計(jì)器中選中表"學(xué)生",在主菜單中選擇"修改(Y)",彈出表設(shè)計(jì)器,選擇表設(shè)計(jì)器"索引"標(biāo)簽,在索引名列中填入"學(xué)號(hào)",在索引類型列中選擇"主索引",在索引表達(dá)式列中填入"學(xué)號(hào)",點(diǎn)擊"確定"按鈕以保存表結(jié)構(gòu)。用類似的方法,為"選課"表建立必要的索引。在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,選中"學(xué)生"表中的索引"學(xué)號(hào)"將其拖動(dòng)到表"選課"的"學(xué)號(hào)"的索引上并松開,這樣二個(gè)表之間就建立起了永久聯(lián)系。
    第4題:在第3題建立好永久聯(lián)系之后,在"學(xué)生"表和"選課"表的"學(xué)號(hào)"索引之間有一條線,單擊這條表示兩個(gè)表之間聯(lián)系的線(線會(huì)加粗),此時(shí)在主菜單中選擇"數(shù)據(jù)庫(kù)"中的"編輯參照完整性(I)",系統(tǒng)彈出"參照完整性生成器"對(duì)話框,在"更新規(guī)則"標(biāo)簽中,選擇"級(jí)聯(lián)"規(guī)則,在"刪除"規(guī)則中選擇"級(jí)聯(lián)",在"插入規(guī)則"中選擇"限制",單擊"確定"保存所編輯的參照完整性。
    二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
    在考生目錄下完成如下簡(jiǎn)單應(yīng)用:
     1. 用SQL語句完成下列操作:將選課在5門課程以上(包括5門)的學(xué)生的
    學(xué)號(hào)、姓名、平均分和選課門數(shù)按平均分降序排序,并將結(jié)果存放于數(shù)據(jù)庫(kù)
    表stu_temp(字段名為學(xué)號(hào)、姓名、平均分和選課門數(shù))。
     2. 建立一個(gè)名為menu_lin的下拉式菜單,菜單中有兩個(gè)菜單項(xiàng)"查詢"和
    "退出"。"查詢"項(xiàng)下還有一個(gè)子菜單,子菜單有"按姓名"和"按學(xué)號(hào)"兩個(gè)選
    項(xiàng)。在"退出"菜單項(xiàng)下創(chuàng)建過程,該過程負(fù)責(zé)使程序返回到系統(tǒng)菜單。
    本題主要考核點(diǎn):
    本題的主要考核點(diǎn)是SQL查詢語句的使用,查詢?nèi)ハ?、下拉式菜單的建立等知識(shí)點(diǎn)
    本題解題思路:
    第1題:本題的主要考核點(diǎn)是SQL查詢語句的使用,查詢?nèi)ハ颉?BR>    SELECT 學(xué)生.學(xué)號(hào), 學(xué)生.姓名, AVG(選課.成績(jī)) as 平均分,;
     COUNT(選課.課程號(hào)) AS 選課門數(shù);
     FROM 學(xué)生!學(xué)生 INNER JOIN 學(xué)生!選課;
     INNER JOIN 學(xué)生!課程;
     ON 課程.課程號(hào) = 選課.課程號(hào);
     ON 學(xué)生.學(xué)號(hào) = 選課.學(xué)號(hào);
     GROUP BY 學(xué)生.姓名;
     HAVING COUNT(選課.課程號(hào))>=5;
     ORDER BY 3 DESC;
     INTO TABLE stu_temp.dbf
    第2題:本題的主要考核點(diǎn)是菜單的建立。
    新建菜單可按下列步驟:選擇"文件"菜單中的"新建"命令,在"新建"對(duì)話框中選擇"菜單",單擊"新建文件"按鈕。在 "新建菜單"對(duì)話框中選擇"菜單"按鈕,調(diào)出"菜單設(shè)計(jì)器"。也可用CREATE MENU命令直接調(diào)出菜單設(shè)計(jì)器。在菜單名稱中填入"查詢"、"退出","查詢"結(jié)果為子菜單,單擊編輯;在子菜單的菜單名稱中輸入"按姓名"、"按學(xué)號(hào) ","退出"結(jié)果為過程,單擊編輯,填入"SET SYSMENU TO DEFAULT"(不要引號(hào))。
    三、綜合應(yīng)用(1小題,計(jì)30分)
     設(shè)計(jì)名為mystu的表單(控件名為form1,文件名為mystu)。表單的標(biāo)題為
    "學(xué)生學(xué)習(xí)情況統(tǒng)計(jì)"。 表單中有一個(gè)選項(xiàng)組控件(命名為myOption)和兩個(gè)命
    令按鈕"計(jì)算"(名稱為Command1)和"退出"(名稱為Command2)。其中, 選項(xiàng)組
    控件有兩個(gè)按鈕"升序"(名稱為Option1)和"降序"(名稱為Option2)。
     運(yùn)行表單時(shí),首先在選項(xiàng)組控件中選擇"升序"或"降序", 單擊"計(jì)算"命令按
    鈕后,按照成績(jī)"升序"或"降序"(根據(jù)選項(xiàng)組控件)將選修了"C語言"的學(xué)生學(xué)號(hào)和
    成績(jī)分別存入stu_sort1.dbf和stu_sort2.dbf文件中。
     單擊"退出"按鈕關(guān)閉表單。
    本題主要考核點(diǎn):
     表單的創(chuàng)建、控件的屬性的修改、表單的退出、SQL查詢等知識(shí)點(diǎn)
    本題解題思路:
    第一步:在Visual FoxPro主窗口中按下組合鍵Ctrl+N,系統(tǒng)彈出"新建"對(duì)話框,在文件類型中選擇"表單",點(diǎn)擊"新建文件"按鈕,系統(tǒng)將打開表單設(shè)計(jì)器;或直接在命令窗口中輸入 crea form mystu。
    第二步:點(diǎn)擊工具欄按鈕"表單控件工具欄",在彈出的"表單控件"對(duì)話框中,選中"選項(xiàng)按鈕組"控件,在表單設(shè)計(jì)器中拖動(dòng)鼠標(biāo),這樣在表單上得到一個(gè)"選項(xiàng)按鈕組"控件optiongroup1,用類似的方法為表單加入一個(gè)"命令按鈕"控件command2,二個(gè)"文本框 "控件text1和text2。
    相關(guān)控件的屬性值如下表所示:
    對(duì)象 屬性 屬性值
    Form1 Caption 學(xué)生學(xué)習(xí)情況統(tǒng)計(jì)
    Optiongroup1 Name myOption
    MyOption.option1 Caption 升序
    MyOption.option2 Caption 降序
    Command1 Caption 計(jì)算
    Command2 Caption 退出
    ***命令按鈕command1(計(jì)算)的Click事件代碼如下****
    DO CASE
    CASE THISFORM.myOption.VALUE=1
    SELECT 學(xué)生.學(xué)號(hào), 選課.成績(jī);
     FROM 學(xué)生!課程 INNER JOIN 學(xué)生!選課;
     INNER JOIN 學(xué)生!學(xué)生 ;
     ON 學(xué)生.學(xué)號(hào) = 選課.學(xué)號(hào) ;
     ON 課程.課程號(hào) = 選課.課程號(hào);
     WHERE AT("C語言",課程.課程名稱) > 0;
     ORDER BY 選課.成績(jī);
     INTO TABLE stu_sort1
    CASE THISFORM.myOption.VALUE=2
    SELECT 學(xué)生.學(xué)號(hào), 選課.成績(jī);
     FROM 學(xué)生!課程 INNER JOIN 學(xué)生!選課;
     INNER JOIN 學(xué)生!學(xué)生 ;
     ON 學(xué)生.學(xué)號(hào) = 選課.學(xué)號(hào) ;
     ON 課程.課程號(hào) = 選課.課程號(hào);
     WHERE AT("C語言",課程.課程名稱) > 0;
     ORDER BY 選課.成績(jī) DESC;
     INTO TABLE stu_sort2
     ENDCASE
    ***命令按鈕command2(退出)的Click事件代碼如下***
    THISFORM.RELEASE