三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有股票管理數(shù)據(jù)庫(kù)stock_6,數(shù)據(jù)庫(kù)中有stock_mm表和stock_cs表,stock_mm的表結(jié)構(gòu)是股票代碼C(6)、買賣標(biāo)記L(.T.表示買進(jìn),.F.表示賣出),單價(jià)N(7.2)、本次數(shù)量N(6)。tock_cs的表結(jié)構(gòu)是股票代碼C(6),買入次數(shù)N(4),最高價(jià)N(7.2)。stock_mm表中一只股票對(duì)應(yīng)多個(gè)記錄,stock_cs表中一只股票對(duì)應(yīng)一個(gè)記錄(stock_cs表開始時(shí)記錄個(gè)數(shù)為0)
請(qǐng)編寫并運(yùn)行符合下列要求的程序:
(1)設(shè)計(jì)一個(gè)名為stock_m菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
程序運(yùn)行時(shí),單擊"計(jì)算"菜單項(xiàng)應(yīng)完成的操作是計(jì)算每支股票的買入次數(shù)和 (買入時(shí)的)最高價(jià)存入stock_cs表中,買賣標(biāo)記.T.(表示買進(jìn))
(注意:stock_cs表中的記錄按股票代碼從小到大的物理順序存放)。
(2)根據(jù)stock_cs表計(jì)算買入次數(shù)最多的股票代碼和買入次數(shù)存儲(chǔ)到的stock_x表
中(與stock_cs表對(duì)應(yīng)字段名稱和類型一致)。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢語(yǔ)言(SQL)中的聯(lián)接查詢、查詢的排序、分組查詢、臨時(shí)表的概念、查詢結(jié)果的去向等知識(shí)點(diǎn)。
本題解題思路:
第一步:利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"計(jì)算"的菜單項(xiàng)的結(jié)果列中選擇"過(guò)程",并通過(guò)單擊"編輯"按鈕打開一個(gè)窗口來(lái)添加"計(jì)算"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令:SET SYSMENU TO DEFAULT
第二步:在單擊"計(jì)算"菜單項(xiàng)后面的"編輯"按鈕所打開的窗口中添加如下的過(guò)程代碼:
SET TALK OFF &&在程序運(yùn)行時(shí)關(guān)閉命令提示
SET SAFETY OFF &&不出現(xiàn)文件重名的提示
OPEN DATABASE STOCK_6 &&打開數(shù)據(jù)庫(kù)文件STOCK_6
SELECT 股票代碼,COUNT(*) AS 買入次數(shù),MAX(單價(jià)) AS 最高價(jià);
FROM STOCK_MM;
WHERE 買賣標(biāo)記;
GROUP BY 股票代碼;
ORDER BY 股票代碼;
INTO ARRAY AFieldsValue
&&要得到的結(jié)果集是在買入的股票中統(tǒng)計(jì)的,所以要用WHERE 進(jìn)行限制
&&由于要得到每支股票的買入次數(shù)及買入時(shí)的最高價(jià),所以要用到SELECT語(yǔ)句的分組查詢,
&&這里要以股票代碼作為分組的依據(jù),所以要將GROUP BY 股票代碼 放在WHERE的后面
&&要以股票代碼從小到大的順序進(jìn)行排序要用到ORDER BY股票代碼;由于要得到的是買入的次數(shù)
&&買入時(shí)的最高價(jià)所以這里要用到聚合函數(shù)COUNT和MAX,COUNT()函數(shù)可得到組中項(xiàng)目的數(shù)量,
&&MAX()函數(shù)可得到最大值
DELETE FROM STOCK_CS
&&刪除STOCK_CS中以前的記錄
&&DELETE SQL語(yǔ)句來(lái)刪除表中的記錄
&& DELETE FROM [數(shù)據(jù)庫(kù)名!]表名
&&[WHERE 條件表達(dá)式11 [AND | OR 條件表達(dá)式2 ...]]
INSERT INTO STOCK_CS FROM ARRAY AfieldsValue
&&INSERT SQL語(yǔ)句向表中追加記錄
&&INSERT SQL語(yǔ)句基本樣式為:INSERT INTO 表名 (字段名1,字段名2,…)
&&VALUES (表達(dá)式1,表達(dá)式2,...)
&&另有一種可以從一個(gè)數(shù)組中數(shù)據(jù)追加到表中或從一些和字段名相同的內(nèi)存變量
&&INSERT INTO 表名 FROM ARRAY 數(shù)組名 | FROM MEMVAR
USE STOCK_CS
PACK
&&物理刪除已打刪除標(biāo)記的記錄
USE
SELECT * TOP 1 FROM STOCK_CS ORDER BY 買入次數(shù) DESC INTO TABLE STOCK_X
&&在SELECT SQL語(yǔ)句中可以指定結(jié)果集返回的行數(shù) TOP n [PERCENT],如果沒(méi)有PERCENT
&& n指定返回的行數(shù),如果指定PERCENT指定返回的百分比
&& 可以利用INTO TABLE 表名 將返回的結(jié)果集存入一個(gè)永久表中
SET SAFETY ON
SET TALK ON
第三步:以stock_m為文件名保存菜單,并生成菜單,最后運(yùn)行生成的菜單。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試沖刺備考指導(dǎo)專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |