1、国家二级 VF机试(操作题)模拟试卷 432及答案与解析 一、基本操作题 1 在考生文件夹下完成如下操作: (1)新建一个名为 sdb的数据库文件,然后将 client表添加到数据库中。 (2)使用 SQLUPDATE语句将 client表中客户号为 “061009”的客户的性别改为 “男 ”。然后将该语句保存在命令文件 sone prg中。 (3)使用 SQL INSERT语句在 client表中添加一条记录,其中客户号为 “071009”、客户名为 “杨晓静 ”、性别为 “女 ”、出生日期为 1991年 1月 1日。然后将该语句保存在命 令文件 stwo prg中(注意:只能插入一条记录)
2、。 (4)使用 SQL ALTER语句为 client表的 “性别 ”字段设置有效性规则:性别必须为男或女。然后将该语句保存在命令文件 sthree prg中。 二、简单应用题 2 (1)利用查询设计器创建查询,从 customers、 orders、 orderitems和 goods表中查询所有客户号前两个字符为 “06”的客户签订的订单信息。查询结果依次包含客户号、订单号、商品号、商品名和数量五项内容。各记录按客户号升序排序、客户号相同按订单号升序排序、订单号也相同 则按商品号升序排序。查询去向为表tableone。最后将查询保存在 queryone qpr文件中,并运行该查询。 (2)
3、扩展 Visual FoxPro基类 CommandButton,创建一个名为 MyButton的自定义按钮类。自定义按钮类保存在名为 myclasslib的类库中。 自定义按钮类 MyButton需满足以下要求: 1)其标题为 “退出 ”。 2)其 Click事件代码的功能是关闭并释放所在表单。然后创建一个文件名为formone的表单,并在表单上添加一个基于自定义类 MyButton的按钮。 三、综合应 用题 3 在考生文件夹下已有一个菜单文件 mymenu mnx,运行相应的菜单程序时会在当前 VFP系统菜单的末尾追加一个 “考试 ”子菜单,如图 3-9所示(在菜单设计器环境下,使用 “常
4、规选项 ”命令打开相应对话框,在 “位置 ”中指定 “追加 ”)。在考生文件夹下还有一个表单文件 myform scx,表单中包含一个标签、一个文本框和两个命令按钮,如图 3-10所示。 现在请按要求实现菜单项和命令按钮的相关功能。菜单命令 “统计 ”和 “退出 ”的功能都通过执行过程完成。菜单命令 “统计 ”的功能是运行 myform表单。菜单命令 “退出 ”的功能是恢复标准的系统菜单。单击“确定 ”按钮要完成的功能是:从 customers、 orders、 orderitems和 goods表中查询金额大于等于用户在文本框中指定的金额的订单信息。查询结果依次包含订单号、客户号、签订日期、
5、金额四项内容,其中金额为该订单所签所有商品的金额之和。各记录按金额降序排序,金额相同按订单号升序排序。查询去向为表 tabletwo。单击 “关闭 ”按钮要完成的功能是:关闭并释放所在表单。最后,请运行菜单程序、打开表单,然后在文本框中输入 1000,单击 “确定 ”按钮完成查询统计。 国家 二级 VF机试(操作题)模拟试卷 432答案与解析 一、基本操作题 1 【正确答案】 (1) 创建数据可以使用菜单命令来完成,通过 “文件 ”菜单下的 “新建 ”子菜单命令打开 “新建 ”对话框,文件类型选择 “数据库 ”,单击 “新建文件 ”图标按钮,弹出 “创建 ”对话框,输入数据库名称: sdb d
6、bc,保存到考生目录下。 单击数据库设计器工具栏的哦 “添加表 ”按钮,弹出 “打开 ”对话框,找到考生目录下的 client表,单击 “确定 ”按钮完成数据表的添加。 (2) 在命令窗口执行 SQL命令: update client set性别 =“男 “where客户号 =“061009“ 建立表单可通过 “文件 ”菜单下的 “新建 ”子菜单命令打开 “新建 ”对话框,文件类型选择 “程序 ”,单击 “新建文件 ”图标按钮,打开代码编辑界面。 把上述命令拷贝到代码编辑区。 单击菜单栏的 “保存 ”按钮,弹出 “另存为 ”对话框,输入程序名: sone prg,保存到考生文件夹。 (3) 在
7、命令窗口执行 SQL命令: insert into clientvalues( “071009“, “杨晓静 “, “女 “, 19 9111) 建立表单可通过 “文件 ”菜单下的 “新建 ”子菜单命令打开 “新建 ”对话框,文件类型选择 “程序 ”,单击 “新建文件 ”图标按钮,打开代码编辑界面。 把上述命令拷贝到代码编辑区。 单击菜单栏的 “保存 ”按钮,弹出 “另存为 ”对话框,输入程序名: stwo prg,保存到考生文件夹。 (4) 在命令窗口执行命令: use client dbfexclusive 在命令窗口执行 SQL命令: alter table clientalter性别
8、set check性别 =“男 “or性别 =“女 “ 建立表单可通过 “文件 ”菜单下的 “新建 ”子菜单命令打开 “新建 ”对话框,文件类型选择 “程序 ”,单击 “新建文件 ”图标按钮,打开代码编辑界面。 把上述命令拷贝到代码编辑区。 单击菜单栏的 “保存 ”按钮,弹出 “另存为 ”对话框,输入程序名: sthree prg,保存到考生文件夹。 创建数据库、 SQL的使用。 【试题解析】 本题考查数据库的建立、 SQL语句的使用。 本题的 SQL语句比较简单,使用 UPDATE、 INSERT和 ALTER语句。 二、简单应用题 2 【正确答案】 (1)步骤 1:建立查询可以使用菜单命令
9、完成,选择 “文件 ”菜单下的“新建 ”子菜单,弹出 “新建 ”对话框,文件类型选择 “查询 ”,单击 “新建文件 ”图标按钮,打开查询设计器并弹出 “添加表或视图 ”对话框。步骤 2:单击对话框里面的“其他 ”按钮,弹出 “打开 ”对话框,找到考生目录下的 customers表并打开。步骤3:重复步骤 2,继续添加 orders、 orderitems和 goods表,并根据客户号、订单号、商品号建立表之间的内部联接,添加完成之后比查询设计器如图 463所示,然后单击 “关闭 ”按钮关闭该 “添加表或视图 ”对话框。步骤 4:选择查询设计器的 “字段 ”选项卡,依次选 “custerms客户
10、号 ”、 “orders订单号 ”、“orderitems商品号 ”、 “goods商品名 ”和 “orderitems数量 ”到 “选定字段 ”,如图464所示。步骤 5:切换到 “筛选 ”选项卡,在 “字段名 ”的 “表单时 ”中输入 “LEFT(customers客户号,2)”, “条件 ”选择 “=”, “实例 ”中输入 “06”,如图 465所示。步骤 6:切换到 “排序依据 ”选项卡,选择字段 “customers客户号 ”排序选项为 “升序 ”,再选择“orders 订单号 ”排序选项为 “升序 ”,选择 “oderitems商品号 ”排序选项为 “升序 ”。步骤 7:单击查询设
11、计器工具栏里面的 “查询去向 ”按钮,弹出 “查询去向 ”对话框,选择去向为 “表 ”,输入表名为: tableone,单击 “确定 ”按钮完成查询去向设置。步骤 8:单击菜单栏的保存按钮,弹出 “另存为 ”对话框,输入查询文件名:queryone qpr,保存到考生文件夹。步骤 9:运行查询。查询的设计和使用。 (2)步骤 1:建立类可以使用菜单命令完成,选择 “文件 ”菜单下的 “新建 ”子菜单,弹出 “新建 ”对话框,文件类型选择 “类 ”。步骤 2:单击 “新建文件 ”图标按钮,弹出 “新建类 ”对话框,在类名右边的文本框输入 “MyButton”,在派生于右边的列表框选择“Comma
12、ndButton”,在存储与右边的 “浏览 ”按钮选择考生文件夹,再输入文件“myclaslib”,单击 “确定 ”按钮,设置完成如图 466所示。步骤 3:单击步骤 2中的 “确定 ”按钮打开类设计器,在属性窗口中,设置按钮类 MyButton的Caption属性为 “退出 ”。步骤 4:双击 “退出 ”按钮进入 mybutton的事件代码编辑界面,在 Click事件中输入如下代码: thisform release步骤 5:保存新类MyButton。步骤 6:选择 “文件 ”菜单项下面的 “新建 ”子菜单,弹出 “新建 ”对话框,文件类型选择 “表单 ”。步骤 7:单击 “新建文件 ”图标
13、按钮,打开表单设计器。步骤8:在表单设计器工具栏里面单击 “查看类 ”按钮,弹出快捷菜单,选择 “添加 ”子菜单,弹出 “打开 ”对话框,找到 myclasslib vcx类库文件并打开,完成可是类库的添加。步骤 9:在表单上添加一个 MyButton控件。步骤 10:单击菜单栏的 “保存 ”按钮,弹出 “另存为 ”对话框,输入表单文件名: formone scx,保存到考生文件夹。自定义类的设计和使用、表单的创建。 【试题解析】 (1)本题考查了查询设计器的使用。 在查询设计器里面可以设置输出字段、筛选方式、排序依据等。 (2)本题考查自定义类的设计。 自定义类设计可以通过类设计器来完成,类
14、设计器中可以设置自定义类的属性、添加属性和方法等。 三、综合应用题 3 【正确答案】 步骤 1:打开菜单文件 mymenu mnx文件,增加两个子菜单向:统计和退出, “结果 ”设置均为 “过程 ”,并设置这两个菜单项的 “主菜单 ”为 “考试 ”,如图 467所示。步骤 2:在“统计 ”菜单的 “过程 ”中 输入命令: do form myform步骤 3:在 “退出 ”菜单的 “过程 ”中输入命令: set sysmenu to default步骤 4:保存菜单文件。步骤 5:通过工具栏的“打开 ”按钮打开 myform scx文件,进入表单设计器环境。步骤 6:双击 “设置 ”按钮,进入
15、按钮的 Click事件代码编辑界面,输入如下面的代码: je= val (Thisform Textl Value) SELECT Orders订单号, Customers客户号,Orders签订日期; sum (Orderitems数量 *Goods单价 )AS金额; FROM customers INNER JOIN orders; INNER JOIN orderitems; INNER JOIN goods ; ON Orderitems商品号 = Goods商品号; ON Orders订单号 =Orderitems订单号; ON Customers客户号 =Orders客户号; GR
16、OUP BY Orders订单号; HAVING金额 =je; ORDER BY 4 DESC, Orders订单号; INTO TABLE tabletwo dbf步骤 7:双击 “关闭 ”按钮,进入其 Click事件代码编辑界面,输入如下代码: this form release步骤 8:保存表单。运行菜单程序和表单,在表单的文本框输入 1000,单击 “确定 ”按钮完成统计查询。菜单的设计和使用、表单的设计和使用、控件事件代码。 【试题解析】 本大题考查了菜单设计、对象事件代码编写和 SQL语句,。 题目要求从 customers、 orders、 orderitems和 goods表中查询金额大于等于用户在文本框中指定的金额的订单信息,因此 SQL查询中需要首先计算处金额, 然后根据金额和文本框的输入进行比较。