1、国家二级 VF机试(操作题)模拟试卷 386及答案与解析 一、基本操作题 1 (1)打开 “订货管理 ”数据库,并将表 0rder detail添加到该数据库中。 (2)为表 order_detail的 “单价 ”字段定义默认值为 NULL。 (3)为表 order_detail的 “单价 ”字段定义约束规则:单价 0,违背姚则时的提示信息是: “单价必须大于零 ”。 (4)关闭 “订货管理 ”数据库,然后建立自由表 customer,表结构如下: 客户号 字符型 (6) 客户名 字符 型 (16) 地址 字符型 (20) 电话 字符型 (14) 二、简单应用题 2 (1)列出总金额大于所有订
2、购单总金额平均值的订购单 (order_list)清单 (按客户升序排列 ),并将结果存储到 results表中 (表结构与 order_list表结构相同 )。 (2)利用 Visual FoxPro的 “快速报表 ”功能建立一个满足如下要求的简单报表: 报表的内容是 order_detail表的记录 (全部记录,横向 )。 增加 “标题带区 ”,然后在该带区中放置一个标签 控件,该标签控件显示报表的标题 “器件清单 ”。 将页注脚区默认显示的当前日期改为显示当前的时间。 最后将建立的报表保存为 report1 frx。 三、综合应用题 3 首先将 order detai1表全部内容复制到
3、od_bak表,然后完成如下操作: (1)将 od_bak表中的订单号字段值只保留最后一个字母 (用 REPLACE命令或SOLUPDATE命令完成修改 )。 (2)用 SOL语句对 od_bak表编写完成如下功能的程序: 把 “订单号 ”相同并且, “器件号 ”相同的 订单,合并为一条记录, “单价 ”取最低价, “数量 ”取合计。 结果先按新的 “订单号 ”升序排序,再按 “器件号 ”升序排序。 最终记录的处理结果保存在 od_new表中,表中的字段由 “订单号 ”、 “器件号 ”、 “器件名 ”、 “单价 ”和 “数量 ”构成。 (3)最后将程序保存为 prog1 prg,并执行该程序。
4、 国家二级 VF机试(操作题)模拟试卷 386答案与解析 一、基本操作题 1 【正确答案】 【操作步骤】 (1) 在命令窗口执行命令: MODIFY DATABASE订货管理,打开数据库设计器 。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的 “打开 ”对话框中双击 order_detail表,将表添加到数据库中。 (2)在数据库设计器中,右击 order_detail表,选择【修改】快捷菜单命令,打开 order_detail表设计器,在 “字段 ”选项卡中选中 “单价 ”,勾选 NULL选项,存 “默认值 ”文本框中输入: .NULL.。如图 346所示。 (3)接上题,
5、在 “字段有效性 ”的“规则 ”文本框中输入:单价 0,在 “信息 ”文本框中输入: “单价必须大于零 ”,单击 “确定 ”按钮保存表结构的修改。如 图 346所示。(4) 在命令窗口执行命令: CLOSE DATABASE关闭所有数据库。 执行【文件】 【新建】菜单命令,在弹出的 “新建 ”对话框中单击 “表 ”单选按钮,再单击 “新建文件 ”图标按钮,然后在弹出的 “创建 ”对话框的 “输入表名 ”框中输入 “customer”,单击“保存 ”按钮打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击 “确定 ”按钮,此时系统会弹出一个对话框询问 “
6、现在输入数据记录吗 ?”,由于本题没有要求输入数据,单击 “否 ”按钮, 二、简单应用题 2 【正确答案】 (1)【操作步骤】 在命令窗口执行如下 SQL命令语句完成查询: 1 select * from order_list; 2 where总金额 (select avg(总金额 ) from order_list); 3 rder by 客户号; 4 into table results (2)【操作步骤】 步骤 1:在命令窗口执行命令: USE ORDER_DETAIL,打开 order_detail表。 步骤 2:在命令窗口 执行命令: CREATE REPORT REPORT1,打开
7、报表设计器,然后执行【报表】 【快速报表】菜单命令,在弹出的 “快速报表 ”对话框中单击 “确定 ”按钮,预览和保存报表设计。 步骤 3:执行【报表】 【标题总结】菜单命令,在弹出的 “标题总结 ”对话框中勾选 “标题带区 ”,单击 “确定 ”按钮,可以看到报表设计器中添加了 “标题 ”带区。 步骤 4:通过 “报表控件 ”工具栏向报表的 “标题 ”带区添加一个标签控件,并输入标签标题:器件清单,并适当地调整标签的位置。 步骤 5:在 “页注脚 ”带区中,双击 “DATE()”域控件,在弹出的 “报表表达式 ”对话框中的 “表达式 ”框中将 “DATE()”改为 “TIME()”单击 “确定
8、”按钮,预览和保存报表修改。 三、综合应用题 3 【正确答案】 【操作步骤】 步骤 1:在命令窗口执行命令: SELECT*FROM order_detail INTO TABLE od_bak,将 ordel_detail表的全部内容复制到 od_bak表中。 步骤 2:在命令窗口执行命令: UPDATE od_bak SET 订单号RIGHT(ALLTRIM(订单号 ), 1),将 od_bak表中的 “订单号 ”字段值只保留最后一个字母。 步骤 3:在命令窗口执行命令: MODIFY COMMAND PROG1,新建程序并打开程序编辑器。 步骤 4:在程序编辑器中输入如下程序代码: 1 SELECT订单号,器件号,器件名,; 2 MIN(单价 ) AS 单价, SUM(数量 ) AS 数量; 3 FROM OD_BAK; 4 GROUP BY 订单号,器件号; 5 ORDER BY 订单号,器件号; 6 INTO TABLE OD_NEW 步骤 5:单击 “保存 ”按钮,并运行程序。