1、国家二级 VF 机试(操作题)-试卷 150 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)考生文件夹下完成如下操作(自由表 employee 中存放着职员的有关数据): 利用表设计器为employee 表创建一个普通索引,索引表达式为“姓名”,索引名为 xm。 打开考生文件夹下的表单文件formonescx,然后设置表单的 Load 事件代码:打开 employee 表,并将索引 xrn 设置为当前索引。 (2)建立表单,表单文件名和表单控件名均为 formtest,表单标题为“考试系统”,表单背景为灰色(BackColor=192,
2、192,192),其他要求如下: (3)在 testb 表单中编写“退出”按钮的事件代码,单击“退出”按钮,关闭表单。 (4)打开考生文件夹下的表单 two,选择“表单”菜单中的“新建方法程序”命令,在“新建方法程序”对话框中,为该表单新建一个方法 test,然后双击表单,选择该方法编写代码,该方法的功能是使“测试”按钮变为不可用(提示:即将该按钮的 Enabled 属性设置为f)。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)将 order detaill 表中的全部记录追加到 order detail 表中,然后用 SQL SELECT 语句完成查询:列出所有订
3、购单的“订单号”、“订购日期”、“器件号”、“器件名”和“总金额”(按“订单号”升序,“订单号”相同再按“总金额”降序),并将结果存储到 results 表中(其中“订单号”、“订购日期”、“总金额”取自 order list 表,“器件号”、“器件名”取自 order detail 表)。 (2)打开modilprg 命令文件,该命令文件包含 3 条 SQL 语句,每条 SQL 语句中都有一个错误,请改正(注意:在出现错误的地方直接改正,不可以改变 SQL 语句的结构和 SQL 短语的顺序)。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下创建一个下拉式菜单
4、 mymenumnx,并生成菜单程序 enumpr。运行该菜单程序时会在当前 VFP 系统菜单的末尾追加一个“考试”子菜单,如图 3-13 所示。 (分数:2.00)_国家二级 VF 机试(操作题)-试卷 150 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)考生文件夹下完成如下操作(自由表 employee 中存放着职员的有关数据): 利用表设计器为employee 表创建一个普通索引,索引表达式为“姓名”,索引名为 xm。 打开考生文件夹下的表单文件formonescx,然后设置表单的 Load 事件代码:打开 employee 表,
5、并将索引 xrn 设置为当前索引。 (2)建立表单,表单文件名和表单控件名均为 formtest,表单标题为“考试系统”,表单背景为灰色(BackColor=192,192,192),其他要求如下: (3)在 testb 表单中编写“退出”按钮的事件代码,单击“退出”按钮,关闭表单。 (4)打开考生文件夹下的表单 two,选择“表单”菜单中的“新建方法程序”命令,在“新建方法程序”对话框中,为该表单新建一个方法 test,然后双击表单,选择该方法编写代码,该方法的功能是使“测试”按钮变为不可用(提示:即将该按钮的 Enabled 属性设置为f)。(分数:2.00)_正确答案:(正确答案:(1)
6、步骤 1:建立表索引。 步骤 2:在命令窗口执行命令: MODIFY FORM formone ,打开表单设计器修改表单。 步骤 3:双击表单(Forml),编写表单的 Load 事件代码,内容如下: USE employee SET ORDER To xm (2)步骤 1:在命令窗口执行命令: CREATE FORMformtest ,打开表单设计器新建表单。 步骤 2:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表 2-4。 (3)打开 testb 表单设计器,在设计环境下双击“退出”命令按钮(Commandl),在Click 事件中编写程序代码: (4)步骤
7、 1:在命令窗口执行命令: MODIFY FORMtwo ,打开表单设计器修改表单。 步骤 2:执行【表单】【新建方法程序】菜单命令,在弹出的“新建方法程序”对话框的“名称”文本框中输入“test”,单击“添加”按钮新增方法,然后关闭对话框。 步骤 3:在“属性”窗口中双击此方法,打开用户自定义过程代码框输入: )解析:二、简单应用题(总题数:1,分数:2.00)2.(1)将 order detaill 表中的全部记录追加到 order detail 表中,然后用 SQL SELECT 语句完成查询:列出所有订购单的“订单号”、“订购日期”、“器件号”、“器件名”和“总金额”(按“订单号”升序
8、,“订单号”相同再按“总金额”降序),并将结果存储到 results 表中(其中“订单号”、“订购日期”、“总金额”取自 order list 表,“器件号”、“器件名”取自 order detail 表)。 (2)打开modilprg 命令文件,该命令文件包含 3 条 SQL 语句,每条 SQL 语句中都有一个错误,请改正(注意:在出现错误的地方直接改正,不可以改变 SQL 语句的结构和 SQL 短语的顺序)。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: SELECT*FROM order detail INTO ARRAY temp INSERT INTO
9、 order detail FROM ARRAY temp 将 detaill 表中的记录全部复制到 detail 表中。 步骤 2:在命令窗口执行如下 SQL 命令语句完成查询: 1 SELECT order-list订单号,order-list 订购日期, order-detail器件号, order-detail器件名,order-list总金额; 2 FROM 订货管理!order-liSt INNER JOIN 订货管理!order-detail ; 3 ON order-list订单号=order-detail 订单号;4 ORDER BY orderlist订单号,order-l
10、ist 总金额 DESC; 5 INTO TABLE resultSdbf (注意:以上 SQL 语句是根据查询文件生成的,大家也可以通过查询设计器完成本题操作。) (2)步骤 1:在命令窗口执行命令: MODIFY COMMAND modil ,打开 modil 程序文件,文件中的命令代码如下: 所有器件的单价增加 5 元 1 UPDATE order-detaill SET 单价 WITH 单价+5 计算每种器件的平均单价 2 SELECT 器件号,AVG(单价)AS 平均价 FROM order-detaill ORDER BY 器件号 INTO CURSOR lsb 查询平均价小于 5
11、00 的记录 3 SELECT*FROM 1sb FOR 平均价 DO modilprg ,执行程序文件。)解析:解析:(1)本题考查了 SQL 的简单查询和联接查询。进行联接查询时主要是判断查询输出字段来自哪个数据表(本题都已指明),再正确设置联接条件。 (2)本题考查了 SQL 更新功能;分组计算查询和简单查询。 第一处错误属于 SQL 更新命令格式错误,通过 SQL 命令给字段赋新值是通过“=”号设置的。 第二处错误是分组短语与排序短语混淆了,这也是改错题中经常设置错误的地方。 第三处错误是查询语句的命令格式错误,SQL 查询中筛选条件通过 WHERE 短语指出。三、综合应用题(总题数:
12、1,分数:2.00)3.在考生文件夹下创建一个下拉式菜单 mymenumnx,并生成菜单程序 enumpr。运行该菜单程序时会在当前 VFP 系统菜单的末尾追加一个“考试”子菜单,如图 3-13 所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE MENU mvmenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 2:在菜单设计器“菜单名称”列的文本框中输入“考试”主菜单名,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第 l、2 行文本框中依次输入子菜单名“统计”和“返回”,将
13、这 2 个子菜单的“结果”都设置为“过程”,分别单击 2 个过程后面的“创建”按钮打开过程编辑器,编写过程代码。 步骤 3:两个过程代码如下: “统计”菜单命令的过程代码: 1 SELECT customers姓名 as 客户名, COunt(*)as 订单数; 2 FROM customers INNER JOIN orders ; 3 ON customers客户号=Orders客户号; 4 WHERE year(Orders签订日期)=2007 ; 5 GROUP BY customers姓名; 6 ORDERBY 2 DESC,customers姓名; 7 INTO TABLE tab
14、letwodbf “返回”菜单命令的过程代码: 1 SET sYSMENU NOSAVE 2 SET SYSMENU TO DEFAULT 步骤 4:执行【显示】【常规选项】菜单命令,在弹出的“常规选项”对话框中选择“位置”中的“追加”单选钮,然后单击“确定”按钮,保存修改。 步骤5:执行【菜单】【生成】菜单命令,在弹出的 Visual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,在“输出文件”对话框中修改输出的文件名为:enumpr,单击“生成”按钮生成一个可执行的菜单文件。 步骤 6:在命令窗口执行命令:DO enumpr,运行菜单程序,依次执行“统计”和“返回”菜单命令。)解析:解析:本题主要考查了菜单设计器的使用;SQL 分组计算查询。 本题的关键是“统计”菜单项的过程设计部分,是一个 SQI。分组计算查询语句,查询的两个表文件是 customers 和 orders 表,查询条件中要通过 year()函数获得具体的年份值,分组条件为 customers 的姓名字段,利用 ORDERBY 短语指定排序方式,最后通过工 NTO TABLE 短语指定输出去向。