1、国家二级 VF机试(操作题)-试卷 271及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开“订货管理”数据库,并将表 0rder detail添加到该数据库中。 (2)为表 order_detail的“单价”字段定义默认值为 NULL。 (3)为表 order_detail的“单价”字段定义约束规则:单价0,违背姚则时的提示信息是:“单价必须大于零”。 (4)关闭“订货管理”数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14)(分数:2.00)_
2、二、简单应用题(总题数:1,分数:2.00)2.(1)列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按客户升序排列),并将结果存储到 results表中(表结构与 order_list表结构相同)。 (2)利用 Visual FoxPro的“快速报表”功能建立一个满足如下要求的简单报表: 报表的内容是 order_detail表的记录(全部记录,横向)。 增加“标题带区”,然后在该带区中放置一个标签控件,该标签控件显示报表的标题“器件清单”。 将页注脚区默认显示的当前日期改为显示当前的时间。 最后将建立的报表保存为 report1frx。(分数:2.00)_三、综合
3、应用题(总题数:1,分数:2.00)3.首先将 order detai1表全部内容复制到 od_bak表,然后完成如下操作: (1)将 od_bak表中的订单号字段值只保留最后一个字母(用 REPLACE命令或 SOLUPDATE命令完成修改)。 (2)用 SOL语句对 od_bak表编写完成如下功能的程序: 把“订单号”相同并且,“器件号”相同的订单,合并为一条记录,“单价”取最低价, “数量”取合计。 结果先按新的“订单号”升序排序,再按“器件号”升序排序。 最终记录的处理结果保存在 od_new表中,表中的字段由“订单号”、“器件号”、“器件名”、“单价”和“数量”构成。 (3)最后将程
4、序保存为 prog1prg,并执行该程序。(分数:2.00)_国家二级 VF机试(操作题)-试卷 271答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)打开“订货管理”数据库,并将表 0rder detail添加到该数据库中。 (2)为表 order_detail的“单价”字段定义默认值为 NULL。 (3)为表 order_detail的“单价”字段定义约束规则:单价0,违背姚则时的提示信息是:“单价必须大于零”。 (4)关闭“订货管理”数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地
5、址 字符型(20) 电话 字符型(14)(分数:2.00)_正确答案:(正确答案:【操作步骤】 (1)在命令窗口执行命令:MODIFY DATABASE 订货管理,打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击 order_detail表,将表添加到数据库中。 (2)在数据库设计器中,右击 order_detail表,选择【修改】快捷菜单命令,打开 order_detail表设计器,在“字段”选项卡中选中“单价”,勾选 NULL选项,存“默认值”文本框中输入:.NULL.。如图 346所示。 (3)接上题,在“字段有效性”的“规则”文本框
6、中输入:单价0,在“信息”文本框中输入:“单价必须大于零”,单击“确定”按钮保存表结构的修改。如图 346所示。 )解析:二、简单应用题(总题数:1,分数:2.00)2.(1)列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按客户升序排列),并将结果存储到 results表中(表结构与 order_list表结构相同)。 (2)利用 Visual FoxPro的“快速报表”功能建立一个满足如下要求的简单报表: 报表的内容是 order_detail表的记录(全部记录,横向)。 增加“标题带区”,然后在该带区中放置一个标签控件,该标签控件显示报表的标题“器件清单”。 将
7、页注脚区默认显示的当前日期改为显示当前的时间。 最后将建立的报表保存为 report1frx。(分数:2.00)_正确答案:(正确答案:(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 R
8、EPORT1,打开报表设计器,然后执行【报表】【快速报表】菜单命令,在弹出的“快速报表”对话框中单击“确定”按钮,预览和保存报表设计。 步骤 3:执行【报表】【标题总结】菜单命令,在弹出的“标题总结”对话框中勾选“标题带区”,单击“确定”按钮,可以看到报表设计器中添加了“标题”带区。 步骤 4:通过“报表控件”工具栏向报表的“标题”带区添加一个标签控件,并输入标签标题:器件清单,并适当地调整标签的位置。步骤 5:在“页注脚”带区中,双击“DATE()”域控件,在弹出的“报表表达式”对话框中的“表达式”框中将“DATE()”改为“TIME()”单击“确定”按钮,预览和保存报表修改。)解析:三、综
9、合应用题(总题数:1,分数:2.00)3.首先将 order detai1表全部内容复制到 od_bak表,然后完成如下操作: (1)将 od_bak表中的订单号字段值只保留最后一个字母(用 REPLACE命令或 SOLUPDATE命令完成修改)。 (2)用 SOL语句对 od_bak表编写完成如下功能的程序: 把“订单号”相同并且,“器件号”相同的订单,合并为一条记录,“单价”取最低价, “数量”取合计。 结果先按新的“订单号”升序排序,再按“器件号”升序排序。 最终记录的处理结果保存在 od_new表中,表中的字段由“订单号”、“器件号”、“器件名”、“单价”和“数量”构成。 (3)最后将
10、程序保存为 prog1prg,并执行该程序。(分数:2.00)_正确答案:(正确答案:【操作步骤】 步骤 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:单击“保存”按钮,并运行程序。)解析: