三、綜合應用(1小題,計30分)
在考生文件夾下有學生管理數(shù)據(jù)庫stu_7,該庫中有CHENGJI表和XUESHENG表,
各表結構如下:
(1) CHENGJI表(學號C(9)、課程號C(3)、成績N(7.2)),該表用于記錄學生的考試成績,單一個學生可以有多項記錄(登記一個學生的多門成績)。
(2) XUESHENG表(學號C(9)、姓名C(10)、平均分N(7.2)),該表是學生信息,一個學生只有一個記錄(表中有固定的已知數(shù)據(jù))。
請編寫并運行符合下列要求的程序:
設計一個名為form_stu的表單,表單中有兩個命令按鈕,按鈕的名稱分別為
cmdYes和cmdNo,標題分別為"統(tǒng)計"和"關閉"。
程序運行時,單擊"統(tǒng)計"按鈕應完成下列操作:
(1) 根據(jù)CHENGJI表計算每個學生的平均分,并將結果存入XUESHENG表的平均分字段。
(2) 根據(jù)上面的計算結果,生成一個新的自由表 pingjun,該表的字段按順序取自XUESHENG表的學號、姓名和平均分三項,并且按平均分升序排序,如果平均分相等,則按學號升序排序。單擊"關閉"按鈕,程序終止運行。
本題主要考核點:
表單的建立、程序設計中循環(huán)結構、條件結構的應用、SELECT語句的應用等知識點
解題思路:
第一步:利用表單設計器建立所要求的表單,將在表單上添加兩個按鈕控件。分別設置兩個按鈕控件的標題和名字屬性。
第二步:雙擊標題為"統(tǒng)計"的按鈕控件,在新打開的窗口中添加此按鈕的CLICK事件代碼:
SET TALK OFF &&在程序運行的情況下關閉命令執(zhí)行的結果
SET SAFETY OFF &&當出現(xiàn)文件重名時不出現(xiàn)提示
OPEN DATABASE STU_7 &&打開數(shù)據(jù)庫文件STU_7
USE XUESHENG &&在當前工作區(qū)打開XUESHENG表
DO WHILE NOT EOF() &&遍歷學生表中的每一個記錄這樣可以對每一個學生進行操作
SELECT AVG(成績) FROM CHENGJI;
WHERE 學號=XUESHENG.學號 INTO ARRAY Atemp
&&SELECT SQL語句中可以利用AVG()函數(shù)得到某一表達式的平均值
&&可以將結果集存入一個數(shù)組之中INTO ARRAY Atemp
REPLACE 平均分 WITH Atemp(1,1)
&&將所得到的平均分代替當前學號的在XUESHENG表中的平均分
SKIP
ENDDO
SELECT 學號,姓名,平均分 FROM XUESHENG;
ORDER BY 平均分,學號;
INTO TABLE PINGJUN
&&在SELECT SQL語句中可以利用ORDER BY 子句對結果集進行排序,如果有多個排序依據(jù)
&&在ORDER BY 中排在前面的優(yōu)先級更高一些,另外默認的是以升序進行排序,如果要以降
&&序進行排序,需要顯示指定DESC;對結果集可以直接放入到一個永久
&&表中:INTO TABLE 表名
CLOSE ALL
SET TALK ON
SET SAFETY ON
第三步:雙擊標題為"退出"的按鈕控件,在新打開的窗口中添加此按鈕的CLICK事件代碼:THISFORM.RELEASE &&退出表單
第四步:以文件名form_stu保存表單,并執(zhí)行表單。
相關推薦:2010年9月計算機等級考試沖刺備考指導專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |