第12套
一、基本操作題(共4小題,第1和2題是7分、第3和4題是8分)
在考生文件夾下,打開招生數(shù)據(jù)庫SDB,完成如下操作:
1.在KSB表中增加一個名為"備注"的字段、字段數(shù)據(jù)類型為"字符"、寬度為30。
2.在考生成績表KSCJB中給成績字段設置有效性規(guī)則和默認值,成績>=0 AND 成績<=150;默認值為0。
3.通過"考生號"字段建立KSB表和KSCJB表間的永久聯(lián)系,并為該聯(lián)系設置參照完整性約束:更新規(guī)則為"級聯(lián)";刪除規(guī)則為"限制";插入規(guī)則為"忽略"。
4.使用報表向?qū)Ы⒁粋簡單報表。要求選擇考生表KSB中所有字段;記錄不分組;報表樣式為隨意式;列數(shù)為1,字段布局為"列",方向為"縱向";排序字段為"考生號"(升序);報表標題為"考生成績一覽表";報表文件名為ONE.FRX。
本題的主要考核點:字段的添加、字段有效性規(guī)則的建立、默認值的設置、建立兩個表之間的聯(lián)系、設置參照完整性、使用報表向?qū)е谱鲌蟊怼?/P>
解題思路:
1、打開KSB表設計器,將光標移動到最后的空字段格中,輸入新的字段名、字段類型和寬度。
2、打開KSCJB表設計器,選擇"成績"字段,在其字段有效性規(guī)則欄中輸入:成績>=0.AND.成績<=150,在默認值欄中輸入:0。
3、在數(shù)據(jù)庫設計器中,選中KSB表中的索引"考生號"并拖動到KSCJB表的"考生號"的索引上并松開,這樣兩個表之間就建立起了永久聯(lián)系。建立好永久聯(lián)系之后,在兩處表的"考生號"索引之間有一條線,單擊這條表示兩個表之間聯(lián)系的線,線會加粗,此時在主菜單中選擇"數(shù)據(jù)庫"中的"編輯參照完整性(I)",系統(tǒng)彈出"參照完整性生成器"對話框,在"更新規(guī)則"標簽中,選擇"級聯(lián)"規(guī)則,在"刪除"規(guī)則中選擇"限制",在"插入規(guī)則"中選擇"忽略",單擊"確定"保存所編輯的參照完整性。
4、啟動報表向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對話框,文件類型選擇報表,單擊向?qū)О粹o,然后按照向?qū)崾静僮骷纯伞?/P>
二、簡單應用(2小題,每題20分,計40分)
在考生文件夾下,打開招生數(shù)據(jù)庫SDB,完成如下簡單應用:
1.使用一對多表單向?qū)нx擇KSB表和KSCJB表生成一個名為TWO的表單。要求從父表KSB中選擇所有字段,從子表KSCJB中選擇所有字段,使用"考生號"建立兩表之間的關(guān)系,樣式為陰影式;按鈕類型為圖片按鈕;排序字段為考生號(來自KSB),升序;表單標題為"考生數(shù)據(jù)輸入維護"。
2.在考生文件夾下打開命令文件THREE.PRG,該命令文件用來查詢所有成績都高于或等于平均分的學生的考生號和姓名。并將查詢結(jié)果存儲到表THREE中。
注意,該命令文件在第3行、第6行、第9行有錯誤,打開該命令文件,直接在錯誤處修改,不可改變SQL語句的結(jié)構(gòu)和短語的順序,不允許增加、刪除或合并行。
本題主要考核點:使用表單向?qū)е谱鞅韱巍⑿薷某绦蛭募?/P>
解題思路:
第1題:啟動表單向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對話框,文件類型選擇表單,單擊向?qū)О粹o,在"向?qū)нx取"對話框中選擇"一對多表單向?qū)?,然后按照表單向?qū)Р僮骷纯伞?/P>
第2題:利用"文件"菜單下的"打開"命令打開程序文件THREE.PRG。將命令文件修改為:
SELECT AVG(成績);
FROM kscjb;
INTO ARRAY tem
SELECT 考生號,姓名;
FROM ksb;
WHERE not exists;
( SELECT *;
FROM kscjb;
WHERE 成績 INTO TABLE three
三、綜合應用(1小題,計30分)
在考生文件夾下,打開招生數(shù)據(jù)庫SDB,完成如下綜合應用:
1.創(chuàng)建文件名為form的表單,將表單標題改為:錄取研究生。
2.在表單中設計"錄取"和"退出"兩個按鈕。兩個按鈕功能分別如下:
(1)在"錄取"按鈕(Command1)中,編寫程序,查詢總成績大于或等于330分的考生的考生號、姓名、性別、單位和該生的政治成績、外語成績、高數(shù)成績(即高等數(shù)學成績)、專業(yè)課成績、總成績,并將結(jié)果按總成績降序排序存儲到表FOUR中。
表FOUR(需要自己創(chuàng)建或生成)的字段名為:考生號、姓名、性別、單位、政治成績、外語成績、高數(shù)成績、專業(yè)課成績、總成績(各成績字段的類型為N(5,1),其他字段的類型與原表中一致)。
(2)單擊"退出"按鈕(Command2)時,關(guān)閉表單。
3.表單設計完成后,運行表單,單擊"錄取"按鈕進行統(tǒng)計,然后單擊"退出"按鈕關(guān)閉表單。
注:在考試科目代碼表DM中存儲了各考試科目與考試科目名對應關(guān)系。
本題主要考核點:表單文件的創(chuàng)建、控件的屬性的修改、SQL語句運用。
解題思路:
、俳⒈韱危嚎赏ㄟ^"文件"菜單下的"新建"命令或用命令CREATE FORM打開表單設計器。
、谠诒韱紊咸砑觾蓚命令按鈕,并進行適當?shù)牟贾煤痛笮≌{(diào)整。
、墼O置窗體和命令按鈕的Caption屬性值。
、茉O置"錄取"按鈕的Click事件代碼:
close all
CREATE TABLE test(考生號 C(4),政治成績 N(5,1),外語成績 N(5,1),高數(shù)成績 N(5,1),專業(yè)課成績 N(5,1),總成績 N(5,1))
use
select 2
use test
select 1
use kscjb
do while .not.eof()
select test
locate for 考生號=kscjb->考生號
if not found() then
append blank
replace 考生號 with kscjb->考生號
endif
do case
case kscjb->考試科目="101"
replace 政治成績 with kscjb->成績
case kscjb->考試科目="102"
replace 外語成績 with kscjb->成績
case kscjb->考試科目="103"
replace 高數(shù)成績 with kscjb->成績
case kscjb->考試科目="104"
replace 專業(yè)課成績 with kscjb->成績
endcase
select kscjb
skip
enddo
close all
update test set 總成績=政治成績+外語成績+高數(shù)成績+專業(yè)課成績
SELECT Ksb.考生號, Ksb.姓名, Ksb.性別, Ksb.單位, Test.政治成績,;
Test.外語成績, Test.高數(shù)成績, Test.專業(yè)課成績, Test.總成績;
FROM sdb!ksb INNER JOIN test ;
ON Ksb.考生號=Test.考生號;
WHERE Test.總成績>=330;
ORDER BY Test.總成績 DESC INTO TABLE four
、菰O置"退出"按鈕的Click事件代碼:
Release Thisform
⑥保存表單并運行,單擊"錄取"按鈕,再單擊"退出"按鈕。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |