1、国家二级 VF机试(操作题)模拟试卷 487及答案与解析 一、基本操作题 1 在考生文件夹下,打开 “宾馆 ”数据库,完成如下操作: (1)打开 “客户 ”表,给 “性别 ”字段增加约束:性别只能为 “男 ”或 “女 ”,默认值为: ”女 ”,表达式为:性别 $“男女 ”。 (2)为 “入住 “表创建一个主索引,主索引的索引名为 fkkey,索引表达式为:客房号+客户号。 (3)根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。 (4)使用 SQL的 SELECT语句查询 “客户 ”表中性别为 “男 ”的 “客户号
2、 ”、 “身份证 ”、“姓名 ”和 “工作单位 ”字段及相应的记录值,并将结果存储到名为 taba的表 (注意,该表不需要排序 )。请将该语句存储到名为 one prg的文件中。 二、简单应用题 2 (1)使用查询设计器设计完成:查询 “吴 ”姓读者 (客户名第一个字为 “吴 ”)订购图书情况,查询结果包括客户名、订单号、图书名、单价、数量和签订日期字段的值,要求按客户名升序排序,并运行该查询将查询结果存储在表文件 appone,查询文件也保存为 appone。 (2)使用 SQL语句查询每个读 者订购图书的数量和金额 (数量 单价 ),查询结果包括客户名、订购总册数和金额,查询按金额降序排序
3、,查询结果存储在 apptwo dbf表文件,最后将 SQL语句保存在 apptwo prg命令文件。 三、综合应用题 3 使用报表设计器建立一个报表,具体要求如下: 报表的内容 (细节带区 )是 order list表的订单号、订购日期和总金额。 增加数据分组,分组表达式是 “order list客户号 ”,组标头带区的内容是 “客户号 ”,组注脚带区的内容是该组订单的 “总金额 ”合计。 增加标题带区,标题是 “订单分组汇 总表 (按客户 )”,要求是三号字、黑体,括号是全角符号。 增加总结带区,该带区的内容是所有订单的总金额合计。最后将建立的报表文件保存为 report1 frx文件。
4、提示:在考试的过程中可以使用 “显示一预览 ”菜单查看报表的效果。 国家二级 VF机试(操作题)模拟试卷 487答案与解析 一、基本操作题 1 【正确答案】 【操作步骤】 (1) 命令窗口执行: MODIFY DATABASE宾馆,打开数据库设计器。 右击数据库设计器中的 “客户 ”表,选择【修改】,打开 “客户 ”表设计器,选中“字段 ”选项卡中的 “性别 ”字段,在 “字段有效性 ”的 “规则 ”文本框中输入:性别$男女 ”,在 “默认值 ”文本框中输入: ”女 ”,保存表修改。 (2)右击数据库设计器中的 “入住 ”表,选择【修改】,打开 “入住 ”表设计器,选中“索引 ”选项卡,在 “
5、索引名 ”下方的文本框中输入 “fkkey”, “索引 ”选项卡中将 “类型 ”选择 “主索引 ”,在表达式下方的文本框中输入 “客房号 +客户号 ”,建立主索引。 (3) 选中 “入住 ”表单击 “修改 ”按钮,在表设计器的 “字段 ”选项卡中选中 “客户号 ”,在 “索引 ”列的下拉框选择 “升序 ”为表建立普通索引,选中 “客房号 ”字段 名,在 “索引 ”列的下拉框选择 “升序 ”排序方式,单击 “确定 ”按钮保存表结构修改。 参照 “入住 ”表的操作,为 “客房 ”表建立 “类型号 ”字段的普通索引。 数据库设计器中,拖动 “客户 ”表 “索引 ”下方的主索引 “客户号 ”到 “入住
6、 ”表中 “索引 ”下方的普通索引 “客户号 ”上,为两个表建立联系。 以同样的方法建立其他三个表之间的联系,拖动过程中是由主索引字段向普通索引字段进行拖动,且一定要拖到相应的普通索引字段上才可以松开鼠标。 (4) 命令窗口执行: MODIFY COMMAND one,打开程序文件编辑器编写视图定义代码 如下: SELECT客户号,身份证,姓名,工作单位 FROM 客户; WHERE性别 =“男 ”INTO TABLE taba 命令窗口执行: DO one,执行文件。 二、简单应用题 2 【正确答案】 (1)【操作步骤】步骤 1:在命令窗口执行命令: CREATE QUERY,新建一个查询。
7、步骤 2:在弹出的 “添加表或视图 ”对话框里面,单击 “其他 ”按钮,弹出 “打开 ”对话框,在考生目录找到 goods DBF文件,单击 “打开 ”按钮,完成 goods表的添加。步骤 3:重复步骤 2,继续添加表 orderitem和 order,并通过图书号以及订单号来设置三个表之间的联系,添加完成之后如图 4 26所示。 步骤 4:在查询设计器里面 “字段 ”选项卡中依次选择 Order客户名、Order订单号、 Goods图书名、 Goods单价、 Orderitem数量和 Order签订日期,然后单击 “添加 ”按钮,把字段添加到查询中,添加完成后如图 4 27所示。步骤 5:在
8、 “筛选 ”选项卡中选择 “Order客户名 ”,条件选择 “like”,实例输入“吴 ”,如图 4 28所示。 步骤 6:在 “排序依据 ”选项卡中添加 “Order客户名 ”,如图 4 29所示。 步骤 7:在查询设计器工具栏上选择 “查询去向 ”按钮,弹出 “查询去向 ”对话框。输出去向选择 “表 ”,表名输入 “appone”,如图 430所示。步骤 8:保存查询,文件名输入 “appone”。 (2) 【操作步骤】步骤 1:创建数据库可以使用菜单完成,选择 “文件 ”菜单下面的 “新建 ”子菜单,弹出 “新建对话框 ”对话框,在对话框里面选择 “程序 ”单选按钮。步骤 2:在 “新建
9、 ”对话框里面单击 “新建文件 ”按钮,打开程序编辑界面。步骤 3:在程序编辑界面输入 SOL语句:select客户名, sum(数量 )订购总册数, sum (单价 *数量 )余额; from goods,orderitem, order; where qoods图书号 =0rderitem图书号 and orderi七 em订单号 =order订单号; group by客户名。 rder by金额 desc; into dbf apptwo9步骤 4:单击菜单工具栏 “保存 ”按钮弹出 “另存为 ”对话框,输入文件名 apptwo,单击 “保存 ”按钮保存文件。步骤 5:运行程序。 三、综
10、合应用题 3 【正确答案】 【操作步 骤】 步骤 1:命令窗口执行: CREATE REPORT REPORT1,打开报表设计器。 步骤 2:右击报表选择【数据环境】,在报表数据环境中单击右键选择【添加】,在 “添加表或视图 ”对话框中双击 order list表,将表添加到报表数据环境中。 步骤 3:右击报表数据环境中的 order list表,选择【属性】,在报表属性面板中修改 “Order”属性值为 “客户号 ”,该操作是为了让记录能按 “客户号 ”索引排序的数据。 步骤 4:从报表数据环境的 order list表中,依次拖动 “订单号 ”、 “订购日期 ”和 “总金额 ”字段 到报表
11、设计器的细节带区,再通过 “报表控件 ”工具栏向报表的 “页标头 ”中添加 3个名为 “订单号 ”、 “订购日期 ”和 “总金额 ”的标签控件,调整标签与细节带区字段的位置。 步骤 5:执行【报表】 【数据分组】菜单命令,弹出 “数据分组 ”对话框,单击“表达式 ”行的表达式生成器按钮,在其中的 “字段 ”列表中双击 “order list客户号 ”字段,单击 “确定 ”返回 “数据分组 ”表达式,单击 “确定 ”关闭对话框,可看到添加了 “组标头 ”和 “组注脚 ”两个带区。 步骤 6:调整组标头的显示区域 (向下拖动 “组标头 ”栏 ),将 order list表中的 “客户号 ”字段拖到
12、该区域,并添加一个名为 “客户号: ”的标签控件。 步骤 7:调整组注脚的显示区域,通过 “报表控件 ”工具栏向报表的 “组注脚 ”添加一个域控件,系统弹出 “报表表达式 ”对话框,单击 “表达式 ”行的表达式生成器按钮,在 “表达式生成器 ”对话框的 “字段 ”列表中双击 “order list总金额 ”字段,单击 “确定 ”按钮返回 “报表表达式 ”对话框;单击 “格式 ”行中的表达式按钮弹出 “格式 ”对话框,选中 “数值型 ”选项,单击 “确定 ”按钮返回 “数据分组 ”表达式;在 “报表表达式 ”对话框中单击 “计算 ”按钮,在 “计算字段 ”对话框中选中 “总和 ”,单击 “确定
13、”按钮返回 “数据分组 ”表达式,单击 “确定 ”按钮关闭对话框,可看到 “组注脚 ”区域增加了一个 “总金额 ”域控件。为该字段添加名为 “总金额: ”的标签。 步骤 8:执行【报表】 【标题总结】菜单命令,在 “标题总结 ”对话框中分别勾选 “标题带区 ”和 “总结带区 ”复选框,单击 “确定 ”按钮可看到报表设计器中添加了“标题 ”和 “总结 ”带区。 步骤 9:执行【报表】 【默认字体】菜单命令,在 “字体 ”对话框中选 “字体 ”为 “黑体 ”, “字号 ”为 “三号 “:接着再向报表的 “标题 ”带区添加一个标签控件,输入标签标 题为:订单分组汇总表 (按客户 ):再按照 “步骤 7”的操作,为 “总结 ”带区添加一个 “总金额 ”的域控件和一个 “总金额: ”的标签。单击 “常用 ”工具栏中的 “预览 ”按钮可浏览报表设计效果。