1、二级 VISUAL+FOXPRO 机试-102 及答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.打开数据库 PRO 叫及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系2设置 CATEGORY 表中“种类名称”字段的默认值为: “饮料”。3为 PRODUCTS 表增加字段:优惠价格 N(8,2)。4如果所有商品的优惠价格是在进货价格基础上减少 12%,计算所有商品的优惠价格。(分数:30.00)_二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹中有一个数据库 GCS,其中 GONGCH 表结构
2、如下:GONGCH(编号 C(4),姓名 C(10),性别 C(2),工资 N(7,2),年龄 N(2),职称 C(10)现在要对 GONGCH 表进行修改,指定编号为主索引,索引名和索引表达式均为编号;指定职称为普通索引,索引名和索引表达式均为职称;年龄字段的有效性规则在 25 至 65 之间(含 25 和 65),默认值是 45。2在考生文件夹中有数据库 GCS,其中有数据库表 GONGCH。在考生文件夹下设计一个表单,该表单为 GCS 库中 GONGCH 表窗口式输入界面,表单上还有一个名为 cmd CLOSE 的按钮,标题名为“关闭”,点击该按钮,使用 This Formrelelas
3、e 退出表单。最后将表单存放在考生文件夹中,表单文件名是 C_ORM。提示:在设计表单时,打开 GCS 数据库设计器,将 GONGCH 表拖入到表单中就实现了 GONGCH 表的窗口式输入界面,不需要其他设置或修改。(分数:40.00)_三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有仓库数据库 GZ3 包括两个表文件:ZG(仓库号 C(4),职工号 C(4),工资 N(4)DGD(职工号 C(4),供应商号 C(4),订购单号 C(4),订购日期 D,总金额 N(10)首先建立工资文件数据表:CJ3(职工号 C(4),工资 N(4)设计一个名为 YEWU3 的菜单,菜单
4、中有两个菜单项“查询”和“退出”。程序运行时,单击“查询”应完成下列操作:检索出与供应商 S7,S4 和 S6 都有业务联系的职工的职工号和工资,并存放到所建立的 GJ3 文件中。单击“退出”菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下)(分数:30.00)_二级 VISUAL+FOXPRO 机试-102 答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.打开数据库 PRO 叫及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系2设置 CATEGORY 表中“种类名称”字段的默认值为: “饮料”。3为
5、 PRODUCTS 表增加字段:优惠价格 N(8,2)。4如果所有商品的优惠价格是在进货价格基础上减少 12%,计算所有商品的优惠价格。(分数:30.00)_正确答案:(本题的主要考核点是建立索引和有效性规则。建立索引在表设计器中的索引选项卡,建立有效性规则在表设计器中的字段选项卡。在“规则”栏中输入“年龄=25 AND 年龄=65”,“默认值”栏输入“45”。)解析:二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹中有一个数据库 GCS,其中 GONGCH 表结构如下:GONGCH(编号 C(4),姓名 C(10),性别 C(2),工资 N(7,2),年龄 N(2),职称
6、C(10)现在要对 GONGCH 表进行修改,指定编号为主索引,索引名和索引表达式均为编号;指定职称为普通索引,索引名和索引表达式均为职称;年龄字段的有效性规则在 25 至 65 之间(含 25 和 65),默认值是 45。2在考生文件夹中有数据库 GCS,其中有数据库表 GONGCH。在考生文件夹下设计一个表单,该表单为 GCS 库中 GONGCH 表窗口式输入界面,表单上还有一个名为 cmd CLOSE 的按钮,标题名为“关闭”,点击该按钮,使用 This Formrelelase 退出表单。最后将表单存放在考生文件夹中,表单文件名是 C_ORM。提示:在设计表单时,打开 GCS 数据库设
7、计器,将 GONGCH 表拖入到表单中就实现了 GONGCH 表的窗口式输入界面,不需要其他设置或修改。(分数:40.00)_正确答案:(本题的主要考核点是表单的设计。可以用三种方法调用表单设计器:在项目管理器环境下调用;单击“文件”菜单中的“新建”,打开“新建”对话框,选择“表单”;在命令窗口输入 CREATE FORM 命令。打开表单设计器,在表单控件工具栏上单击“命令按钮”,在表单上放置一个按钮。修改其属性 Name 为cmd close,Caption 属性为“关闭”。双击按钮,在打开的程序窗口输入代码“ThisFormrelease“。设计窗口式输入界面按题目中提示操作。最后将表单保
8、存。)解析:三、三 综合应用题(总题数:1,分数:30.00)3.在考生文件夹下有仓库数据库 GZ3 包括两个表文件:ZG(仓库号 C(4),职工号 C(4),工资 N(4)DGD(职工号 C(4),供应商号 C(4),订购单号 C(4),订购日期 D,总金额 N(10)首先建立工资文件数据表:CJ3(职工号 C(4),工资 N(4)设计一个名为 YEWU3 的菜单,菜单中有两个菜单项“查询”和“退出”。程序运行时,单击“查询”应完成下列操作:检索出与供应商 S7,S4 和 S6 都有业务联系的职工的职工号和工资,并存放到所建立的 GJ3 文件中。单击“退出”菜单项,程序终止运行。(注:相关数
9、据表文件存在于考生文件夹下)(分数:30.00)_正确答案:(表结构的建立、菜单的建立结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向,HAVING 子句,聚合函数 COUNT()等的使用等知识。)解析:解题思路第一步:利用莱单设计器定义两个菜单项,在菜单名称为“查询”的菜单项的结果列中选择“过程”,并通过单击“编辑”按钮打开一个窗口来添加“查询”菜单项要执行的命令。在菜单名称为“退出”的菜单项的结果列中选择“命令”,并在后面的“选项”列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT第二步:在单击“计算”菜单项后面的“编辑”按钮所打开的窗口
10、中添加如下的过程代码:SET TALK OFF INTO CURSOR Cur Table&SELECT SQL 语句中的 GROUP BY 子句可以用来指定结果集的组,&要得到“供应商号“是“S4“、“S6“或“S7“的订购单,同时以订购单所在的职工员进行分组&并且保证每个分组里面供应商号有三个(也就是三个供应商都应有订购单);这样就得到了满&足条件的职工号,将返回的结果集放于一个临时表 Cur Table 中:INTO CURSOR Cur TableSELECT ZG职工号,工资 FROM ZG,Cur Table WHERE ZG职工号=Cur Table职工号:ORDER BY 工资 DESC;INTO ARRAY A Fields Value&将生成的临时表与 DGD 表进行联接查询,便可以得到满足条件的职工号和工资&返回的结果集放入数组 A Fields Value 中:INTO ARRAY A Fields ValueINSERT INTO GJS FROM ARRAY A fields Value &在新建的表中追加记录CLOSE ALL &关闭打开的文件SET TALK ON &复命令结果的显示设置第三步:以文件名 YEWU3MNX 保存菜单源文件,并生成菜单,运行菜单。