2004年全國計算機等級考試二級VFP全真上機試題解析

2004年全國計算機等級考試二級vfp全真上機試題解析

牐  第1題:

牐 1. 建立選單query_menu。該選單只有"查詢"和"退出"兩個主選單項(條形選單), 其中單擊選單項"退出"時,返回到vfp系統選單(相應命令寫在命令框中,不要 寫在過程中)。
牐 2. 將course表的"開課系部"欄位名改為"開課單位",其餘不變。
牐 3. 從資料庫score_manager中移去表temp2.dbf(不是刪除)。
牐 4. 將score1表中記錄按學號從低到高排序,在學號相同的情況下再按成績從高
牐 到低排序,排序結果存入表new_order。

牐牨咎庵饕考核點:
牐牪說サ慕立、欄位改名、資料庫表的邏輯刪除、表的排序及查詢去向等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題的主要考核點是選單的建立。新建選單可按下列步驟:選擇"檔案"選單中的"新建"命令,在"新建"對話框中選擇"選單",單擊"新建檔案"按鈕。在"新建選單"對話框中選擇"選單"按鈕,調出"選單設計器"。也可用create menu命令直接調出選單設計器。在選單名稱中填入"查詢"、"退出","退出"結果為命令"set sysmenu to default"。
牐牭2題:本題的主要考核點是欄位的改名。
牐牬蚩猚ourse表表設計器,將游標移動到"開課系部"欄位格中,將其改為"開課單位"。
牐牭3題:本題的主要考核點是資料庫表的邏輯刪除。
牐牬蚩考生資料夾下的" score_manager "資料庫,在" score_manager "資料庫設計器中,選中"temp2"表,點擊主選單"資料庫"下的"移去",在彈出的對話框中點擊"移去"按鈕,在隨後彈出的對話框中點擊"是"按鈕,至此便完成了"從資料庫"score_manager"中移去表temp2(不是刪除)"的操作。
牐牭4題:本題的主要考核點是表的排序知識,查詢去向。
牐爏elect * from score1 order by 學號,成績 desc into table new_order

牐牭2題:

牐 1. 在score_manager資料庫中統計選修了課程的學生人數(選修多門時,只計算1次),統計結果保存在一個新表new_table中, 表中只有一個欄位,欄位名為學生人數。
牐 2. 在score_manager資料庫中查詢沒有學生選修的課程,查詢結果含"課程名"和"開課單位"欄位,結果按課程名升序保存在一個新表new_table2中(注意:欄位名"開課單位"是在基本操作中根據"開課系部"修改後的欄位名)。
牐牨咎庵饕考核點:本題的主要考核點是sql查詢語句的使用,查詢去向等知識點。
牐牨咎飩饊饉悸罰旱1題: 本題可以通過新建一個程式來實現統計,相關代碼如下所示:
牐爏elect student.姓名;
牐 from course inner join score1;
牐 inner join student ;
牐 on student.學號 = score1.學號 ;
牐 on course.課程號 = score1.課程號;
牐 where course.課程號 = score1.課程號;
牐 group by student.姓名;
牐 into cursor temp
牐爏elect count(姓名) as 學生人數 from temp;
牐爄nto table new_table
牐 第2題:本題的主要考核點是sql查詢語句的使用。
牐 select course.課程名, course.開課單位;
牐 from course left outer join score1;
牐 left outer join student ;
牐 on student.學號 = score1.學號 ;
牐 on course.課程號 = score1.課程號;
牐 where course.課程號 !=score1.課程號;
牐 order by course.課程名;
牐 into table new_table2.dbf

牐牭3題:

牐 score_manager資料庫中含有三個資料庫表student、score1和course。 為了對score_manager資料庫數據進行查詢,設計一個表單myform3(控制項名為form1,表單檔案名稱為myform3)。表單標題為"成績查詢";表單有"查詢"(名稱為command1)和"退出"(名稱為command2)兩個命令按鈕。表單運行時,單擊"查詢"按鈕,查詢每門課程的最高分,查詢結果中含"課程名"和"最高分"欄位,結果按課程名升序保存在表new_table3。 單擊"退出"按鈕,關閉表單。
牐牨咎庵饕考核點: 表單檔案的創建、控制項的屬性的修改、sql語句運用、表單的退出等知識點
牐牨咎飩饊饉悸罰
牐牭諞徊劍涸趘isual foxpro主視窗中按下組合鍵ctrl+n,系統彈出"新建"對話框,在檔案類型中選擇"表單",點擊"新建檔案"按鈕,系統將打開表單設計器;或直接在命令視窗中輸入 crea form myform3。
牐牭詼步:點擊工具列按鈕"表單控制項工具列",在彈出的"表單控制項"工具列中,選中"命令按鈕"控制項,在表單設計器中拖動滑鼠,這樣在表單上得到一個"命令按鈕"控制項command1,用同樣的方法為表單再加入一個"命令按鈕"控制項command2;
牐犗喙乜丶的屬性值如下:
牐牰韻 屬性 屬性值
牐爁orm1 caption 成績查詢
牐燾ommand1 caption 查詢
牐燾ommand2 caption 退出
牐****命令按鈕command1(查詢)的click事件代碼如下****
牐爏elect course.課程名, max(score1.成績) as 最高分;
牐 from course inner join score1;
牐 inner join student ;
牐 on student.學號 = score1.學號 ;
牐 on course.課程號 = score1.課程號;
牐 group by course.課程名;
牐 into table new_table3
牐****命令按鈕command2(退出)的click事件代碼如下****
牐 thisform.release

牐牭4題:

牐1. 打開資料庫score_manager, 該資料庫中含三個有聯繫的表student、score1 和course, 根據已經建立好的索引, 建立表之間聯繫。
牐 2. 為course表增加欄位:開課學期(n,2,0)。
牐 3. 為score1表"成績"欄位設定欄位有效性規則: 成績>=0,出錯提示信息是: "成績必須大於或等於零"。
牐 4. 將score1表"成績"欄位的默認值設定為空值(null)。
牐牨咎庵饕考核點:為已建立索引的表建立聯繫、設定欄位的默認值、欄位的添加、欄位有效性的設定等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題的主要考核點是建立兩個表之間永久聯繫。
牐犜詬副碇醒≈兄魎饕,按住滑鼠拖動至子表相應的普通索引上,釋放滑鼠,聯繫即已建立。
牐牭2題:本題的主要考核點是欄位的添加的方法。
牐牬蚩猚ourse表表設計器,將游標移動到最後的空欄位格中,輸入新的欄位名、欄位類型及長度。
牐牭3題:本題的主要考核點是欄位有效性的設定。
牐犜詒砩杓破髦校選中"成績"欄位,在"欄位有效性"中的"規則"文本框中填入: 成績>=0,在"信息"文本框中中填入"成績必須大於或等於零",單擊確定。
牐牭4題:本題的主要考核點是欄位默認值的設定。
牐犜詒砩杓破鞫曰翱蛑校選擇"成績"欄位,點擊null列下的按鈕(表示此列允許空值),然後再在"欄位有效性"中的默認值中填入.null.,單擊確定。

牐牭5題:

牐 1. 在score_manager資料庫中查詢學生的姓名和年齡(計算年齡的公式是:2003-year(出生日期),年齡作為欄位名),結果保存在一個新表new_table1中。使用報表嚮導建立報表new_report1,用報表顯示new_table1的內容。報表
牐犞惺據按年齡升序排列,報表標題是"姓名-年齡",其餘參數使用預設參數。
牐 2. 在score_manager資料庫中查詢沒有選修任何課程的學生信息,查詢結果包括"學號"、"姓名"和"系部"欄位,查詢結果按學號升序保存在一個新表new_table2中。
牐牨咎庵饕考核點:
牐牨咎獾鬧饕考核點是sql查詢語句的使用,查詢去向、報表嚮導的使用等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題的主要考核點是sql查詢語句的使用,查詢去向、報表嚮導的使用。
牐爏elect 姓名, 2003-year(出生日期) as 年齡;
牐 from student;
牐 into table new_table1.dbf
牐犉舳報表嚮導可在"檔案"選單中選擇"新建"或者單擊工具列上的"新建"按鈕,打開"新建"對話框,檔案類型選擇報表,單擊嚮導按鈕。或者在"工具"選單中選擇"嚮導"子選單,選擇"報表",或直接單擊工具列上的"報表嚮導"圖示按鈕。然後按照嚮導提示操作即可。
牐牭2題:本題的主要考核點是sql查詢語句的使用。
牐爏elect student.學號, student.姓名, student.系部;
牐 from course right outer join score1;
牐 right outer join student ;
牐 on student.學號 = score1.學號 ;
牐 on course.課程號 = score1.課程號;
牐 where student.學號 != score1.學號 ;
牐 order by student.學號;
牐 into table new_table2.dbf

牐牭6題:

牐 1. 用sql語句完成下列操作: 將選課在5門課程以上(包括5門)的學生的學號、姓名、平均分和選課門數按平均分降序排序,並將結果存放於資料庫表stu_temp(欄位名為學號、姓名、平均分和選課門數)。
牐 2. 建立一個名為menu_lin的下拉式選單,選單中有兩個選單項"查詢"和"退出"。"查詢"項下還有一個子選單,子選單有"按姓名"和"按學號"兩個選項。在"退出"選單項下創建過程,該過程負責使程式返回到系統選單。
牐牨咎庵饕考核點:sql查詢語句的使用,查詢去向、下拉式選單的建立等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題的主要考核點是sql查詢語句的使用,查詢去向。
牐爏elect 學生.學號, 學生.姓名, avg(選課.成績) as 平均分,;
牐 count(選課.課程號) as 選課門數;
牐 from 學生!學生 inner join 學生!選課;
牐 inner join 學生!課程;
牐 on 課程.課程號 = 選課.課程號;
牐 on 學生.學號 = 選課.學號;
牐 group by 學生.姓名;
牐 having count(選課.課程號)>=5;
牐 order by 3 desc;
牐 into table stu_temp.dbf
牐牭2題:本題的主要考核點是選單的建立。
牐犘陸ú說タ砂聰鋁脅街瑁貉≡"檔案"選單中的"新建"命令,在"新建"對話框中選擇"選單",單擊"新建檔案"按鈕。在"新建選單"對話框中選擇"選單"按鈕,調出"選單設計器"。也可用create menu命令直接調出選單設計器。在選單名稱中填入"查詢"、"退出","查詢"結果為子選單,單擊編輯;在子選單的選單名稱中輸入"按姓名"、"按學號","退出"結果為過程,單擊編輯,填入"set sysmenu to default"(不要引號)。

牐牭7題:

牐 設計名為mystock的表單(控制項名,檔案名稱均為mystock)。表單的標題為:"股票持有情況"。表單中有兩個文本框(text1和text2)和兩個命令按鈕"查詢" (名稱為command1)和"退出"(名稱為command2)。 運行表單時,在文本框text1中輸入某一股票的漢語拼音,然後單擊"查詢",則text2中會顯示出相應股票的持有數量。 單擊"退出"按鈕關閉表單。

牐牨咎庵饕考核點:
牐 表單的創建、控制項的屬性的修改、表單的退出、sql查詢等知識點
牐牨咎飩饊饉悸罰
牐牭諞徊劍涸趘isual foxpro主視窗中按下組合鍵ctrl+n,系統彈出"新建"對話框,在檔案類型中選擇"表單",點擊"新建檔案"按鈕,系統將打開表單設計器;或直接在命令視窗中輸入crea form mystock。
牐牭詼步:點擊工具列按鈕"表單控制項工具列",在彈出的"表單控制項"對話框中,選中"命令按鈕"控制項,在表單設計器中拖動滑鼠,這樣在表單上得到一個"命令按鈕"控制項command1,用類似的方法為表單加入一個"命令按鈕"控制項command2,二個"文本框"控制項text1和text2。
牐犗喙乜丶的屬性值如下表所示:
牐牰韻 屬性 屬性值
牐爁orm1 name mystock
牐 caption 股票持有情況
牐燾ommand1 caption 查詢
牐燾ommand2 caption 退出
牐***命令按鈕command1(查詢)的click事件代碼如下****
牐爏elect stock_sl.持有數量;
牐 from stock!stock_name inner join stock!stock_sl ;
牐 on stock_name.股票代碼 = stock_sl.股票代碼;
牐 where stock_name.漢語拼音 = alltrim(thisform.text1.value);
牐 into array temp
牐爐hisform.text2.value=temp
牐***命令按鈕command2(退出)的click事件代碼如下***
牐 thisform.release

牐牭8題:

牐1. 使用報表嚮導建立一個簡單報表。要求選擇客戶表customer中所有欄位;記錄不分組;報表樣式為隨意式;列數為"1",欄位布局為"列",方向為"縱向";排序欄位為"會員號",升序;報表標題為"客戶信息一覽表";報表檔案名稱為
牐爉yreport。
牐 2.使用命令建立一個名稱為sb_view的視圖,並將定義視圖的命令代碼存放到命令檔案pview.prg。視圖中包括客戶的會員號(來自customer表)、姓名(來自customer表)、客戶所購買的商品名(來自article表)、單價(來自orderitem
牐牨恚、數量(來自orderitem表)和金額(orderitem.單價 * orderitem.數量),結果按會員號升序排序。
牐 本題主要考核點: 報表嚮導的使用,用命令建立視圖等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題的主要考核點是使用報表嚮導製作報表。
牐犉舳報表嚮導可在"檔案"選單中選擇"新建"或者單擊工具列上的"新建"按鈕,打開"新建"對話框,檔案類型選擇報表,單擊嚮導按鈕。或者在"工具"選單中選擇"嚮導"子選單,選擇"報表",或直接單擊工具列上的"報表嚮導"圖示按鈕。然後按照嚮導提示操作即可。
牐牭2題:本題的主要考核點是用命令建立視圖。
牐燾rea view sb_view
牐爏elect customer.會員號, customer.姓名, article.商品名, orderitem.單價,;
牐 orderitem.數量, orderitem.單價 * orderitem.數量 as 金額;
牐 from ecommerce!customer inner join ecommerce!orderitem;
牐 inner join ecommerce!article on article.商品號 = orderitem.商品號 ;
牐 on customer.會員號 = orderitem.會員號 order by customer.會員號

牐牭9題:

牐 1. 打開ecommerce資料庫,並將考生資料夾下的自由表orderitem添加到該數據 庫。
牐 2. 為orderitem表創建一個主索引,索引名為pk,索引表達式為"會員號+商品號"; 再為orderitem創建兩個普通索引(升序),一個的索引名和索引表達式均是 "會員號";另一個的索引名和索引表達式均是"商品號"。
牐 3.通過"會員號"欄位建立客戶表customer和訂單表orderitem之間的永久聯繫( 注意不要建立多餘的聯繫)。
牐 4.為以上建立的聯繫設定參照完整性約束:更新規則為"級聯";刪除規則為 "限制";插入規則為"限制"。
牐牨咎庵饕考核點:
牐牻一個自由表添加到資料庫中、表索引的建立、表之間的永久聯繫的建立、參照完整性約束的編輯等知識點
牐牨咎飩饊饉悸罰
牐牭1題:打開考生資料夾下的"ecommerce"資料庫,打開資料庫選單選擇"添加表(a)",在彈出的"打開"對話框中,選定考生資料夾下的orderitem表,再點擊"確定"即可,這樣表order_detail就添加到了"ecommerce"資料庫中。
牐牭2題:在資料庫設計器中選中表orderitem,在主選單中選擇"修改(y)",彈出表設計器,選擇表設計器"索引"標籤,在索引名列中填入"pk",在索引類型列中選擇"主索引",在索引表達式列中填入"會員號+商品號",用同樣的方法再為orderitem創建兩個普通索引(升序),一個的索引名和索引表達式均是"會員號";另一個的索引名和索引表達式均是"商品號"點擊"確定"按鈕,保存表結構。
牐牭3題:在資料庫設計器中,選中customer表中的索引"會員號"並拖動到表orderitem的"會員號"的索引上並鬆開,這樣兩個表之間就建立起了永久聯繫。
牐 第4題:在第3題建立好永久聯繫之後,在兩處表的"會員號"索引之間有一條線,單擊這條表示兩個表之間聯繫的線,線會加粗,此時在主選單中選擇"資料庫"中的"編輯參照完整性(i)",系統彈出"參照完整性生成器"對話框,在"更新規則"標籤中,選擇"級聯"規則,在"刪除"規則中選擇"限制",在"插入規則"中選擇"限制",單擊"確定"保存所編輯的參照完整性。

牐牭10題:

牐 1. modi1.prg 程式檔案中 sql select語句的功能是查詢哪些零件(零件名稱)目前用於三個項目, 並將結果按升序存入文本檔案 results.txt。 給出的sql select 語句中在第 1、3、5 行各有一處錯誤,請改正並運行程式(不可以增、刪語句或短語,也不可以改變語句行)。
牐 2.根據項目信息(一方)和使用零件(多方)兩個表、利用一對多報表嚮導建立一個報表,報表中包含項目號、項目名、項目負責人、(聯繫)電話、(使用的)零件號和數量等6個欄位,報表按項目號升序排序,報表樣式為經營式,在
牐犠芙崆域(細節及總結)包含零件使用數量的合計,報表標題為"項目使用零件信息",報表檔案名稱為report。
牐牨咎庵饕考核點:vfp命令,報表嚮導的使用等知識點
牐牨咎飩饊饉悸罰
牐牭1題:本題是一個程式修改題。第一處錯誤select 零件名稱 from 零件信息 where 零件號 =,應改為select 零件名稱 from 零件信息 where 零件號 in;第二處錯誤為group by 項目號 having count(項目號) = 3),應改為group by 零件號 having count(項目號) = 3);第三處錯誤為in file results,應改為to file results
牐牭2題:本題的主要考核點是使用報表嚮導製作報表。
牐犉舳報表嚮導可在"檔案"選單中選擇"新建"或者單擊工具列上的"新建"按鈕,打開"新建"對話框,檔案類型選擇報表,單擊嚮導按鈕。或者在"工具"選單中選擇"嚮導"子選單,選擇"報表",或直接單擊工具列上的"報表嚮導"圖示按鈕。然後按照嚮導提示操作即可。