1、国家二级 VF机试模拟试卷 184及答案与解析 一、基本操作题( 30分) 1 (1)修改菜单 my_menu, my_menu中的 “文件 ”菜单项下有子菜单项 “新建 ”“打开 ”、 “关闭 ”和 “退出 ”,请在 “关闭 ”和 “退出 ”之间加一条水平的分组线,并为 “退出 ”菜单项设置一条返回到系统菜单的命令 (不可以使用过程 )。 (2)创建一个快速报表 sport_report,报表中包含了表 “金牌榜 ”中的 “国家代码 ”和“金牌数 ”两个字段。 (3)使用 SQL建立表的语句建立一个与自由表 “金牌榜 ”结构完全一样的自由表golden dbf。请将该 SQL语句存储在文件
2、one prg中,否则不得分。 (4)使用 SQL语句向自由表 golden dbf中添加一条记录 (“011“, 9, 7, 11)。请将该 SQL语句存储在文件 two prg中,否则不得分。 二、简单应用题( 40分) 2 (1)打开程序文件 progerr prg,按文件中给出的功能要求改正其中的错误,以文件名 prognew prg重新保存该文件并运行程序。 (2)建立顶层表单,表单文件名为myform scx,表单控件名为 myform,表单标题为 “顶层表单 ”。为 顶层表单建立菜单 mymenu。菜单栏如图 1-35所示 (无下拉菜单 ),单击 “退出 ”菜单时,关闭释放此顶层
3、表单,并返回到系统菜单 (在过程中完成 )。三、综合应用题( 30分) 3 在考生文件夹下有 cj表 (含有学号、语文、数学、英语和学分 5个字段 ),其中前4项已有数据。 请编写符合下列要求的程序并运行程序; 设计一个名为 myform的表单,表单中有两个命令按钮,标题分别为 “计算 ”和“退出 ”。程序运行时,单击 “计算 ”按钮应完成下列操作: 计算每一个学生的总学分并存入对应的 “学分 ”字段 。学分的计算方法是:语文60分以上 (包括 60分 )2学分,否则 0分;数学 60分以上 (包括 60分 )3学分,否则 0分;英语 60分以上 (包括 60分 )4学分,否则 0分。 根据上
4、面的计算结果,生成一个新的表 temp(要求表结构的字段类型与 cj表对应字段的类型一致 ),并且按 “学分 ”降序排序,如果 “学分 ”相等,则按 “学号 ”升序排序。 单击 “退出 ”按钮,程序终止运行。 国家二级 VF机试模拟试卷 184答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY MENU my-menu,打开菜单设计器,接着单击菜单设计器中 “文件 ”行的 “编辑 ”按钮进入子菜单界面。 选中 “退出 ”子菜单命令,然后单击菜单设计器右边的 “插入 ”命令按钮,插入一个菜单名称为 “新菜单项 ”菜单行,修改菜单名称为: -。 修
5、改 “退出 ”菜单命令的 “结果 ”项为 “命令 ”,并输入命令语句: SET SYSMENU TO DEFAULT。 执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPro对话框中单击“是 ”按钮,接着系统会弹出 “生成菜单 ”对 话框,单击 “生成 ”按钮生成一个可执行的菜单文件。 在命令窗口执行命令: DO my_menu mpr,运行菜单查看结果。 (2) 在命令窗口执行命令: USE金牌榜,打开 “金牌榜 ”表。 在命令窗口执行命令: CREATE REPORT sport_report,打开报表设计器,然后执行【报表】 【快速报表】菜单命令,在弹出的 “快速报表 ”对
6、话框中单击 “字段 ”命令按钮,在弹出的 “字段选择器 ”对话框中,将 “国家代码 ”和 “金牌数 ”两个字段添加到 “选定字段 ”列表框中, 单击 “确定 ”按钮关闭 “字段选择器 ”对话框。 接着单击 “确定 ”按钮,关闭 “快速报表 ”对话框,新建快速报表,预览并保存报表设计。 (3) 在命令窗口执行命令: MODIFY COMMAND one,打开程序文件编辑器。 在编辑器中输入代码: CREATE TABLE golden(国家代码 C(3),金牌数 I,铜牌数 I)。 在命令窗口执行命令: DO one prg,执行程序文件。 (4) 在命令窗口执行命令: MODIFY COMMA
7、ND two,打开程序文件编辑器。 在编辑器中输入代码: INSERT INTO golden VALUES(“011“, 9, 7,11)。 在命令窗口执行命令: DO two prg,执行程序文件。 【试题解析】 本题考查了菜单设计器的使用;快速报表的建立; SQL查询语句; SQL数据插入语句。 在菜单设计过程中,注意插入的水平线同样是占一行菜单命令,水平线用 “ -”符号表示;快速报表的建立需要在报表设计器中进行,在报表设计器中可 以通过菜单命令启动建立快速报表的功能,建立快速报表前应先指定报表的数据源;利用 SQL的 CTREATE TABLE命令可以新建数据表; SQL插入语句只需
8、直接套用命令格式即可完成本题表记录的插入。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: MODIFY COMMAND progerr,打开 progerr程序文件,文件中的命令代码如下: 本题目需要在基本操作题的基础上完成。本程序在表 orders dbf的基础上完成如下功能: (1)创建视图 vicwes,视图内容为按职工号统 计订单金额 (每个职工经手的订单总金额 ),统计结果包括:职工号、总金额: (2)从视图 viewes中查询订单总金额在 30000以上 (含 30000)的职工信息 (职工号,总金额 ),查询结果按总金额降序排序并存入表 ne
9、wtable dbf,。OPEN DATABASE ORDERSMANAGE CREATE views AS; SELECT职工号,SUM(金额 ) AS总金额; FROM ORDERS; GROUP BY职 工号 SELECT * FROM ORDERS ; WHERE 总金额 =30000; ORDER BY总金额 DESC;修改程序中的错误行,修改后的程序如下: OPEN DATABASE ORDERSMANAGE CREATE VIEW views AS; &命令格式错误,建立视图命令要使用 CREATE VIEW SELECT职工号, SUM(金额 ) AS总金额; FROM ORD
10、ERS; GROUP BY职工号 SELECT*FROM views; &从视图 views中查找,不是从 orders表查 询,是第二处错误 WHERE总金额 =30000; ORDER BY总金额 DESC; INTO TABLE newtable &将结果保存在表中 步骤 2:执行【文件】 【另存为】菜单命令,在弹出的 “另存为 ”对话框的 “保存文档为: ”文本框中输入新的文件名: prognew,单击 “保存 ”命令保存文件。 步骤 3:在命令窗口执行命令: DO prognew prg,执行程序文件。 (2)步骤 1:在命令窗口执行命令: CREATE MENU mymenu,在弹
11、出的“新建菜单 ”对话框中单击 “菜单 ”图标按钮,打开菜单设计器。 在菜单设计器 “菜单名称 ”列的文本框中依次输入 “文件 ”、 “编辑 ”和 “退出 ”3个主菜单名。 步骤 2:选择“退出 ”菜单命令的 “结果 ”项为 “过程 ”,单击 “过程 ”后面的 “创建 ”按钮打开过程编辑器,编写过程代码并输入命令语句: myform RELEASE。 步骤 3:执行【显示】 【常规选项】菜单命令,在弹出的 “常规选项 ”对话框中勾选 “顶层表单 ”复选框,然后单击 “确定 ”按钮,保存修改。 步骤 4:执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPro对话框中单击 “是 ”按
12、钮,接着系统会弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件,关闭菜单设计器。 步骤 5:在命令窗口执行命令: CREATE FORMmyform,打开表单设计器。选中表单,在 “属性 ”窗口中修改表单 (myform)的属性值,见表 2-37。步骤 6:双击表单 (myform)编写表单的 Load事件代码,代码如下: DO mymenu mpr WITH THIS,“TTT“ 步骤7:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 (1)本题主要考查了利用 SQL命令建立视图; SQL分组查询; SQL排序查询。
13、利用 SQL命令建立视图的基本命令格式为: CREATE VIEW视图名 ASSELECT语句,本题提供的源程序中,不难看出第一处错误是建立视图时的命令出错。 本题的第二处错误是根据题意得出,要求从视图 views中查询数据,而提供的程序中所查找的数据源是 “orders”表,与题目要求不符。 本题的第三处错误是,缺少查询结果取向语句,题目要求将查询结果保存在表NEWTABLE中,应使用 INTO TABLE或 INTO DBF语句。 (2)本题主要考查的是菜单在顶 层表单中的应用。主要包括两大部分的操作,即菜单设计和表单设计。 操作过程可按以下步骤进行: 通过菜单设计器建立菜单,注意主菜单和
14、子菜单的建立。菜单设计有两个关键操作:一是在菜单设计器中勾选 “常规选项 ”对话框中的 “顶层表单 ”,表示此菜单存在顶层表单中;二是在释放表单时,要使用表单的文件名,即本题中可以通过MAINFORM RELEASE命令释放 MAINFORM表单,注意不要使用THISFORM RELEASE命令释放表单。 在表单设计过程中,要注意将表单设置为顶层表单,通过表单的 ShowWindow属性值可以进行设置,而在表单中调用菜单文件是在表单的 Load(或 INIT)事件中进行调用,还需要通过 THIS短语指定当前表单对象的引用。其基本格式为:DO=60 &语文 60分以上的学分+2UPDATE CJ
15、 SET学分 =学分 +3 WHERE数学 =60 &数学 60分以上的学分+3(可与前一个值进行累加 )UPDATE cj SET学分 =学分 +4 WHERE英语 =60 &英语 60分以上的学分 +4(可与前两个值进行累加 )SELECT*FROM cj ORDER BY学分DESC,学号 INTO TABLE temp dbf *“退出 ”按钮的 Click 事件代码 * THISFORM RELEASE 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果。将表单文件保存到考生文件夹下。 【试题解析】 本大题考查了表单命令按钮的常用属性和方法的设置; SQL更新语句的使用。在设计程序代码时,一定要注意题目要求,所求的字段值是一个累加结果,而不是一项值的取值,因此,顺序执行各条更新语句时,都 是在当前值的基础上进行操作。 另外要注意的是本题中的 “学分 ”字段是一个数值型数据,因此,在进行计算前,要先定义一个初始的数值 “0”给该字段,再执行 SQL的数据更新语句。