首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
三、综合应用(1小题,计30分)
在考生文件夹下有股票管理数据库stock_4,数据库中有stock_mm表和stock_cc表,stock_mm的表结构是股票代码C(6)、买卖标记L(.T.表示买进,.F.表示卖出),单价N(7.2)、本次数量N(6)。stock_cc的表结构是股票代码C(6),持仓数量N(8)。 stock_mm表中一只股票对应多个记录,stock_cc表中一只股票对应一个记录(stock_cc表开始时记录个数为0)。
请编写并运行符合下列要求的程序:
设计一个名为menu_lin的菜单,菜单中有两个菜单项"计算"和"退出"。
程序运行时,单击"计算"菜单项应完成下列操作:
(1)根据stock_mm统计每只股票的持仓数量,并将结果存放到stock_cc表。计算方法:买卖标记为.T.(表示买进),将本次数量加到相应股票的持仓数量;买卖标记为.F.(表示卖出),将本次数量从相应股票的持仓数量中减去。
(注意:stock_cc表中的记录按股票代码从小到大顺序存放)。
(2)将stock_cc表中持仓数量最少的股票信息存储到自由表stock_x中(与
stock_cc表结构相同)。
单击"退出"菜单项,程序终止运行。
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向等知识点。
本题解题思路:
第一步:利用菜单设计器定义两个菜单项,在菜单名称为"计算"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"计算"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
第二步:在单击"计算"菜单项后面的"编辑"按钮所打开的窗口中添加如下的过程代码:
SET TALK OFF &&在程序中常常要关闭命令结果的显示
OPEN DATABASE STOCK_4 &&打开数据库文件STOCK_4
SELECT 股票代码,SUM(本次数量) AS 持仓数量 FROM STOCK_MM;
WHERE 买卖标记 GROUP BY 股票代码;
INTO CURSOR CurTable1
&&
SELECT 股票代码,SUM(本次数量) AS 持仓数量 FROM STOCK_MM;
WHERE NOT 买卖标记 GROUP BY 股票代码;
INTO CURSOR CurTable2
SELECT CurTable1.股票代码,(CurTable1.持仓数量-CurTable2.持仓数量) AS 持仓数量;
FROM CurTable1,CurTable2 ;
WHERE CurTable1.股票代码=CurTable2.股票代码;
ORDER BY CurTable1.股票代码;
INTO ARRAY AfieldsValue
&&由于每种股票的买进的数量的和与卖出的数量的和在两个不同的临时表CurTable1和
&&CurTable2中。因此要想得到两者之间的差,需要进行联接查询,可以通过"股票代码"来
&&做为联接的条件,置于WHERE的后面;可以用ORDER BY 子句来确定查询的排序依据,
&&这里以股票代码的升序进行排序:ORDER BY 股票代码;可以利用INTO ARRAY 数组名子句
&&将SELECT语句的查询结果放在一个数组中,以备后面的程序利用
DELETE FROM STOCK_CC
&&删除STOCK_CC表中以前的记录
&&DELETE SQL语句可以将满足指定条件的记录加上删除标记
&&DELETE FROM [DatabaseName!]TableName
&&[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
INSERT INTO STOCK_CC FROM ARRAY AfieldsValue
&&将所得到每支股票的代码和持仓数量的数组插入到表STOCK_CC中
&&INSERT SQL语句可以向指定的表追加一条新的记录
&&INSERT 可以直接将一个数组中的值做为记录值追加到表中,
&&利用FROM ARRAY 数组变量名来实现
CLOSE ALL
USE STOCK_CC
PACK
&&物理删除加上删除标记的记录
USE
SELECT * TOP 1 FROM STOCK_CC ORDER BY 持仓数量 INTO TABLE STOCK_X
&&SELECT语句中可以通过TOP来限制返回结果集中行数 TOP n[PERCENT] n指定返回的行数。&&如果未指定 PERCENT,n 就是返回的行数。如果指定了 PERCENT,n 就是返回的结果集行的&&百分比;INTO TABLE 表名 可以将结果集生成一个表
SET TALK ON
第三步:保存所编辑的菜单为menu_lin.mnx,并生成菜单menu_lin.mpr,运行。
相关推荐:2010年9月计算机等级考试冲刺备考指导专题北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |