《计算机等级考试二级VFP上机试题及解题思路(20)》由会员分享,可在线阅读,更多相关《计算机等级考试二级VFP上机试题及解题思路(20)(7页珍藏版)》请在金锄头文库上搜索。
1、 计算机等级考试二级VFP上机试题及解题思路(20)其次十套一、根本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下的“订货治理“数据库中完成如下操作:1. 将order_detail、order_list和customer表添加到数据库。2. 为order_list表创立一个主索引,索引名和索引表达式均是“订单号“3. 建立表order_list和表order_detail间的永久联系(通过“订单号“字段)。4. 为以上建立的联系设置参照完整性约束:更新规章为“限制“,删除规章为“级联“,插入规章为“限制“。此题主要考核点:将一个自由表添加到数据库中、表索引的建立、表之间
2、的永久联系的建立、参照完整性约束的编辑等学问点此题解题思路:第一步:翻开考生文件夹下的“订货治理“数据库其次步:翻开数据库菜单项选择择“添加表(A)“,在弹出的“翻开“对话框中,选定考生文件夹下的order_detail表,再点击“确定“即可,这样表order_detail就添加到了“订货治理“数据库中,用同样的方法,将order_lsit和customer表也添加到“订货治理“数据库中第三步:在数据库设计器中选中表order_list,在主菜单中选择“修改(Y)“,弹出表设计器,选择表设计器“索引“标签,在索引名列中填入“订单号“,在索引类型列中选择“主索引“,在索引表达式列中填入“ 订单号
3、“,点击“确定“按钮,保存表构造第四步:在数据库设计器中,选中order_list表中的索引“订单号“并拖动到表order_detail的“订单号“的索引上并松开,这样两个表之间就建立起了永久联系。第五步:在第四步建立好永久联系之后,在两处表的“订单号“索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择“数据库“中的“编辑参照完整性(I)“,系统弹出“参照完整性生成器“对话框,在“更新规章“标签中,选择“限制“规章,在“删除“规章中选择“级联“,在“插入规章“中选择“限制“,单击“确定“保存所编辑的参照完整性。二、简洁应用(2小题,每题20分,计40分)在考生文件夹
4、下完成如下简洁应用:1. 列出客户名为“三益贸易公司“的订购单明细(order_detail)记录将结果先按“订单号“升序排列,同一订单的再按“单价“降序排列),并将结果存储到results表中(表构造与order_detail表构造一样)。2. 考生文件夹下有一个form1表单文件,其中三个命令按钮click大事下的语句都是错误的,请按如下要求进展修改(最终保存所做的修改)(1) 单击“刷新标题“命令按钮时,使表单的标题为“简洁应用“;(2) 单击“订单记录“ 命令按钮时,使表格控件中显示order_list表中的记录;(3) 单击“关闭表单“ 命令按钮时,关闭表单。留意:每处错误只能在原语
5、句上进展修改,不行以增加语句。此题主要考核点:SQL中的查询SELECT查询、联接查询、查询的排序、查询的结果的去向、子查询等;控件的属性、表单的操作等学问点。解题思路:第一小题:由于要查询客户名为“三益贸易公司“的订购单明细,而在订购单明细表order_detail中却没有客户名的字段,所以要通过联接查询来实现。由于要联接三个表,所以将三个依次放在FROM子句的后面,相互之间用逗号隔开:FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;联接的条件是CUSTOMER.客户号=ORDER_LIST.客户号 AND ORDER_LIST.订单号=ORDER_DETAIL.
6、订单号放在WHERE子句的后面,另外还有一个查询的条件上:CUTOMER.客户名=“三益贸易公司“也要放在WHERE的后面并与上面的条件用AND连接起来;查询的排序是通过子句ORDER BY来实现的,将排序的依据依次放在ORDER BY子句的后面,用逗号隔开:ORDER BY ORDER_DETAIL. 订单号,单价 DESC;结果集要放入一个永久表中要用INTO TABLE子句:INTO TABLE RESULTS。这样一个完整的SQL查询语句便可以写出来:SELECT ORDER_DETAIL.*;FROM ORDER_DETAIL,ORDER_LIST,CUSTOMER;WHERE CU
7、STOMER.客户号=ORDER_LIST.客户号 ;AND ORDER_LIST.订单号=ORDER_DETAIL.订单号;AND CUSTOMER.客户名=“三益贸易公司“;ORDER BY ORDER_DETAIL.订单号,单价 DESC;INTO TABLE RESULTS其次小题:翻开考生文件夹下的“form1.scx“,在表单设计器中双击“刷新标题“控件翻开代码编辑器,此处是对form对象的caption的属性进展赋值,所以此处应改为:thisform.caption=“简洁应用“; 在表单设计器中双击“订单记录“控件翻开代码编辑器,此处是要在表格控件中显示表“ORDER_LIST
8、.DBF“,所以要对grid1控件的RecordSource属性进展赋值,此处应改为:thisform.grid1.RecordSource=“order_list.dbf“;在表单设计器中双击“关闭表单“控件翻开代码编辑器,此处的功能是关闭表单,关闭表单要用到表单的Release方法,所以此处应改为:thisform.release退出保存。三、综合应用(1小题,计30分)首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段一样),然后编写满意如下要求的程序:依据order_list 表中的“订购日期“字段的值确定order_detail表的“新单价“字段的值,原则是
9、:订购日期为2022年的“新单价“字段的值为原单价的90%,订购日期为2022年的“新单价“字段的值为原单价的110%(留意:在修改操作过程中不要转变order_detail表记录的挨次),将order_detail表中的记录存储到od_new表中(表构造与order_detail表完全一样);最终将程序保存为prog1.prg,并执行该程序。接着再利用 Visual Foxpro的“快速报表“功能建立一个的简洁报表,该报表内容按挨次含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1.frx。此题主要考核点:程序的建立方法、程序中循环构
10、造的使用、SQL查询语句的使用、记录的修改方法;报表的建立方法等学问点此题解题思路:第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,系统弹出“新建“对话框,在“文件类型“中选择“程序“,再点击“新建文件“按钮,则系统弹出程序编辑窗口;其次步:在弹出的窗中中输入以下代码:SET TALK OFFINTO CURSOR CurTableWHERE 订单号=CurTable.订单号INTO CURSOR CurTableDO WHILE NOT EOF()UPDATE ORDER_DETAIL SET 新单价=单价*0.9;WHERE 订单号=CurTable.订单号SKIPENDD
11、OCLOSE ALLSET TALK ON第三步:单击“保存“工具栏按钮,以文件名prog1.prg保存程序文件在考生文件夹下,并运行程序。第四步:在Visual FoxPro主窗口按下组合键Ctrl+N,系统弹出“新建“对话框,在“文件类型“中选择“报表“,再点击新建文件按钮,系统弹出报表设计器第五步:单击主窗口“报表“菜单下的“快速报表(Q)“,系统弹出“翻开“对话框,选择考生文件夹下的order_detail.dbf表,单击“确定“,系统弹出“快速报表“对话框,单击“字段(F)“按钮,系统弹出“字段选择器“对话框,将订单号、器件号、器件名、新单价、数量依次放入“选定字段“中,单击“确定“,返回“快速报表“对话框,单击“确定“按钮后便生成了一个报表,将报表文件以文件名report1.frx保存在考生文件夹下。