第二十二套
一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
在考生文件夾下完成如下操作:
1. 創(chuàng)建一個新的項目sdb_p,并在該項目中創(chuàng)建數(shù)據(jù)庫sdb。
2. 將考生文件夾下的自由表student和sc添加到sdb數(shù)據(jù)庫中。
3. 在sdb數(shù)據(jù)庫中建立表course,表結構如下:
字段名 類型 寬度
課程號 字符型 2
課程名 字符型 20
學時 數(shù)值型 2
隨后向表中輸入6條記錄,記錄內(nèi)容如下(注意大小寫):
課程號 課程名 學時
c1 C++ 60
c2 Visual FoxPro 80
c3 數(shù)據(jù)結構 50
c4 JAVA 40
c5 Visual BASIC 40
c6 OS 60
4. 為course表創(chuàng)建一個主索引,索引名為cno、索引表達式為"課程號"。
本題主要考核點:
創(chuàng)建項目、建立數(shù)據(jù)庫、自由表添加到數(shù)據(jù)庫中、在數(shù)據(jù)庫中建立表、索引的建立
解題思路:
第一步:在Visual FoxPro主窗口下按組合鍵Ctrl+N,則系統(tǒng)彈出"新建"對話框,在文件類型中選擇"項目",再點擊"新建文件"按鈕;
第二步:在彈出的"創(chuàng)建"對話框中,選定考生文件夾,在項目文件中填入"sdb_p.pjx",再點擊保存按鈕;這樣便新建了一個項目;
第三步:在彈出的項目管理器中先選擇"數(shù)據(jù)"標簽,再選擇"數(shù)據(jù)庫",后點擊"新建"按鈕;
第四步:在彈出的"新建數(shù)據(jù)庫"對話框中點擊"新建文件";
第五步:在彈出的"創(chuàng)建"對話框中,選定考生文件夾,在"數(shù)據(jù)庫名"中填入"sdb.dbc",再點擊保存按鈕;這樣便完成了數(shù)據(jù)庫的添加。
第六步:在已新建的項目sdb_p的項目管理器中先選擇"數(shù)據(jù)"標簽,再選擇"表",后點擊"添加(A)",在彈出的"打開"對話框中選定考生文件夾下的表STUDENT,再點擊保存,這樣自由表就添加到了數(shù)據(jù)庫中。用同樣的方法將表SC也添加到數(shù)據(jù)庫中,在索引類型列中選擇"主索引",在索引表達式列中填入"課程號",點擊"確定"按鈕,保存表結構。
第十步:向表course.dbf輸入內(nèi)容,并保存。
二、簡單應用(2小題,每題20分,計40分)
在考生文件夾下完成如下簡單應用:
1. 根據(jù)sdb數(shù)據(jù)庫中的表用SQL SELECT命令查詢學生的學號、姓名、課程名和成績,結果按 "課程名"升序排序,"課程名"相同時按"成績"降序排序,并將查詢結果存儲到sclist表中。
2. 使用表單向導選擇student表生成一個名為form1的表單。要求選擇student 表中所有字段,表單樣式為"陰影式";按鈕類型為"圖片按鈕";排序字段選擇 學號"(升序);表單標題為"學生基本數(shù)據(jù)輸入維護"。
本題主要考核點:
SQL語言中的查詢、聯(lián)接查詢、查詢的排序、查詢的結果去向、利用表單向導建立表單等知識點。
解題思路:
第一小題:本題要用一個聯(lián)接查詢來實現(xiàn)。要得到的信息存放在三個不同的表中,所以要通過聯(lián)接來得到所需要的信息。聯(lián)接的條件:STUDENT.學號=SC.學號 AND SC.課程號=COURSE.課程號放在WHERE子句的后面;結果集的排序需要ORDER BY子句,排序默認是升序如果要以降序排序需要DESC;結果要放入一個永久表中要用到INTO TABLE 子句,完整的查詢語句:
SELECT STUDENT.學號,姓名,課程名,成績;
FROM STUDENT,SC,COURSE;
WHERE STUDENT.學號=SC.學號 AND SC.課程號=COURSE.課程號;
ORDER BY 課程名,成績 DESC;
INTO TABLE SCLIST
第二小題:
第一步:打開在基本操作題中所建立的項目"sdb_p.pjx"
第二步:在項目sdb_p的項目管理器中,先選擇"文檔"標簽,再選擇"表單",后點擊"新建(N)"按鈕。
第三步:在彈出的"新建表單"對話框中點擊"表單向導(W)",并在彈出的"向導選取"對話框中,在"選擇要使用的向導"中選擇"表單向導",點擊"確定"按鈕.
第四步:在"表單向導"步驟一的字段選取中,選定student表,并將其全部字段放入"選定字段"中,點擊下一步;在步驟二的選擇表單樣式中的樣式類型中選擇"陰影式",在"按鈕類型"中選擇"圖片按鈕",點擊下一步;在步驟三排序次序中選擇按學號的升序排序,點擊下一步;在步驟四完成中在表單標題文本框中輸入:學生基本輸入數(shù)據(jù)維護,點擊"完成"按鈕。在彈出的"另存為"對話框,從對話框中選定考生文件夾,并輸入form1.scx,點擊"保存"按鈕即可。
三、綜合應用(1小題,計30分)
1.打開基本操作中建立的數(shù)據(jù)庫sdb,使用SQL的CREATE VIEW命令定義一個名稱為SVIEW的視圖,該視圖的SELECT語句完成查詢:選課數(shù)是3門以上(不包括3門)的每個學生的學號、姓名、平均成績、低分和選課數(shù),并按"平均成績" 降序排序。后將定義視圖的命令代碼存放到命令文件T1.PRG中并執(zhí)行該文件。接著利用報表向導制作一個報表。要求選擇SVIEW視圖中所有字段;記錄不分組;報表樣式為"隨意式";排序字段為 "學號"(升序);報表標題為"學生成績統(tǒng)計一覽表";報表文件名為pstudent。
2.設計一個名稱為form2的表單,表單上有"瀏覽"(名稱為Command1)和"打印"(Command2)兩個命令按鈕。鼠標單擊"瀏覽"命令按鈕時,先打開數(shù)據(jù)庫sdb,然后執(zhí)行SELECT語句查詢前面定義的 SVIEW視圖中的記錄(兩條命令不可以有多余命令),鼠標單擊"打印"命令按鈕時,調用報表文件pstuden瀏覽報表的內(nèi)容(一條命令,不可以有多余命令)。
本題主要考核點:
視圖的建立方法、利用報表向導建立報表的方法、表單的建立方法等知識點
解題思路:
第一小題:
先打開數(shù)據(jù)庫SDB,打開考生文件夾下新建的項目"sdb_p.pjx",在命令窗口中輸入下列命令來建立sview視圖:
CREATE VIEW SVIEW AS;
SELECT SC.學號,姓名,AVG(成績) AS 平均成績,MIN(成績) AS 低分,COUNT(課程號) AS 選課數(shù);
FROM SC,STUDENT;
WHERE SC.學號=STUDENT.學號;
GROUP BY STUDENT.學號;
HAVING COUNT(課程號)>3;
ORDER BY 平均成績 DESC
下面來建立T1.prg程序,在項目sdb_p的項目管理器中,選擇"代碼"標簽,再選擇"程序",點擊"新建(N)"按鈕,在打開的代碼編輯窗口中輸入sview視圖的查詢代碼,即:SELECT SC.學號,姓名,AVG(成績) AS 平均成績,MIN(成績) AS 低分,COUNT(課程號) AS 選課數(shù);
FROM SC,STUDENT;
WHERE SC.學號=STUDENT.學號;
GROUP BY STUDENT.學號;
HAVING COUNT(課程號)>3;
ORDER BY 平均成績 DESC
選擇工具欄的保存按鈕,以文件名T1.prg保存在考生文件夾下。
利用表單向導來建立表單:在項目sdb_p的項目管理器中,選擇"文檔"標簽,再選擇"報表",點擊"新建(N)"按鈕,在彈出的"新建報表"對話框中選擇"報表向導",在彈出的"向導選取"對話框中選擇"報表向導",點擊"確定"按鈕,彈出"報表向導",在"報表向導"步驟一字段選取中選擇sview視圖中的所有字段,然后點擊"下一步";在"報表向導"的步驟二分組記錄中直接點擊"下一步";在步驟三選擇報表樣式中,選擇報表樣式類型為"隨意式",然后點擊"下一步";在步驟五排序記錄中選擇按學號的升序,然后點擊"下一步";在步驟六完成中輸入報表的標題:學生成績統(tǒng)計一覽表,然后點擊"完成",在彈出的"另存為"對話框中的"保存報表為:"文本框中輸入:pstudent.frx報表名,保存在考生文件夾下即可。
第二小題:在項目sdb_p的項目管理器中,選擇"文檔"標簽,再選擇"表單",點擊"新建(N)"在彈出的"新建表單"對話框中點擊"新建表單",系統(tǒng)打開表單設計器;點擊工具欄按鈕"表單控件工具欄",在彈出的"表單控件"中,選中"命令按鈕",在表單設計器中拖動鼠標,這樣在表單上得到一個"命令按鈕"對象command1,設置它的caption屬性為"瀏覽",
雙擊command1在打開的代碼編輯器窗口中輸入以下代碼:
open data sdb
select * from sview
作為command1的CLICK的事件代碼。
用同樣的方法,在表單上放置command2對象,它的Click的事件代碼為:
REPORT FORM PSTUDENT.FRX PREVIEW
以文件名form2.scx保存表單,并且保存在考生文件夾下。