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