1、国家二级 VF机试模拟试卷 203及答案与解析 一、基本操作题( 30分) 1 (1)首先打开 Ecommerce数据库,然后为表 Customer增加一个字段,字段名为emai1、类型为字符、宽度为 20。 (2)为 Customer表的 “性别 ”字段定义有效性规则,规则表达式为:性别 $“男女 “,出错提示信息为 “性别必须是男或女 ”,默认值为 “女 ”。 (3)通过 “会员号 ”字段建立客户表 Customer和订单表 OrderItem之间的永久联系;通过 “商品号 ”字段建立商品表 Article和订单表 OrderItem之间的永久联系。 (4)为以上建立的联系设置参照完整性约
2、束:更新规则为 “级联 ”;删除规则为 “限制 ”;插入规则为 “限制 ”。 二、简单应用题( 40分) 2 在考生文件夹下,打开资源数据库 frdb,完成如下简单应用: (1)使用表单向导选择资源表 fr_t生成一个名为 fr_edit的表单。要求选择 fr_t表中所有字段,样式为阴影式;按钮类型为图片按钮:排序字段选择户主编号 (升序 );表单标题为 “资源数据输入维护 ”。 (2)使用查询设计器设计一个查询 one,按户主编号 (取自 fr_t表 ),树种名称 (取自tree_t表 )分组汇总每个农户的面积 (取自 fr_t表 )和蓄积 (取自 fr_t表 ),查询结果按户主编号升序排序
3、,并输出到 one表中。 one表中的字段为户主编号、树种名称、面积合计、蓄积合计。注意:查询设计完成后必须运行。 三、综合应用题( 30分) 3 请编写名称为 change_c的程序并执行;该程序实现下面的功能: 将雇员工资表 salarys进行备份,备份文件名为 bak_salarys dbf;利用 “人事部 ”向 “财务部 ”提供的雇员工资调整表 c_salary1的 “工资 ”, 对 salarys表的 “工资 ”进行调整 (请注意:按 “雇员号 ”相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动 )。 设计一个名称为 form2的表单,上面有 “调整 ”(名称 Co
4、mmand1)和 “退出 ”(名称Command2)两个命令按钮。单击 “调整 ”命令按钮时,调用 change_c命令程序实现工资调整;单击 “退出 ”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。 国家二级 VF机试模拟试卷 203答案与解析 一、基本操作题( 30分) 1 【正确 答案】 (1) 在命令窗口执行命令: MODIFY DATABASE ecommerce,打开数据库设计器。 在数据库设计器中,右击 customer表,选择【修改】快捷菜单命令,打开“customer”表设计器,在 “字段 ”选项卡的 “字段名 ”列的最后一个空白文本框中输入
5、字段名 “email”,在 “类型 ”下拉框中选择 “字符型 ”,在 “宽度 ”文本框中输入 “20”,单击 “确定 ”按钮保存表结构修改。 (2)右击数据库设计器中的 customer表,选择【修改】快捷菜单命令,打开表设计器,在 “字 段 ”选项卡中选中 “性别 ”,在 “字段有效性 ”的 “规则 ”文本框中输入:性别 $“男女 “,在 “信息 ”框中输入: “性别必须是男或女 “,在 “默认值 ”文本框中输入:“女 “,单击 “确定 ”按钮保存表结构修改。 (3) 在数据库设计器中,拖动 customer表 “索引 ”下方的主索引 “会员号 ”到orderitem表 “索引 ”下方的普通
6、索引 “会员号 ”上。为两个表建立联系。 在数据库设计器中,拖动 article表 “索引 ”下方的主索引 “商品号 ”到 erdentem表“索引 ”下方的普通索引 “商品号 ”上,为两个表建立联系。 (4) 选中 customer和 orderitem两个表之间的连线 (被选中的线会变粗 ),首先执行【数据库】 【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,对两对关系均做以下修改:选择 “更新 ”下的单元格内容为 “级联 ”; “删除 ”下的单元格内容为 “限制 ”; “插入 ”下的单元
7、格内容为 “限制 ”。单击 “确定 ”按钮保存参照完整性的修改。 【试题解析】 本大题考查 T数据库设计器的使用;字段有效性规则的设置; 永久联系的建立。 需要注意的是字段有效性规则是在表设计器中建立的, “默认值 ”、 “规则 ”和 “信息 ”的设置均属于字段有效性规则范围,在输入各有效性规则的值时要注意对应的数据类型。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: OPEN DATABASE FRDB,打开 FRDB数据库。 步骤 2:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框中选中 “表单
8、”选项,然后单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “表单向导 ”项,单击 “确定 ”按钮,启动表单向导。 步骤 3:在表单向导的 “步骤 1-字段选取 ”界面的 “数据库和表 ”下选中 “FR_T”表,将 “可用字段 ”中的字段全部添加到 “选定字段 ”中,单击 “下一步 ”按钮。 步骤 4:在表单向导的 “步骤 2-选择表单样式 ”界面的 “样式 ”下选中 “阴影式 ”,在“按钮类型 ”下选择 “图片按钮 ”,单击 “下一步 ”按钮。 步骤 5:在表单向导的 “步骤 3-排序次序 ”界面中双击 “可用的字段或索引标识 ”中的 “户主编号 ”字段到 “选定字段 ”列表
9、中,再选择 “升序 ”,单击 “下一步 ”按钮。 步骤 6:在表单向导的 “步骤 6-完成 ”界面中的 “请键入表单标题 ”下方文本框中输入 “资源数据输入维护 ”,单击 “完成 ”按钮。 步骤 7:在 “另存为 ”对话框的 “保存表单为: ”框中输入表单文件名 fr_edit,单击“保存 ”按钮。 (2)步骤 1:在命令窗口执行命令: OPEN DATABASE frdb,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE QUERY one,打开查询设计器,在 “添加表 或视图 ”对话框中,分别双击 FR_T表和 TREE_T表,将表添加到查询设计器中,此时,添加的表会按照数据
10、库中已存在的表间联系自动为 2个表在查询设计器中建立联系。 步骤 3:根据题目要求,在 “字段 ”选项卡的 “可用字段 ”中,依次双击 “ft t户主编号 ”和 “tree_t树种名称 ”,将它们添加到 “选定字段 ”列表中;然后在 “函数和表达式 ”下的文本框中输入表达式: sum(fr_t面积 )as面积合计,再单击 “添加 ”按钮,将其添加到 “选定字段 ”列表中;继续在 “函数和表达式 ”下的文本框中输入表达式:sum(fr_t蓄积 )as蓄积合计,同样单击 “添加 ”按钮,将其添加到 “选定字段 ”列表中。 步骤 4:在 “排序依据 ”选项卡内双击 “选定字段 ”列表框中的 “fr_
11、t户主编号 ”,将其添加到 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”。 步骤 5:在 “分组依据 ”选项卡内依次双击 “可用字段 ”列表框中的 “fr_t户主编号 ”和 “tree_t树种名称 ”,将两个字段添加到 “分组字段 ”列表框中。 步骤 6:执行【查询】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件 名 one,单击 “确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考生文件夹下。 【试题解析】 (1)本题主要考查的是表单向导的使用,操作比较简单,只需根
12、据向导提示一步步操作即可。 (2)本题主要考查的是查询设计器的使用。本题的重点是要弄清楚按哪些字段分组。根据题意,因为每个户主可能有多块土地,并且不同的土地中可能是相同的树种,所以应该先按户主编号分组,再按树种名称分组,即可得出每个农户所有的每个树种的面积合计和蓄积合计。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行命令: MODIFY COMMAND chanae_c,打开程序文件编辑器编写代码。 步骤 2:在编辑器中输入如下程序代码: SELECT * FROM SALARYS INTO TABLEbak_salarysSELECT 3USE c_salary1
13、ORDER 雇员号 SELECT salarysSET RELATION_TO雇员号 INTO c_8alary1REPLACE ALL 工资 WITH c_salary1工资 FOR雇员号 =c_salary1雇员号 SET RELATION TO 步骤3:单击 “常用 ”工具栏中的 “运行 ”按钮,保存并运行程序。 步骤 4:在命令窗口执行命令: CREATE FORM form2,打开表单设计器新建表单。 步骤 5:从 “表单工具栏 ”中依次向表单添加两个命令按钮控件。在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 2-14。步骤 6:双击 “调整
14、”命令按钮,编写 Click事件代码: do change_c 步骤 7:双击 “退出 ”命令按钮,编写Click事件代码: THISFORM RELEASE 步骤 8:单击 “常用 ”工具栏中的 “运行 ”按钮保存并运行表单。 【试题解析】 本题考查的是程序的编写;表单的建立以及常用控件属性的设置;控件事件代码的编写。程序的大致思想是:先通过 select查询语句将 salarys表进行备份,然后以 “雇员号 ”为当前索引打开 c_salary1表,接着通过索引 “雇员号 ”建立 salarys表和 c_salary1表的临时联系,这样, c_salary1表中记录指针就会随着salarys表中记录指针的变化而变化,即两个表中的记录指针在同一时刻指向同一个 “雇员号 ”;然后将 salarys表中的 “工资 ”值用 c_salary1表中的 “工资 ”值替换。