1、国家二级 VF机试(操作题)模拟试卷 476及答案与解析 一、基本操作题 1 在考生文件夹下完成下列操作: (1)新建 “菜单 ”数据库,将考生文件夹下的所有自由表添加到该数据库中。 (2)新建一个项目 “菜单管理 ”,将 “菜单 ”数据库添加进该项目。 (3)为 “厨师 ”表创建一个主索引,索引名为 PK,索引表达式为 “编号 ”;为 “菜品 ”表创建一个主索引,索引名和索引表达式都为 “菜名 ”;再设置 “菜系 ”为普通索引,索引名和索引表达式均为 “菜系 ”,以上索引都为升序。 (4)为 “八大菜系 ”创建一 个主索引 (升序 ),索引名和索引表达式均为 “菜系 ”。通过“菜系 ”为 “
2、菜品 ”表和 “八大菜系 ”表创建永久联系,并设置参照完整性约束:更新规则为 “级联 ”,其他默认。 二、简单应用题 2 (1)将 order detaill表中的全部记录追加到 order detail表中,然后用 SQL SELECT语句完成查询:列出所有订购单的 “订单号 ”、 “订购日期 ”、 “器件号 ”、 “器件名 ”和“总金额 ”(按 “订单号 ”升序, “订单号 ”相同再按 “总金额 ”降序 ),并将结果存储到results表中 (其中 “订单号 ”、 “订购日期 ”、 “总金额 ”取自 order list表, “器件号 ”、“器件名 ”取自 order detail表 )。
3、 (2)打开 modil prg命令文件,该命令文件包含 3条 SQL语句,每条 SQL语句中都有一个错误,请改正 (注意:在出现错误的地方直接改正,不可以改变 SQL语句的结构和 SQL短语的顺序 )。 三、综合应用题 3 设计一个文件名和表单名均为 rate的表单,表单的标题为 “外汇汇率查询 ”,表单界面如图 3-2222所示,表单中有两个下拉列表框 (CombO1和 CombO2),这两个下拉列表框的数据源类型 (RowSourceType 属性 )均为字段,且数据源 (RowSource 属性 )分别是外汇汇率表的 “币种 1”和 “币种 2”字段 (不要给出表名前缀 );另外有币种
4、1(Labell)和币种 2(Label2)两个标签以及两个命令按钮 “查询 ”(Command1)和 “退出 ”(Command2)。运行表单时,首先从两个下拉列表框选择币种,然后单击 “查询 ”按钮用 SQL语句从外汇汇率表中查询相应币种 (匹配币种 1和币种 2)的信息,并将结果存储到表 temp rate中。单击 “退出 ”按钮关闭表单。要求:在 “币种 1”中选择“澳元 ”,在 “币种 2”中选择 “美元 ”,单击 查询按钮生成 temp rate表。 国家二级 VF机试(操作题)模拟试卷 476答案与解析 一、基本操作题 1 【正确答案】 【操作步骤】 (1) 选择 “文件 ”菜单
5、下的 “新建 ”子菜单,弹出 “新建 ”对话框,在该对话框里面选取 “数据库 ”单选按钮。 单击 “新建数据库 ”图标按钮,在弹出的 “创建 ”对话框的 “数据库名 ”文本框中输入 “菜单 ”。 单击 “保存 ”命令按钮将数据库文件保存在考生文件夹下。 在数据库设计器上单击鼠标右键,在弹出的快捷菜单中选择 “添加表 ”菜单项,弹出 “打开 ”对话框,对话框中选择 “八大菜系 ”自由表添加 到当前数据库中。 重复步骤 ,把自由表 “菜品 ”和 “厨师 ”添加到数据库当中。 (2) 选择 “文件 ”菜单下的 “新建 ”子菜单,弹出 “新建 ”对话框,文件类型选择“项目 ”。 单击 “新建文件 ”图
6、标按钮,弹出 “创建 ”对话框,输入项目名称:菜单管理 pjx,保存到考生文件夹下。 在项目管理器下,选择 “数据 ”选项卡,再选择“数据库 ”。 单击 “添加 ”按钮,弹出 “打开 ”对话框,找到考生目录下的 “菜单 ”数据库文件并打开,添加到项目管理器的数据库中。 (3) 在项目管理器中,选择 “数据 ”选项卡,单击 “数据库 ”展开,选择 “菜单 ”数据库文件 并展开,继续展开 “表 ”,然后选中表下面的 “厨师 ”表,单击右侧的 “修改 ”命令,打开表设计器。 单击 “索引 ”选项卡,在索引名中输入 “PK”,在索引类型中选择 “主索引 ”选项,在索引表达式中输入 “编号 ”。 单击
7、“确定 ”按钮,完成主索引的建立。 和前面的步骤一样,为 “菜品 ”表建立主索引,打开表设计器,选择 “索引 ”选项卡,在索引名中输入 “菜名 ”,在索引类型中选择 “主索引 ”选项,在索引表达式中输入 “菜名 ”。 再建立一个普通索引,在索引名中输入 “菜系 ”,在索引类型中选择 “普通索引 ”选项,在索引表达式中输入 “菜系 ”。 单击 “确定 ”按钮,完成 “菜品 ”表索引的建立。 (4) 在项目管理器上选中数据库文件 “菜单 ”,单击右侧 的 “修改 ”按钮,打开数据库设计器。 在数据库设计器中,选中 “八大菜系 ”表,单击鼠标右键,弹出快捷菜单,选择 “修改 ”子菜单,打开表设计器。
8、 为 “八大菜系 ”表建立主索引,在表设计器上,选择“索引 ”选项卡,在索引名中输入 “菜系 ”,在索引类型中选择 “主索引 ”选项,在索引表达式中输入 “菜系 ”。 单击 “确定 ”按钮,完成主索引的建立。 选择 “八大菜系 ”表中的索引 “菜系 ”,并拖动其到表 “菜品 ”表的 “菜系 ”索引上,这样两个表之间就建立起了永久性联系,如图 4-85所示。 单击 “数据库 ”菜单下的 “清理数据库 ”子菜单,完成数据库的 清理。 右键单击 “八大菜系 ”表和 “菜品 ”表之间的连线,弹出快捷菜单,选择 “编辑参照完整性 ”子菜单,系统弹出 “参照完整性生成器 ”对话框。 选择 “更新规则 ”选
9、项卡,设置更新规则为 “级联 ”,如图 4-86所示。 单击 “确定 ”按钮,回到数据库设计器。 二、简单应用题 2 【正确答案】 (1)【操作步骤】 步骤 1:在命令窗口执行命令: SELECT*FROM order detail 1 INTO ARRAY temD INSERT INTO order detail FROM ARRAY temp 将 demill表中的记录全部复制到 detail表中。 步骤 2:在命令窗口执行如下 SQL命令语句完成查询: SELECT order list订单号 order list 订购日期, order detail器件号 order detail器
10、件名, Order list总金额; VROM订货管理 !order list INNER JOIN 订货管理 !order detail; ON order list订单号: order detail。订单号; ORDER BY order list订单 号, order list总金额 DESC; INTO TABLE results dbf (2)【操作步骤】 步骤 1:在命令窗口执行命令: MODIFY COMMANDmodii,打开 modil程序文件,文件中的命令代码如下: &所有器件的单价增加 5元 UPDATE order detaill SET单价 WITH单价 +5 计算每
11、种器件的平均单价 SELECT器件号, AVG(单价 )AS平均价 FROM order detaiii ORDER BY器件号 INTO CURSOR lsb &查询平均价小于 500的记录 SELECT*FROM isb FOR平均价 500 修改程序中的错误行,修改后的程序如下: UPDATE order detaill SET单价 =单价 +5 UPDATE语句中赋值是通过 “=”号,而不是 WITH SELECT器件号, AVG(单价 )As平均价 FROM order detaill GROUP BY器件号 INTO CURSOR isb GROUP BY短语才是分组短语而ORDE
12、R BY短语是用来对查询结果进行排序的 SELECT*FROM isb WHERE平均价 500 SELECT的条件短语是 WHERE,而不是 FOR 步骤 2:保存文件修改,在命令窗口执行命令: DOmodi1 Drq,执行程序文件。 三、综合应用题 3 【正确答案】 【操作步骤】步骤 1:命令窗口执行: OPEN DATABASE外汇,打开 “外汇 ”数据库。步骤 2:命令窗口执行: CREATE FORM rate,打开表单设计器新建表单。步骤 3:右击表单选择【数据环境】打开表单数据环境,表单数据环境中右击选择【添加】,在 “添加表或视图 ”对话框中双击 “外汇汇率 ”表,将其添加到数
13、据环境中。步骤 4:从 “表单工具栏 ”中 向表单添加两个标签、两个组合框和两个命令按钮。在 “属性 ”面板的下拉框中选择表单对象,在 “全部 ”选项卡中修改对象属性值,见表 4-30。 步骤 5:双击命令按钮,编写各个命令按钮的 Click事件代码如下: *“查询 ”按钮的 Click事件代码 *IF USED(“外汇代码 ”)SELECT外汇代码 ELSEUSE外汇代码 ENDIFLOCATE FOR外币名称=THISFORM COMB01 VALUEMMI=外币代码 LOCATE FOR外币名称=THISFORM COMB02 VALUEMM2=外币代码 SELECT*FROM RATE;WHERE币种 1代码 =MM1 AND币种 2代码 =MM2; INTO TABLE temD rate *“退出 ”按钮的 Click事件代码 *THISFORM RELEASE步骤 6:单击 “常用 ”工具栏中的 “运行 ”按钮运行表单。在 “币种 1”中选择 “澳元 ”,在 “币种 2”中选择“美元 ”,单击 “查询 ”按钮生成 temp_rate表。