频道栏目
首页 > 资讯 > Visual FoxPro > 正文

2014年计算机二级VF考前试题及答案解析第8套

14-07-26        来源:[db:作者]  
收藏   我要投稿

  一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

  在考生文件夹下已有order、orderitem和goods三个表。其中,order表包含订单的基本信息,orderitem表包含订单的详细信息,goods表包含商品(图书)的相关信息。

  在考生文件夹下完成如下操作:

  1.创建一个名为"订单管理"的数据库,并将已有的order、orderitem和goods三个表添加到该数据库中。

  2.在表设计器中为order表建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。

  3.通过"订单号"在order表和orderitem表之间建立一个一对多的永久联系,它们的和索引表达式均为"订单号"。

  4.为上述建立的联系设置参照完整性约束:更新规则为"限制",删除规则为"级联",插入规则为"限制"。

  本题的主要考核点:数据库的建立、将自由表添加到数据库中、主索引和普通索引的建立、建立两个表之间的联系、设置参照完整性约束。

  解题思路:

  1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,输入数据库名称为"订单管理",在数据库设计器中依次添加order、orderitem和goods表。

  2、打开order表的表设计器,打开"索引"选项卡,在索引名处输入:nf,类型选择"普通索引",表达式为:year(签订日期)。

  3、接着,在索引名处输入:订单号,类型选择"主索引",表达式为:订单号。再打开orderitem表的表设计器,打开"索引"选项卡,在索引名处输入:订单号,类型选择"普通索引",表达式为:订单号。在数据库设计器中,选中order表中的索引"订单号"并拖动到orderitem表的"订单号" 的索引上并松开,这样两个表之间就建立起了永久联系。

  4、为联系指定参照完整性:在联系上单击右键,打开"编辑参照完整性"对话框或者在"数据库"菜单中选择"编辑参照完整性",打开"参照完整性"生成器。选择更新规则为"限制",删除规则为"级联",插入规则为"限制"。

  二、简单应用(2小题,每题20分,计40分)

  1.利用查询设计器创建查询,从order、orderitem和goods表中查询2001年签订的所有订单的信息,查询结果依次包含订单号、客户名、签订日期、商品名、单价和数量等六项内容。各记录按订单号降序排序;订单号相同按商品名降序排序。查询去向为表tableone。最后将查询保存在 queryone.qpr文件中,并运行该查询。

  2.在考生文件夹下已有表单文件myform.scx,其中包含一个标签、一个文本框和一个命令按钮(不要改变它们的名称)。如下图所示:

  

  请设置"确定"按钮的Click事件代码,使得当表单运行时,单击命令按钮可以查询在文本框中输入的指定客户的所有订单的信息,查询结果依次包含订单号、签订日期、商品名、单价和数量等五项内容。各记录按订单号升序排序;订单号相同按商品名升序排序,并将查询结果存放在表tabletwo中。

  设置完成后运行表单,然后在文本框中输入客户名lilan,并单击"确定"按钮完成查询。

  本题主要考核点:利用查询设计器建立查询、SQL语句运用。

  解题思路:

  第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将order、orderitem和goods表添加到查询设计器中,并设置三表间的联系。在"字段"选项卡选择"订单号"、"客户名"、"签订日期"、"商品名"、"单价"和"数量"字段;切换到"筛选"中,在"字段名"的表达式中输入:YEAR(Order.签订日期),"条件"中选择"=","实例"中输入:2001;切换到"排序依据"中选择字段"order. 订单号",在"排序选项"处选择"降序",再选择字段"Goods.商品名",在"排序选项"处选择"降序";单击查询菜单下的查询去向,选择表,输入表名tableone,最后将查询保存在queryone.qpr文件中,并运行该查询。

  第2题:设置"确定"按钮的Click事件代码:

  select Order.订单号,Order.签订日期,Goods.商品名,Goods.单价,Orderitem.数量;

  from goods,orderitem,order;

  where Order.订单号=Orderitem.订单号 and Goods.商品号=Orderitem.商品号;

  and Order.客户名=thisform.Text1.Text;

  order by Order.订单号,Goods.商品名 into table tabletwo.dbf

  保存表单并运行,在文本框中输入lilan,并单击"确定"命令按钮。

  三、综合应用(1小题,计30分)

  在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个"考试"子菜单,如下图所示。

  

  菜单命令"计算"和"返回"的功能都通过执行过程完成。

  菜单命令"计算"的功能是计算各商品在2001年的订购总金额(若某商品没有被订购,则其总金额为零)。计算结果保存在three表中,其中包含商品名和总金额两个字段,各记录按商品名升序排序。

  提示:可分两步完成,首先从表order和orderitem中获取2001年订单有关商品数量的信息,并保存在临时表中;然后再将表goods与临时表进行左联接,并完成总金额的计算。

  菜单命令"返回"的功能是恢复标准的系统菜单。

  菜单程序生成后,运行菜单程序并依次执行"计算"和"返回"菜单命令。

  本题的主要考核点:创建菜单。

  解题思路:

  1、建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。

  2、在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"计算",结果为过程。在过程中输入下列命令:

  select orderitem.商品号,orderitem.数量;

  from order inner join orderitem;

  on order.订单号=orderitem.订单号;

  where year(order.签订日期)=2001;

  into table tmp.dbf

  select goods.商品名,sum(goods.单价*tmp.数量) as 总金额;

  from goods left outer join tmp;

  on goods.商品号=tmp.商品号;

  group by goods.商品名;

  order by goods.商品名;

  into table three.dbf

  do while not eof()

  if isnull(总金额)

  replace 总金额 with 0

  endif

  skip

  enddo

  在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SET SYSMENU TO DEFAULT。

  3、最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且运行菜单程序并依次执行"计算"和"返回"菜单命令。

相关TAG标签
上一篇:
下一篇:2014年计算机二级VF考前试题及答案解析第9套
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站