1、国家二级 VF 机试-试卷 73 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)打开“订货管理”数据库,并将表 order_list 添加到该数据库中。 (2)在“订货管理”数据库中建立表 customer,表结构描述如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14) (3)为新建立的 customer 表创建一个主索引。索引名和索引表达式均是“客户号”。 (4)将表order detai1 从数据库中移出,并永久删除。(分数:2.00)_二、简单应用
2、题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)请修改并执行名称为 form1 的表单,要求如下: 为表单建立数据环境,并将“雇员”表添加到数据环境中。 将表单标题修改为“XXX 公司雇员信息维护”。 修改命令按钮“刷新日期”的 Click 事件下的语句,使用 SQL 的更新命令。将“雇员”表中“日期”字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加语句行。 (2)建立一个名称为 menu1 的菜单,菜单栏有“文件”和“编辑浏览”两个菜单。“文件”菜单下有“打开”、“关闭退出”两个子菜单;“编辑浏览”菜单下有“雇员编辑”、“部门编辑”和“
3、雇员浏览”三个子菜单。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.首先将 order_detail 表全部内容复制到 od_bak 表,然后完成如下操作: (1)将 od_bak 表中的订单号字段值只保留最后一个字母(用 REPLACE 命令或 SQLUPDATE 命令完成修改)。 (2)用 SQL 语句对 od bak 表编写完成如下功能的程序: 把“订单号”相同并且“器件号”相同的订单合并为一条记录,“单价”取最低价,“数量”取合计。 结果先按新的“订单号”升序排序,再按“器件号”升序排序。 最终记录的处理结果保存在 od ne
4、w 表中,表中的字段由“订单号”、“器件号”、“器件名”、“单价”和“数量”构成。 (3)最后将程序保存为 prog1prg,并执行该程序。(分数:2.00)_国家二级 VF 机试-试卷 73 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)打开“订货管理”数据库,并将表 order_list 添加到该数据库中。 (2)在“订货管理”数据库中建立表 customer,表结构描述如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14) (3)为新建立的 cu
5、stomer 表创建一个主索引。索引名和索引表达式均是“客户号”。 (4)将表order detai1 从数据库中移出,并永久删除。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY DATABASE 订货管理 。打开数据库设计器。右击数据库设计器选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击 order_list 表,将表添加到数据库中。 (2)在数据库设计器中右击鼠标,选择【新建表】快捷菜单命令,在弹出的“新建表”对话框中单击“新建表”图标按钮,然后在弹出的“创建”对话框的“输入表名”框中输入“customer”,单击“保存”按钮打开表设计器。 根
6、据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”,由于本题没有要求输入数据,单击“否”按钮。 (3)右击数据库设计器中的 cuomer 表,选择【修改】快捷菜单命令,打开 customer 表设计器,在“字段”选项卡中选中“客户号”,在“索引”列中选择“升序”,然后在“索引”选项卡中修改“索引类型”为主索引,建立“客户号”字段的主索引,单击“确定”按钮保存表结构修改。 (4)右击数据库设计器中的 order derail 表,选择【删除】快捷菜单命令,在弹出的对话框中单击“删除”按钮,将 order_
7、derail 表从数据库中永久删除。)解析:解析:本题考查了数据库及表的基本操作;索引的建立。 向数据库中添加表的操作在数据库设计器中完成。建立表索引可以在表设计器中进行,在表设计器的“字段”选项卡中,可以通过选择“排序”下拉框中的“升序”和“降序”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在“索引”选项卡中进行修改。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)请修改并执行名称为 form1 的表单,要求如下: 为表单建立数据环境,并将“雇员”表添加到数据环境中。 将表单标题修改为“XXX 公司
8、雇员信息维护”。 修改命令按钮“刷新日期”的 Click 事件下的语句,使用 SQL 的更新命令。将“雇员”表中“日期”字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加语句行。 (2)建立一个名称为 menu1 的菜单,菜单栏有“文件”和“编辑浏览”两个菜单。“文件”菜单下有“打开”、“关闭退出”两个子菜单;“编辑浏览”菜单下有“雇员编辑”、“部门编辑”和“雇员浏览”三个子菜单。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: MODIFY FORM FORM1 ,打开表单设计器修改表单。 步骤 2:右击表单选择【数据环境】快捷菜单命令,继
9、续在表单数据环境中单击右键选择【添加】快捷菜单命令,在“添加表或视图”对话框中双击“唐员”表,将表添加到数据环境中。 步骤 3:在“属性”面板中修改表单(Form1)的 Caption 属性值为“XXX 公司雇员信息维护”。 步骤 4:双击表单中的“刷新日期”命令按钮(Command1),查看按钮的 Click 事件代码: UPDATE ALL 日期 WITH DATE() 修改后的代码如下: UPDATE 雇员 SET 日期=DATE() 步骤 5:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。 (2)步骤 1:在命令窗口执行命令: CREATE MENU men
10、u1 ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 2:在菜单设计器“菜单名称”列的文本框中依次输入“文件”和“编辑浏览”两个主菜单名,“结果”下拉框中选择为“子菜单”,单击“文件”行的“创建”按钮进入下级菜单设计,在“菜单名称”列的第 1、2 行文本框中依次输入子菜单名“打开”和“关闭退出”。 步骤 3:通过“菜单级”下拉框返回主菜单项设计界面,参照步骤2 的操作再建立“编辑浏览”的下级菜单。 步骤 4:执行【菜单】【生成】菜单命令,在弹出的Visual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单
11、文件。)解析:解析:(1)本题考查了表单及控件的常用属性、时间和方法;表单数据环境;SQL 更新语句。 在表单设计器中可以通过快捷菜单命令或“表单设计器”工具栏打开数据环境;修改表单的属性可以在“属性”面板中操作,标题属性为 Caption;利用 SQL 更新语句修改表记录,其固定的语法结构是:UPDATE 表名SET 字段名=表达式,字段名 1=表达式 11WHERE 条件表达式。 (2)本题主要考查了下拉菜单的设计,操作过程中注意主菜单和子菜单的操作,从子菜单返回主菜单设计界面,可以使用菜单设计器右侧的“菜单栏”下拉框,另外,鳊写“退出”菜单命令时,要熟记返回系统菜单的命令语句:SET S
12、YSMENU TO DEFAULT;最后要注意生成可执行菜单文件。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.首先将 order_detail 表全部内容复制到 od_bak 表,然后完成如下操作: (1)将 od_bak 表中的订单号字段值只保留最后一个字母(用 REPLACE 命令或 SQLUPDATE 命令完成修改)。 (2)用 SQL 语句对 od bak 表编写完成如下功能的程序: 把“订单号”相同并且“器件号”相同的订单合并为一条记录,“单价”取最低价,“数量”取合计。 结果先按新的“订单号”升序排序,再按“器件号”升序排序。 最终记
13、录的处理结果保存在 od new 表中,表中的字段由“订单号”、“器件号”、“器件名”、“单价”和“数量”构成。 (3)最后将程序保存为 prog1prg,并执行该程序。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: SELECT * FROMorder_detail INTO TABLE od_bak ,将 order_detail 表的全部内容复制到 od_bak 表中。 步骤 2:在命令窗口执行命令: UPDATE od_bak SET 订单号=RIGHT(ALLTRIM(订单号),1) ,将 od_bak 表中的“订单号”字段值只保留最后一个字母。 步骤 3:
14、在命令窗口执行命令: MODIFY COMMAND PROG1 ,新建程序并打开程序编辑器。 步骤4:在程序编辑器中输入如下程序代码: SELECT 订单号,器件号,器件名; MIN(单价) AS 单价,SUM(数量) AS 数量; FROM OD_BAK; GROUP BY 订单号,器件号; ORDER BY 订单号,器件号; INTO TABLE OD_NEW 步骤 5:单击“保存”按钮,并运行程序。)解析:解析:本题主要考查的是程序的建立方法、SQL 分组与计算查询语句、记录的修改方法。本题的SQL 分组与计算查询语句比较复杂,本题大概可以分为以下几步:首先利用 select 语句将 order_detail表的记录复制到新表中,该语句比较简单。 接着,利用 UPDATE 语句更新表中的记录值,不熟悉 UPDATE语句的考生也可以通过 replace.with.命令更新。 最后,通过 SQL 分组与计算查询语句对记录进行合并,其中用到了 min()和 sum()函数计算,分组语句则要求同时对两个字段进行分组,首先是按订单号字段分组,接着再按配件号分组,分组计算完毕之后,再通过 order by 短语对查询结果进行排序,最后保存查询结果到新表中。