第十套
一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
1、在考生文件夾下建立項(xiàng)目SALES_M。
2、把考生文件夾中的數(shù)據(jù)庫CUST_M加入SALES_M項(xiàng)目中。
3、為CUST_M數(shù)據(jù)庫中CUST表增加字段:聯(lián)系電話C(12),字段值允許"空"
4、為CUST_M數(shù)據(jù)庫中ORDER1表"送貨方式"字段設(shè)計(jì)默認(rèn)值為"鐵路"。
本題的主要考核點(diǎn):
項(xiàng)目的建立、將數(shù)據(jù)庫添加到項(xiàng)目中、字段的添加、為字段設(shè)置默認(rèn)值。
解題思路:
1.建立項(xiàng)目
創(chuàng)建項(xiàng)目可用"文件"菜單中的"新建"命令。
2.將數(shù)據(jù)庫加入到項(xiàng)目中:
在項(xiàng)目管理器的"數(shù)據(jù)"選項(xiàng)卡選擇數(shù)據(jù)庫,單擊"添加",在"打開"對(duì)話框中選擇要添加的數(shù)據(jù)庫
3.打開CUST表的表設(shè)計(jì)器,將光標(biāo)移動(dòng)到后的空字段格中,輸入新的字段名、字段類型及長(zhǎng)度。字段值允許為空,則選中"NULL"項(xiàng)。
4.在表設(shè)計(jì)器中,選中"送貨方式"字段,在"字段有效性-默認(rèn)值"中填入"鐵路"(此處要雙引號(hào)),單擊確認(rèn)。
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、在考生文件夾下,有一個(gè)數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT、SC和
COURSE。表結(jié)構(gòu)如下:
STUDENT(學(xué)號(hào),姓名,年齡,性別,院系號(hào))
SC(學(xué)號(hào),課程號(hào),成績(jī),備注)
COURSE(課程號(hào),課程名,先修課程號(hào),學(xué)分)
在表單向?qū)е羞x取一對(duì)多表單向?qū)?chuàng)建一個(gè)表單。要求:從父表STUDENT中
選取字段學(xué)號(hào)和姓名,從子表SC中選取字段課程號(hào)和成績(jī),表單樣式選
"浮雕式",按鈕類型使用"文本按鈕",按學(xué)號(hào)降序排序,表單標(biāo)題為"學(xué)生
成績(jī)" ,后將表單存放在考生文件夾中,表單文件名是form1。
2、在考生文件夾中有一數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT,SC和COURSE。建
立成績(jī)大于等于60分,按學(xué)號(hào)升序排序的本地視圖GRADELIST,該視圖按順
序包含字段學(xué)號(hào)、姓名、成績(jī)和課程名,然后使用新建立的視圖查詢視圖中
的全部信息,并將結(jié)果存入表v_grade。
第1題,本題的主要考核點(diǎn)是使用表單向?qū)е谱鞅韱巍?BR> 啟動(dòng)表單向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對(duì)話框,文件類型選擇表單,單擊向?qū)О粹o?;蛘咴?工具"菜單中選擇"向?qū)?子菜單,選擇"表單",或直接單擊工具欄上的"表單向?qū)?圖標(biāo)按鈕。在"向?qū)нx取"對(duì)話框中選擇"一對(duì)多表單向?qū)?。然后按照表單向?qū)崾炯邦}目要求操作即可。
第2題,本題的主要考核點(diǎn)是建立視圖。
先打開數(shù)據(jù)庫SDB,在數(shù)據(jù)庫設(shè)計(jì)器中單擊右鍵,選擇"建立本地視圖",打開"視圖設(shè)計(jì)器"。將數(shù)據(jù)庫的三個(gè)表添加到視圖中,按提示建立聯(lián)接。選擇字段學(xué)號(hào)、姓名、成績(jī)和課程名,在"篩選"欄中的字段名中選擇"sc.成績(jī)",條件中選擇">=",實(shí)例中輸入"60" (不要雙引號(hào)),關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計(jì)器中打開視圖,用copy to v_grade 命令或在"文件"菜單中選擇"導(dǎo)出",將結(jié)果存入新表v_grade。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有股票管理數(shù)據(jù)庫stock_4,數(shù)據(jù)庫中有stock_mm表和stock_cc
表,stock_mm的表結(jié)構(gòu)是股票代碼C(6)、買賣標(biāo)記L(.T.表示買進(jìn),.F.表示賣
出),單價(jià)N(7.2)、本次數(shù)量N(6)。stock_cc的表結(jié)構(gòu)是股票代碼C(6),持倉
數(shù)量N(8)。 stock_mm表中一只股票對(duì)應(yīng)多個(gè)記錄,stock_cc表中一只股票對(duì)應(yīng)
一個(gè)記錄(stock_cc表開始時(shí)記錄個(gè)數(shù)為0)。
請(qǐng)編寫并運(yùn)行符合下列要求的程序:
設(shè)計(jì)一個(gè)名為menu_lin的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
程序運(yùn)行時(shí),單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
(1)根據(jù)stock_mm統(tǒng)計(jì)每只股票的持倉數(shù)量,并將結(jié)果存放到stock_cc表。計(jì)算
方法:買賣標(biāo)記為.T.(表示買進(jìn)),將本次數(shù)量加到相應(yīng)股票的持倉數(shù)量;
買賣標(biāo)記為.F.(表示賣出),將本次數(shù)量從相應(yīng)股票的持倉數(shù)量中減去。
(注意:stock_cc表中的記錄按股票代碼從小到大順序存放)。
(2)將stock_cc表中持倉數(shù)量少的股票信息存儲(chǔ)到自由表stock_x中(與
stock_cc表結(jié)構(gòu)相同)。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、臨時(shí)表的概念、查詢結(jié)果的去向等知識(shí)點(diǎn)。
本題解題思路:
第一步:利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"計(jì)算"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗口來添加"計(jì)算"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令: SET SYSMENU TO DEFAULT
第二步:在單擊"計(jì)算"菜單項(xiàng)后面的"編輯"按鈕所打開的窗口中添加如下的過程代碼:
SET TALK OFF &&在程序中常常要關(guān)閉命令結(jié)果的顯示
OPEN DATABASE STOCK_4 &&打開數(shù)據(jù)庫文件STOCK_4
SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
WHERE 買賣標(biāo)記 GROUP BY 股票代碼;
INTO CURSOR CurTable1
&&
SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
WHERE NOT 買賣標(biāo)記 GROUP BY 股票代碼;
INTO CURSOR CurTable2
SELECT CurTable1.股票代碼,(CurTable1.持倉數(shù)量-CurTable2.持倉數(shù)量) AS 持倉數(shù)量;
FROM CurTable1,CurTable2 ;
WHERE CurTable1.股票代碼=CurTable2.股票代碼;
ORDER BY CurTable1.股票代碼;
INTO ARRAY AfieldsValue
&&由于每種股票的買進(jìn)的數(shù)量的和與賣出的數(shù)量的和在兩個(gè)不同的臨時(shí)表CurTable1和
&&CurTable2中。因此要想得到兩者之間的差,需要進(jìn)行聯(lián)接查詢,可以通過"股票代碼"來
&&做為聯(lián)接的條件,置于WHERE的后面;可以用ORDER BY 子句來確定查詢的排序依據(jù),
&&這里以股票代碼的升序進(jìn)行排序:ORDER BY 股票代碼;可以利用INTO ARRAY 數(shù)組名子句
&&將SELECT語句的查詢結(jié)果放在一個(gè)數(shù)組中,以備后面的程序利用
DELETE FROM STOCK_CC
&&刪除STOCK_CC表中以前的記錄
&&DELETE SQL語句可以將滿足指定條件的記錄加上刪除標(biāo)記
&&DELETE FROM [DatabaseName!]TableName
&&[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
INSERT INTO STOCK_CC FROM ARRAY AfieldsValue
&&將所得到每支股票的代碼和持倉數(shù)量的數(shù)組插入到表STOCK_CC中
&&INSERT SQL語句可以向指定的表追加一條新的記錄
&&INSERT 可以直接將一個(gè)數(shù)組中的值做為記錄值追加到表中,
&&利用FROM ARRAY 數(shù)組變量名來實(shí)現(xiàn)
CLOSE ALL
USE STOCK_CC
PACK
&&物理刪除加上刪除標(biāo)記的記錄
USE
SELECT * 1 FROM STOCK_CC ORDER BY 持倉數(shù)量 INTO TABLE STOCK_X
&&SELECT語句中可以通過來限制返回結(jié)果集中行數(shù) n[PERCENT] n指定返回的行數(shù)。&&如果未指定 PERCENT,n 就是返回的行數(shù)。如果指定了 PERCENT,n 就是返回的結(jié)果集行的&&百分比;INTO TABLE 表名 可以將結(jié)果集生成一個(gè)表
SET TALK ON
第三步:保存所編輯的菜單為menu_lin.mnx,并生成菜單menu_lin.mpr,運(yùn)行。
一、基本操作題(共四小題,第1和2題是7分、第3和4題是8分)
1、在考生文件夾下建立項(xiàng)目SALES_M。
2、把考生文件夾中的數(shù)據(jù)庫CUST_M加入SALES_M項(xiàng)目中。
3、為CUST_M數(shù)據(jù)庫中CUST表增加字段:聯(lián)系電話C(12),字段值允許"空"
4、為CUST_M數(shù)據(jù)庫中ORDER1表"送貨方式"字段設(shè)計(jì)默認(rèn)值為"鐵路"。
本題的主要考核點(diǎn):
項(xiàng)目的建立、將數(shù)據(jù)庫添加到項(xiàng)目中、字段的添加、為字段設(shè)置默認(rèn)值。
解題思路:
1.建立項(xiàng)目
創(chuàng)建項(xiàng)目可用"文件"菜單中的"新建"命令。
2.將數(shù)據(jù)庫加入到項(xiàng)目中:
在項(xiàng)目管理器的"數(shù)據(jù)"選項(xiàng)卡選擇數(shù)據(jù)庫,單擊"添加",在"打開"對(duì)話框中選擇要添加的數(shù)據(jù)庫
3.打開CUST表的表設(shè)計(jì)器,將光標(biāo)移動(dòng)到后的空字段格中,輸入新的字段名、字段類型及長(zhǎng)度。字段值允許為空,則選中"NULL"項(xiàng)。
4.在表設(shè)計(jì)器中,選中"送貨方式"字段,在"字段有效性-默認(rèn)值"中填入"鐵路"(此處要雙引號(hào)),單擊確認(rèn)。
二、簡(jiǎn)單應(yīng)用(2小題,每題20分,計(jì)40分)
1、在考生文件夾下,有一個(gè)數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT、SC和
COURSE。表結(jié)構(gòu)如下:
STUDENT(學(xué)號(hào),姓名,年齡,性別,院系號(hào))
SC(學(xué)號(hào),課程號(hào),成績(jī),備注)
COURSE(課程號(hào),課程名,先修課程號(hào),學(xué)分)
在表單向?qū)е羞x取一對(duì)多表單向?qū)?chuàng)建一個(gè)表單。要求:從父表STUDENT中
選取字段學(xué)號(hào)和姓名,從子表SC中選取字段課程號(hào)和成績(jī),表單樣式選
"浮雕式",按鈕類型使用"文本按鈕",按學(xué)號(hào)降序排序,表單標(biāo)題為"學(xué)生
成績(jī)" ,后將表單存放在考生文件夾中,表單文件名是form1。
2、在考生文件夾中有一數(shù)據(jù)庫SDB,其中有數(shù)據(jù)庫表STUDENT,SC和COURSE。建
立成績(jī)大于等于60分,按學(xué)號(hào)升序排序的本地視圖GRADELIST,該視圖按順
序包含字段學(xué)號(hào)、姓名、成績(jī)和課程名,然后使用新建立的視圖查詢視圖中
的全部信息,并將結(jié)果存入表v_grade。
第1題,本題的主要考核點(diǎn)是使用表單向?qū)е谱鞅韱巍?BR> 啟動(dòng)表單向?qū)Э稍?文件"菜單中選擇"新建"或者單擊工具欄上的"新建"按鈕,打開"新建"對(duì)話框,文件類型選擇表單,單擊向?qū)О粹o?;蛘咴?工具"菜單中選擇"向?qū)?子菜單,選擇"表單",或直接單擊工具欄上的"表單向?qū)?圖標(biāo)按鈕。在"向?qū)нx取"對(duì)話框中選擇"一對(duì)多表單向?qū)?。然后按照表單向?qū)崾炯邦}目要求操作即可。
第2題,本題的主要考核點(diǎn)是建立視圖。
先打開數(shù)據(jù)庫SDB,在數(shù)據(jù)庫設(shè)計(jì)器中單擊右鍵,選擇"建立本地視圖",打開"視圖設(shè)計(jì)器"。將數(shù)據(jù)庫的三個(gè)表添加到視圖中,按提示建立聯(lián)接。選擇字段學(xué)號(hào)、姓名、成績(jī)和課程名,在"篩選"欄中的字段名中選擇"sc.成績(jī)",條件中選擇">=",實(shí)例中輸入"60" (不要雙引號(hào)),關(guān)閉并保存。在數(shù)據(jù)庫設(shè)計(jì)器中打開視圖,用copy to v_grade 命令或在"文件"菜單中選擇"導(dǎo)出",將結(jié)果存入新表v_grade。
三、綜合應(yīng)用(1小題,計(jì)30分)
在考生文件夾下有股票管理數(shù)據(jù)庫stock_4,數(shù)據(jù)庫中有stock_mm表和stock_cc
表,stock_mm的表結(jié)構(gòu)是股票代碼C(6)、買賣標(biāo)記L(.T.表示買進(jìn),.F.表示賣
出),單價(jià)N(7.2)、本次數(shù)量N(6)。stock_cc的表結(jié)構(gòu)是股票代碼C(6),持倉
數(shù)量N(8)。 stock_mm表中一只股票對(duì)應(yīng)多個(gè)記錄,stock_cc表中一只股票對(duì)應(yīng)
一個(gè)記錄(stock_cc表開始時(shí)記錄個(gè)數(shù)為0)。
請(qǐng)編寫并運(yùn)行符合下列要求的程序:
設(shè)計(jì)一個(gè)名為menu_lin的菜單,菜單中有兩個(gè)菜單項(xiàng)"計(jì)算"和"退出"。
程序運(yùn)行時(shí),單擊"計(jì)算"菜單項(xiàng)應(yīng)完成下列操作:
(1)根據(jù)stock_mm統(tǒng)計(jì)每只股票的持倉數(shù)量,并將結(jié)果存放到stock_cc表。計(jì)算
方法:買賣標(biāo)記為.T.(表示買進(jìn)),將本次數(shù)量加到相應(yīng)股票的持倉數(shù)量;
買賣標(biāo)記為.F.(表示賣出),將本次數(shù)量從相應(yīng)股票的持倉數(shù)量中減去。
(注意:stock_cc表中的記錄按股票代碼從小到大順序存放)。
(2)將stock_cc表中持倉數(shù)量少的股票信息存儲(chǔ)到自由表stock_x中(與
stock_cc表結(jié)構(gòu)相同)。
單擊"退出"菜單項(xiàng),程序終止運(yùn)行。
本題主要考核點(diǎn):
菜單的建立、結(jié)構(gòu)化查詢語言(SQL)中的聯(lián)接查詢、查詢的排序、臨時(shí)表的概念、查詢結(jié)果的去向等知識(shí)點(diǎn)。
本題解題思路:
第一步:利用菜單設(shè)計(jì)器定義兩個(gè)菜單項(xiàng),在菜單名稱為"計(jì)算"的菜單項(xiàng)的結(jié)果列中選擇"過程",并通過單擊"編輯"按鈕打開一個(gè)窗口來添加"計(jì)算"菜單項(xiàng)要執(zhí)行的命令。在菜單名稱為"退出"的菜單項(xiàng)的結(jié)果列中選擇"命令",并在后面的"選項(xiàng)"列中輸入以下退出菜單的命令: SET SYSMENU TO DEFAULT
第二步:在單擊"計(jì)算"菜單項(xiàng)后面的"編輯"按鈕所打開的窗口中添加如下的過程代碼:
SET TALK OFF &&在程序中常常要關(guān)閉命令結(jié)果的顯示
OPEN DATABASE STOCK_4 &&打開數(shù)據(jù)庫文件STOCK_4
SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
WHERE 買賣標(biāo)記 GROUP BY 股票代碼;
INTO CURSOR CurTable1
&&
SELECT 股票代碼,SUM(本次數(shù)量) AS 持倉數(shù)量 FROM STOCK_MM;
WHERE NOT 買賣標(biāo)記 GROUP BY 股票代碼;
INTO CURSOR CurTable2
SELECT CurTable1.股票代碼,(CurTable1.持倉數(shù)量-CurTable2.持倉數(shù)量) AS 持倉數(shù)量;
FROM CurTable1,CurTable2 ;
WHERE CurTable1.股票代碼=CurTable2.股票代碼;
ORDER BY CurTable1.股票代碼;
INTO ARRAY AfieldsValue
&&由于每種股票的買進(jìn)的數(shù)量的和與賣出的數(shù)量的和在兩個(gè)不同的臨時(shí)表CurTable1和
&&CurTable2中。因此要想得到兩者之間的差,需要進(jìn)行聯(lián)接查詢,可以通過"股票代碼"來
&&做為聯(lián)接的條件,置于WHERE的后面;可以用ORDER BY 子句來確定查詢的排序依據(jù),
&&這里以股票代碼的升序進(jìn)行排序:ORDER BY 股票代碼;可以利用INTO ARRAY 數(shù)組名子句
&&將SELECT語句的查詢結(jié)果放在一個(gè)數(shù)組中,以備后面的程序利用
DELETE FROM STOCK_CC
&&刪除STOCK_CC表中以前的記錄
&&DELETE SQL語句可以將滿足指定條件的記錄加上刪除標(biāo)記
&&DELETE FROM [DatabaseName!]TableName
&&[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
INSERT INTO STOCK_CC FROM ARRAY AfieldsValue
&&將所得到每支股票的代碼和持倉數(shù)量的數(shù)組插入到表STOCK_CC中
&&INSERT SQL語句可以向指定的表追加一條新的記錄
&&INSERT 可以直接將一個(gè)數(shù)組中的值做為記錄值追加到表中,
&&利用FROM ARRAY 數(shù)組變量名來實(shí)現(xiàn)
CLOSE ALL
USE STOCK_CC
PACK
&&物理刪除加上刪除標(biāo)記的記錄
USE
SELECT * 1 FROM STOCK_CC ORDER BY 持倉數(shù)量 INTO TABLE STOCK_X
&&SELECT語句中可以通過來限制返回結(jié)果集中行數(shù) n[PERCENT] n指定返回的行數(shù)。&&如果未指定 PERCENT,n 就是返回的行數(shù)。如果指定了 PERCENT,n 就是返回的結(jié)果集行的&&百分比;INTO TABLE 表名 可以將結(jié)果集生成一個(gè)表
SET TALK ON
第三步:保存所編輯的菜單為menu_lin.mnx,并生成菜單menu_lin.mpr,運(yùn)行。