1、国家二级 VF机试(操作题)模拟试卷 120 及答案与解析 一、基本操作题 1 (1)创建一个名为 “订单管理 ”的数据库,并将已有的 employee、 orders和 customer三个表添加到该数据库中。 (2)为 Orders表建立一个普通索引,索引名为 nf,索引表达式为 “year(签订日期 )”。 (3)为 employee表建立主索引,为 order建立普通索引,索引名和索引表达式均为 “职员号 ”。通过 “职员号 ”在 employee表和 orders表之间建矗一个一对多的水久联系。 (4)为上 述建立的联系设置参照完整性约束:更新规则为 “限制 ”,删除规则为 “级联
2、”,插入规则为 “限制 ”。 二、简单应用题 2 (1)打开程序文件 progerr prg,按文件中给出的功能要求改正其中的错误,以文件名 prognew prg重新保存该文件并运行程序。 (2)建立顶层表单,表单文件名为myform SCX,表单控件名为 myform,表单标题为 “顶层表单 ”。为顶层表单建立菜单 mymenu。菜单栏如图 3-24所示 (无下拉菜单 ),单击 “退出 ”菜单时,关闭释放此顶层表单,并返回到系统菜单 (在过程中完成 )。 三 、综合应用题 3 考生文件夹下的 gnht dbf是一个合同管理表文件,其中部分字段的含义是:hth(合同号 )、 dhdw(订货单
3、位 )、 ghdw(供货单位 )、 msl(订货数量 )。 编写程序 progzh p唱分别统计订货单位数、供货单位数、订货总数,并将结果填写到 jieguo dbf。 (在考生文件夹下已经存在 )表文件中。 说明:以上命令文件必须执行,并产生所要求的结果。 国家二级 VF机试(操作题)模拟试卷 120 答案与解析 一、基本操作题 1 【正确答案】 (1) 命令窗口执行: NODIFY DATABASE订单管理,创建数据库并打开数据库设计器。 数据库设计器中右击,选择【添加表】,侄 “打开 ”对话框中双击 employee表添加到数据库中;以同样的方法,再将 orders和 customer表
4、添加到数据库中。 (2) 在数据库设计器中右击 orders表,选择【修改】,打开表设计器。 在表设计器的 “索引 ”选项卡的 “索引名 ”列输入 nf, “类型 ”设置为 “普通索引 ”,“表达式 ”中输入 “year(签订日期 )”,单击 “确定 ”按钮保存表结构修改。 (3) 右击数据库设计器中的 employee表,选择【修改】,打开表设计器, “字段 ”选项卡选 “职员号 ”, “排序 ”列中选择 “升序 ”,建立 “职工号 ”的普通索引,在 “索引 ”选项卡中修改 “类型 ”为 “主索引 ”,单击 “确定 ”。 参照 employee表的操作为 orders表再建立 “职员号 ”字
5、段的普通索引。然后在数据库设计器中拖动 employee表 “索引 ”下方的主索引 “职员号 ”到 orders表中 “索引 ”下方的普通索引 “职员号 ”上,为两个表建立联系。 (4) 选中两个表之间的关联线 (被选中的连线会变粗 ),首先执行【 数据库】 【清理数据库】菜单命令,清空数据表中带有删除标记已的记录,然后执行【数据库】 【编辑参照完整性】菜单命令。 在打开的 “参照完整性 ”对话框的表格中,选择 “更新 ”下的单元格内容为 “限制 ”; “删除 ”下的单元格内容为 “级联 ”; “插入 ”下的单元格内容为 “限制 ”。单击 “确定 ”按钮保存参照完整性的修改。 【试题解析】 本
6、题考查了数据库的建立及基本操作;表索引的建立;表间联系的建立;参照完整性设置。 利用 MODIFY DATABASE 命令可以新建数据库并打开数据库设计器,在数据库设计器中可以进 行添加、新建和删除表等操作。数据库设计器中,建立联系前必须对两个表中进行连接的字段建立相关索引,并通过索引字段建立表问联系,在表设计器的 “索引 ”选项卡中可以建立表索引。建立参照完整性前要先建立两个表的联系;建立联系后要先清理数据库,然后再设置参照完整性。 二、简单应用题 2 【正确答案】 (1)步骤 1:命令窗口执行: MODIFY COMMAND progerr,打开progerr程序文件,文件中的命令代码如下
7、: *本题目需要在基本操作题的基础上完成。本程序在表 orders dbf的基础上完成如下功能: *(1)创建视图 viewes,视图内容为按职工号统计订单金额 (每个职工经于的订单总金额 ),统计结果包括:职工号、总金额: *(2)从视图 viewes 中查询订单总金额在 30000以上 (含 30000)的职工信息 (职工号,总金额 ),查询结果按总金额降序排序并存入表 newtable dbf。 1 OPEN DATABASE ORDERSMANAGE 2 CREATE views AS; 3 SELECT 职工号,SUM(金额 )AS总金额; 4 FROM ORDERS; 5 GROu
8、P BY 职工号 6 SELECT * FROM ORDERS: 7 WHERE总金额 =30000; 8 ORDER BY总金额 DESC; 修改程序中的错误行,修改后的程序如下: 1 OPEN DATABASE ORDERSMANAGE 2 CREATE VIEW views AS; 命令格式错误,建市视图命令要使用 CREATE VIEW 3 SELECT 职工号, SUM(金额 )AS总金额; 4 FROM ORDERS; 5 GROUp BY职工号 6 SELECT * FROM views; 从视图 views中查找,不是从orders表查询,是第二处错误 7 WH ERE总金额
9、=30 0 00 ; 8 ORDER BY总金额 DESC; 9 INTO TABLE rfewtable将结果保存在表中 步骤 2:执行【文件】 【另存为】菜单命令,在弹出的 “另存为 ”对话框的 “保存文档为: ”文本框中输入新的文件名: prognew,单击 “保存 ”命令保存文件。 步骤 3:命令窗口执行: DO prognew prg,执行程序。 (2)步骤 1:命令窗口执行: CREATE MENu mymenu,在 “新建菜单 ”中单击 “菜单 ”按钮。在菜单设计器 “菜单名称 ”中依次输入 “文件 ”、 “编辑 ”和 “退出 ”3个主菜单名。 步骤 2:选择 “退出 ”菜单命令
10、的 “结果 ”项为 “过程 ”,单击 “过程 ”后面的 “创建 ”按钮打开过程编辑器,编写过程代码并输入命令语句:mvform RELEASE。 步骤 3:执行【显示】 【常规选项】菜单命令,在 “常规选项 ”中勾选 “顶层表单 ”复选框,然后单击 “确定 ”保存修改。 步骤 4:执行【菜单】 【生成】菜单命令,在弹出的对话框中单击 “是 ”按钮,弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件,关闭菜单设计器。 步骤 5:命令窗口执行: CREATE FORM myform,打开表单设计器。选中表单,在 “属性 ”窗口中修改表单 (myform)的属性值,见表 430
11、。步骤 6:编写表单的 Load事件代码如下: DO mymenu.mpr WITH THIS,“TTT“ 步骤 7:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 (1)本题主要考查了利用 SQL命令建立视图; SQL分组查询; SQL排序查询。 SQL 命今建立视 图的基本命令格式为: CREATE VIEWAS,本题第一处错误是建立视图时的命令出错。 本题的第二处错误是要求从视图 views 中查询数据,而不是 “orders”表,与题目要求不符。 本题的第三处错误是,缺少查询结果取向语句,题目要求将查询结果保存在表NEWTABLE 中,
12、应使用 INTO TABLE 或 INTO DBF语句。 (2)本题主要考查的是菜单在顶层表单中的应用。主要包括两大部分的操作,即菜单设计和表单设计。 菜单设计有两个关键操作:一是在菜单设计器 中勾选 “常规选项 ”对话框中的 “顶层表单 ”,表示此菜单存在顶层表单中;二是在释放表单时,要使用表单的文件名,即本题中可以通过 MAINFORM RELEASE 命令释放 MAINFORM表单,注意不要使用 THISF(DRM RELEASE命令释放表单。 在表单设计过程中,要注意通过表单的 showWindow属性值将表单设置为顶层表单,在表单的 Load(或 INIT)事件中调用菜单文件,还需要
13、通过 THIS 短语指定当前表单对象的引用。其基本格式为: DOWITHTHIS, “。 三、综合应用题 3 【正确答案】 步骤 1:在命令窗口执行命令: MODIFY COMMAND progzh,打开程序文件编辑器。 步骤 2:在程序文件编辑器中输入如下代码: 1 SELECT COUNT(DISTINCT dhdw)FROM gnht INTO ARRAY arr UPDATE JIEGUO SET num=arr WHERE name=“订货单位数 “ 3 SELECT COUNT(DISTINCT ghdw) FROM gnht INTO ARRAY arr 4 UPDATE jie
14、guo SET num=arr WHERE name=“供货单位数 “ 5 SELECT SUM(jhsl) FROM gnht INTO ARRAY arr 6 UPDATE jieguo SET num=arr WHERE name=“订货总数 “ 步骤 3:保存文件修改,在命令窗口执行 命令: DO progzh.prg,执行程序文件。 【试题解析】 本大题主要考查的是 SQL简单计算查询和数据更新功能。设计SQL 简单计算查询时,关键是要排除字段中重复的记录,利用 DISTINCT 短语可以消除重复记录,查询的结果可以保存到数组中,然后再利用 SQL更新语句更新表中的记录,根据题目,在 jieguo表中有 3条记录需要更新,因此,可以通过 3次计算和更新,分别更新表中的每条记录。