第十二套
一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、打开数据库PROD_M及数据库设计器,其中的两个表的必要的索引已经建立,
为这两个表建立永久性联系
2、设置CATEGORY表中"种类名称"字段的默认值为:"饮料"。
3、为PRODUCTS表增加字段:销售价格N(8,2)。
4、如果所有商品的销售价格是在进货价格基础上增加18.98%,计算所有商品的
销售价格。
本题的主要考核点:
为已建立索引的表建立联系、设置字段的默认值、字段的添加、字段的替换。
解题思路:
1.建立两个表的联系。在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
2.在表设计器中,选中"种类名称"字段,在"字段有效性-默认值"中填入"饮料",单击确定。
3.增加字段的方法:
打开PRODUCTS表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。
4.可以使用BROWSE浏览表,然后在菜单"表"中选择"替换字段",字段为"销售价格","替换为"的表达式为"Products.进货价格 *(1+0.1898)",作用范围ALL。
也可用命令
REPLACE ALL 销售价格 WITH 进货价格*(1+0.1898)。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE表
结构如下:
STUDENT(学号,姓名,年龄,性别,院系号)
SC(学号,课程号,成绩,备注)
COURSE(课程号,课程名,先修课程号,学分)
在考生文件夹下有一个程序DBTEST61.PRG,该程序的功能是检索同时选修了
课程号C1和C2的学生的学号。请修改程序中的错误,并调试该程序,使之正
确运行。考生不得增加或删减程序行。
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE。
表结构如下:
STUDENT(学号,姓名,年龄,性别,院系号)
SC(学号,课程号,成绩,备注)
COURSE(课程号,课程名,先修课程号,学分)
在考生文件夹下设计一个表单,该表单为SDB库中STUDENT表窗口式输入界
面,表单上还有一个名为cmdCLOSE的按钮,标题名为"关闭",点击该按钮,
使用ThisForm.release退出表单。最后将表单存放在考生文件夹中,表单文
件名是S_FORM。
提示:在设计表单时,打开SDB数据库,将STUDENT表拖入到表单中就实现了
STUDENT表的窗口式输入界面,不需要其他设置或修改。
第1题,本题是一个程序修改题。题中的第一个错误是"WHERE 课程号 = 'c1' AND 学号 = ;",此处应用的是嵌套查询,正确的格式是WHERE 字段 IN (条件),所以应把"="改为" in";第二个错误"SELECT * FROM SC";题面要求检索的是学号,而此命令检索了所有字段,所以应将*改为"学号";第三个错误是在"WHERE 学号 = 'c2'"行,由题目可知,检索条件应为"课程号 = 'c2'"
第2题,本题的主要考核点是设计表单。
可以用三种方法调用表单设计器:在项目管理器环境下调用;单击"文件"菜单中的"新建",打开"新建"对话框,选择"表单";在命令窗口输入CREATE FORM命令。
打开表单设计器后,在表单控件工具栏上单击"命令按钮",在表单上放置一个按钮。修改其属性Name为cmdclose,Caption属性为"关闭"。双击按钮,在打开的程序窗口输入代码"ThisForm.release"。设计窗口式输入界面如提示。
三、综合应用(1小题,计30分)
在考生文件夹下有股票管理数据库stock_6,数据库中有stock_mm表和stock_cs
表,stock_mm的表结构是股票代码C(6)、买卖标记L(.T.表示买进,.F.表示卖
出),单价N(7.2)、本次数量N(6)。tock_cs的表结构是股票代码C(6),买入次数
N(4),价N(7.2)。stock_mm表中一只股票对应多个记录,stock_cs表中一
只股票对应一个记录(stock_cs表开始时记录个数为0)
请编写并运行符合下列要求的程序:
(1)设计一个名为stock_m菜单,菜单中有两个菜单项"计算"和"退出"。
程序运行时,单击"计算"菜单项应完成的操作是计算每支股票的买入次数和
(买入时的)价存入stock_cs表中,买卖标记.T.(表示买进)
(注意:stock_cs表中的记录按股票代码从小到大的物理顺序存放)。
(2)根据stock_cs表计算买入次数最多的股票代码和买入次数存储到的stock_x表
中(与stock_cs表对应字段名称和类型一致)。
单击"退出"菜单项,程序终止运行。
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、分组查询、临时表的概念、查询结果的去向等知识点。
本题解题思路:
第一步:利用菜单设计器定义两个菜单项,在菜单名称为"计算"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"计算"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令: SET SYSMENU TO DEFAULT
第二步:在单击"计算"菜单项后面的"编辑"按钮所打开的窗口中添加如下的过程代码:
SET TALK OFF &&在程序运行时关闭命令提示
SET SAFETY OFF &&不出现文件重名的提示
OPEN DATABASE STOCK_6 &&打开数据库文件STOCK_6
SELECT 股票代码,COUNT(*) AS 买入次数,MAX(单价) AS 价;
FROM STOCK_MM;
WHERE 买卖标记;
GROUP BY 股票代码;
ORDER BY 股票代码;
INTO ARRAY AFieldsValue
&&要得到的结果集是在买入的股票中统计的,所以要用WHERE 进行限制
&&由于要得到每支股票的买入次数及买入时的价,所以要用到SELECT语句的分组查询,
&&这里要以股票代码作为分组的依据,所以要将GROUP BY 股票代码 放在WHERE的后面
&&要以股票代码从小到大的顺序进行排序要用到ORDER BY股票代码;由于要得到的是买入的次数
&&买入时的价所以这里要用到聚合函数COUNT和MAX,COUNT()函数可得到组中项目的数量,
&&MAX()函数可得到值
DELETE FROM STOCK_CS
&&删除STOCK_CS中以前的记录
&&DELETE SQL语句来删除表中的记录
&& DELETE FROM [数据库名!]表名
&&[WHERE 条件表达式11 [AND | OR 条件表达式2 ...]]
INSERT INTO STOCK_CS FROM ARRAY AfieldsValue
&&INSERT SQL语句向表中追加记录
&&INSERT SQL语句基本样式为:INSERT INTO 表名 (字段名1,字段名2,…)
&&VALUES (表达式1,表达式2,...)
&&另有一种可以从一个数组中数据追加到表中或从一些和字段名相同的内存变量
&&INSERT INTO 表名 FROM ARRAY 数组名 | FROM MEMVAR
USE STOCK_CS
PACK
&&物理删除已打删除标记的记录
USE
SELECT * 1 FROM STOCK_CS ORDER BY 买入次数 DESC INTO TABLE STOCK_X
&&在SELECT SQL语句中可以指定结果集返回的行数 n [PERCENT],如果没有PERCENT
&& n指定返回的行数,如果指定PERCENT指定返回的百分比
&& 可以利用INTO TABLE 表名 将返回的结果集存入一个永久表中
SET SAFETY ON
SET TALK ON
第三步:以stock_m为文件名保存菜单,并生成菜单,最后运行生成的菜单。
计算机等级考试二级VFP机试试题12.doc
下载Word文档到电脑,方便收藏和打印[全文共3337字]
编辑推荐:
下载Word文档