1、二级 VISUAL+FOXPRO 机试 50 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下的“订货管理”数据库中完成下列基本操作: (1)将 order_detail、order_list 和customer 表添加到数据库。 (2)为 order_list 表创建一个主索引,索引名和索引表达式均是“订单号”。(3)建立表 order_list 和表 order_detail 间的永久联系(通过“订单号”字段)。 (4)为以上建立的联系设置参照完整性约束:更新规则为“限制”,删除规则为“级联”,插入规则为“限制
2、”。(分数:30.00)_二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)建立一个名为 my 的菜单,菜单中有两个菜单项“文件”和“返回”。“文件”菜单项下还有两个子菜单“打开”和“新建”。在“返回”菜单项下创建一个命令,负责返回系统菜单,其他菜单项不做要求。(2)根据数据库 stu 中的表“宿舍情况”和“学生信息”建立一个查询,该查询包含学生信息表中的字段“学号”和“姓名”及宿舍情况表中的字段“宿舍”和“电话”。要求按“学号”升序排序,并将查询保存为 myq。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.首先为 order_detail
3、表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据 order_list 表中的“订购日期”字段的值确定 order_detail 表的“新单价”字段的值,原则是:订购日期为 2001 年的“新单价”字段的值为原单价的 90%,订购日期为 2002 年的“新单价”字段的值为原单价的 110%(注意:在修改操作过程中不要改变 order_detail 表记录的顺序),将order_detail 表中的记录存储到 od_new 表中(表结构与 order_detail 表完全相同)。最后将程序保存为prog1.prg,并执行该程序。 接着再利用 Visual F
4、oxPro 的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有 order_detail 表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为 report1。(分数:30.00)_二级 VISUAL+FOXPRO 机试 50 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下的“订货管理”数据库中完成下列基本操作: (1)将 order_detail、order_list 和customer 表添加到数据库。 (2)为 order_list 表创建一个主索引,索引名和索引表达式均是“订单号”。(
5、3)建立表 order_list 和表 order_detail 间的永久联系(通过“订单号”字段)。 (4)为以上建立的联系设置参照完整性约束:更新规则为“限制”,删除规则为“级联”,插入规则为“限制”。(分数:30.00)_正确答案:()解析:在命令窗口输入命令:MODIFY DATABASE 订货管理,打开数据库设计器,右击数据库设计器,选择“添加表”快捷菜单命令,系统弹出“打开”对话框,将考生文件夹下的 order_list、order_detail 和customer 三个数据表依次添加到数据库中。 (2)在数据库设计器中,右击数据表 order_ list,选择“修改”快捷菜单命令
6、,系统弹出表设计器,在表设计器中选定“订单号”字段,然后在后面的“索引”下拉框中为该字段选择一个排序,最后在“索引”选项卡中,将索引类型选择为“主索引”。 (3)在数据库设计器中,将 order_ list 表中“索引”下面的“订单号”主索引字段拖到 order_ detail 表中“索引”下面的“订单号”索引字段上,建立两个表之间的永久性联系。 (4)在数据库设计器中,选择菜单命令“数据库”“清理数据库”,如图 3-59 所示。然后右击表 order_list 和表 order_detail 之间的关系线,在弹出的快捷菜单中选择“编辑参照性关系”,弹出如图 3-60 所示的参照完整性生成器,
7、根据题意,在3 个选项卡中分别设置参照规则。 解析 本大题考查的是有关数据库及数据库表之间的基本操作,注意每个小题完成操作的环境,添加表和建立表之间的联接以及设置参照完整性,都是在数据库环境中完成的,建立索引是在表设计器中完成。二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)建立一个名为 my 的菜单,菜单中有两个菜单项“文件”和“返回”。“文件”菜单项下还有两个子菜单“打开”和“新建”。在“返回”菜单项下创建一个命令,负责返回系统菜单,其他菜单项不做要求。(2)根据数据库 stu 中的表“宿舍情况”和“学生信息”建立一个查询,该查询包含学生信息表中的字段“学号”和“姓名”及
8、宿舍情况表中的字段“宿舍”和“电话”。要求按“学号”升序排序,并将查询保存为 myq。(分数:40.00)_正确答案:()解析:(1)在命令窗口中输入命令:CREATE MENU my,系统弹出一个“新建”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“文件”和“返回”。在“文件”的“结果”下拉框中选择“子菜单”,在“返回”的“结果”下拉框中选择“命令”。在“返回”菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。接着单击“文件”菜单项同一行中的“创建”按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每
9、个子菜单项的名称“打开”和“新建”。 根据题意,系统不再要求设计下级菜单,因此在两个子菜单的“结果”下拉框中选择“过程”或“命令”。选择菜单命令“菜单”“生成”,生成一个菜单文件 my.mpr。 (2)可以直接在命令窗口输入:CREATE QUERY myq,打开查询设计器,新建一个查询。在查询设计器中,分别将“宿舍情况”和“学生信息”两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击“确定”按钮,如图 3-61 所示。 在查询设计器中的“字段”选项卡中,将“可用字段”列表框中的“学生信息学号”、“学生信息姓名”和“宿舍情况宿舍”和“宿舍情况电话”四个字段添
10、加到右边的“选定字段”列表框中,在“排序依据”选项卡中,选择“学生信息学号”升序排序。执行菜单命令“查询”“运行查询”,查看查询结果。 解析 本大题 1 小题主要考查的是菜单设计器的“结果”下拉框中各项的使用功能,例如要建立下级菜单,在“结果”下拉框中就必须选择“子菜单”,而要执行某条菜单命令,就应该选择“命令”或“过程”。2 小题考查了联接查询,设计过程中主要注意两个表之间进行关联的字段。三、B三 综合应用题/B(总题数:1,分数:30.00)3.首先为 order_detail 表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据 order_list 表
11、中的“订购日期”字段的值确定 order_detail 表的“新单价”字段的值,原则是:订购日期为 2001 年的“新单价”字段的值为原单价的 90%,订购日期为 2002 年的“新单价”字段的值为原单价的 110%(注意:在修改操作过程中不要改变 order_detail 表记录的顺序),将order_detail 表中的记录存储到 od_new 表中(表结构与 order_detail 表完全相同)。最后将程序保存为prog1.prg,并执行该程序。 接着再利用 Visual FoxPro 的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有 order_detail 表的订单号、器
12、件号、器件名、新单价和数量字段的值,将报表文件保存为 report1。(分数:30.00)_正确答案:()解析:在命令窗口输入命令:USE order_detail &打开数据表 MODIFY STRUCTURE &打开表设计器 打开表设计器后,在“字段”选项卡的“数量”字段后增加一个新的字段,根据题意输入字段名:新单价,字段宽度和类型与“单价”字段一样。 在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段: *文件 prog1.prg 中的程序段* SET TALK OFF &将订购日期是2001 年的所有的订单号放入临时表 curtable 中 S
13、ELECT 订单号 FROM order_list WHERE YEAR(订购日期)=2001; INTO CURSOR curtable & 对所有订购日期是 2001 年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET 新单价=单价*0.9; WHERE 订单号=curtable.订单号 SKIP ENDDO & 将订购日期是 2002 年的所有的订单号放入临时表 CurTable 中 SELECT 订单号 FROM order_list WHERE YEAR(订购日期)=2002; INTO CURSOR curtable & 对所有订
14、购日期是 2002 年的计算新的单价 DO WHILE NOT EOF() UPDATE order_detail SET 新单价=单价*1.1; WHERE 订单号=curtable.订单号 SKIP ENDDO CLOSE ALL USE order_detail COPY TO od_new SET TALK ON * 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。 在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。选择菜单命令“报表”“快速报表”,系统首先要求选择报表数据源。根据题意,选择考生文件夹下的 order_detail 表作为报表数据源。系统接着弹出“快速报表对话框”,单击对话框中的“字段”命令按钮,在弹出的“字段选择器”对话框中,依次选择订单号、器件号、器件名、新单价和数量 5 个字段添加到“选定字段”列表框中,如图 3-62 所示。单击“确定”按钮,返回报表设计器,保存报表设计。单击工具栏中的预览按钮,可查看设计效果。 解析 本大题考查的主要是 SQL 语句的应用,包括数据定义、数据修改和数据查询功能,设计过程中可利用临时表来存放查询结果,再利用DO 循环语句对表中的记录逐条更新。