计算机2级vfp30套练习题带答案Word文档格式.docx
《计算机2级vfp30套练习题带答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机2级vfp30套练习题带答案Word文档格式.docx(103页珍藏版)》请在冰豆网上搜索。
二、简单应用题(共2小题,每题20分,计40分)
(1)使用SQL命令查询2001年(不含)以前进货的商品,列出其"
分类名称"
、"
商品名称"
和"
进货日期"
,查询结果按"
升序排序并存入文本文件infor.txt中,所用命令存入文本文件sql.txt中。
(2)用SQLUPDATE命令为所有"
商品编码"
首字符是"
3"
的商品计算销售价格:
销售价格为在进货价格基础上加22.68%,并把所用命令存入文本文件update.txt中。
(1)在命令窗口中输入命令:
MODIFYFILEsql,在文本编辑器窗口输入如下程序段:
******文件sql.txt中的程序段*****
SELECT分类名称,商品名称,进货日期FROM商品,分类WHERE分类.分类编码=商品.分类编码;
ANDYEAR(进货日期)<
2001TOFILEinforORDERBY进货日期
*******************************
在命令窗口输入命令:
DOsql.txt,运行程序。
程序运行结果如图11-2所示。
图11-2
(2)在命令窗口中输入命令:
MODIFYFILEupdate,在文本编辑器窗口输入如下程序段。
******文件update.txt中的程序段*****
UPDATE商品SET销售价格=进货价格*1.2268WHERELEFT(商品编码,1)='
3'
DOUpdate.txt,运行程序。
通过BROWSE命令可直接查看修改结果,结果如图11-3所示。
三、综合应用题(1小题,计30分)
对考生目录下的数据库rate建立文件名为myf的表单。
表单含有一个表格控件,用于显示用户查询的信息;
表单上有一个按钮选项组,含有"
外币浏览"
个人持有量"
个人资产"
三个选项按钮:
表单上有一个命令按钮,标题为"
浏览"
当选择"
选项按钮并单击"
按钮时,在表格中显示"
汇率"
表的全部字段;
选择"
按钮时,表格中显示"
数量"
表中的"
姓名"
,"
外币名称"
持有数量"
表中每个人的"
总资产"
(每个人拥有的所有外币中的每种基准价*持有数量的总和)。
单击"
关闭"
按钮退出表单。
在命令窗口中输入命令:
CREATEFORMmyf,打开表单设计器,通过"
表单控件"
工具栏向表单添加1个表格、1个选项按钮组和2个命令按钮。
选中表单,在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为"
,以同样的方法将第二个命令按钮设置Caption属性值改为"
,在属性面板顶端的下拉框中选择(Optiongroup1),将其ButtonCount属性值改为3,右击选项按钮组,选择"
编辑"
快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改三个单选项的Caption属性值为"
双击命令按钮"
,编写该控件的Click事件,程序代码如下:
******命令按钮Command1(浏览)的Click事件代码*****
DOCASE
CASEThisform.Optiongroup1.Value=1
SELECT*FROM汇率INTOCURSORtemp
Thisform.Grid1.RecordSourceType=1
Thisform.Grid1.RecordSource="
temp"
CASEThisform.Optiongroup1.Value=2
SELECT数量.姓名,外币名称,持有数量FROM数量,汇率WHERE汇率.外币代码=数量.外币代码;
INTOCURSORtemp
CASEThisform.Optiongroup1.Value=3
SELECT姓名,SUM(持有数量*基准价)AS总资产FROM汇率,数量;
WHERE汇率.外币代码=数量.外币代码GROUPBY姓名INTOCURSORtemp
ENDCASE
*********************************************************
以同样的方法为"
命令按钮编写Click事件代码:
Thisform.Release。
保存表单完成设计,运行结果如图11-4所示。
19
(1)将数据库stu添加到项目my中。
(2)修改表单for,将其中标签的字体大小修改为20。
(3)把表单for添加到项目my中。
(4)为数据库stu中的表"
学生"
建立惟一索引,索引名称为tel,索引表达式为"
电话"
(1)从菜单栏里单击"
文件"
并选择"
,或直接单击工具栏上的"
图标,在弹出的对话框中选择要打开的项目文件my.pjx。
在项目管理器my中,首先在"
选项卡中选择"
,然后单击选项卡右边的"
添加"
命令按钮,在系统弹出的"
对话框中,将考生文件夹中的数据库stu添加到项目管理器中,单击"
确定"
按钮。
(2)从菜单栏里单击"
图标,在弹出的对话框中选择要打开的表单文件for.scx。
单击表单上的标签控件,在其属性窗口中,把FontSize的属性值改为"
20"
单击工具栏上的"
保存"
图标,将更改保存。
(3)在项目管理器my中,首先在"
文档"
表单"
对话框中,将考生文件夹中的表单for.scx添加到项目管理器中,单击"
(4)在命令窗口输入命令:
MODIFYSTRUCTURE,在弹出的对话框中选择"
表,进入"
的数据表设计器界面,然后单击"
选项卡,此选项卡中的"
索引名"
索引表达式"
分别改为tel和"
,在"
索引类型"
的下拉框中,选择"
惟一索引"
按钮,保存数据表修改。
在考生文件夹下完成如下简单应用:
(1)将customer1表中的全部记录追加到customer表中,然后用SQLSELECT语句完成查询:
列出目前有订购单的客户信息(即有对应的order_list记录的customer表中的记录),同时要求按客户号升序排序,并将结果存储到results表中(表结构与customer表结构相同)。
(2)打开并按如下要求修改form1表单文件(最后保存所做的修改):
①在"
命令按钮的Click事件(过程)下的程序有两处错误,请改正之;
②设置Text2控件的有关属性,使用户在输入口令时显示"
*"
(星号)。
(1)在命令窗口输入命令:
MODIFYCOMMANDquery1,在程序文件编辑器窗口中输入如下程序段:
*******文件query1.prg的中程序段*******
USEcustomer
Appendfromcustomer1
SELECTDISTINCTcustomer.*FROMcustomer,order_listwherecustomer.客户号=order_list.客户号;
ORDERBYcustomer.客户号INTOTABLEresults.dbf
*************************************
DOquery1,程序将查询结果自动保存到新表results中。
(2)在命令窗口输入命令:
MODIFYFORMform1,打开表单form1.scx。
双击表单中的"
命令按钮,进入命令按钮的事件编辑窗口,在Click事件中的程序段如下:
*******"
命令按钮Click事件的源程序*******
功能:
如果用户输入的用户名和口令一致,则在提示信息后关闭该表单;
否则重新输入用户名和口令。
IfThisForm.Text1=ThisForm.Text2&
**********Error**********************
WAIT"
欢迎使用……"
WINDOWTIMEOUT/1
ThisForm.Close&
Else
用户名或口令不对,请重新输入……"
WINDOWTIMEOUT1
Endif
*********************************************
修改程序中的错误,正确的程序如下:
****"
命令按钮Click事件修改后的程序****
IfThisForm.Text1.Text=ThisForm.Text2.Text&
缺少属性Text
ThisForm.Release&
语法错误,关闭表单应该为Release
选中表单中的第二个文本框控件(Text2),在属性面板中修改该控件的PasswordChar属性值为"
,如图19-1所示,保存修改结果。
使用报表设计器建立一个报表,具体要求如下:
①报表的内容(细节带区)是order_list表的订单号、订购日期和总金额。
②增加数据分组,分组表达式是"
order_list.客户号"
,组标头带区的内容是"
客户号"
,组注脚带区的内容是该组订单的"
总金额"
合计。
③增加标题带区,标题是"
订单分组汇总表(按客户)"
,要求是3号字、黑体,括号是全角符号。
④增加总结带区,该带区的内容是所有订单的总金额合计。
最后将建立的报表文件保存为report1.frx文件。
提示:
在考试的过程中可以使用"
显示→预览"
菜单查看报表的效果。
首先打开表设计器,为order_list表按"
字段建立一个普通索引。
CREATEREPORTreport1,打开报表设计器。
右击报表空白区,选择快捷菜单命令"
数据环境"
,在数据环境设计器中,将数据表order_list添加到数据环境中,如图19-2所示。
然后将数据环境中order_list表中的订单号、订购日期和总金额3个字段依次拖放到报表的细节带区,如图19-3所示。
图19-2
图19-3
选择菜单命令"
报表"
-"
数据分组"
,系统弹出"
对话框,在对话框中输入分组表达式"
,关闭对话框回到报表设计器,可以看到报表设计器中多了两个带区:
组标头和组注脚带区,在数据环境中,将order_list表中的"
字段拖放到组标头带区,并在报表控件栏中单击"
标签"
按钮,添加一个标签"
,以同样的方法为组注脚带区增加一个"
标签,并将"
字段拖放到该带区,如图19-4所示。
双击域控件"
报表表达式"
对话框,在对话框中单击命令按钮"
计算"
,在弹出的对话框中选择"
总和"
单选项,关闭对话框,回到报表设计器。
图19-4
标题/总结"
,弹出"
对话框,在对话框中勾选"
标题带区"
总结带区"
复选框,为报表增加一个标题带区和一个总结带区;
然后设置标签字体,选择菜单命令"
默认字体"
,在弹出的"
字体"
对话框中,根据题意设置3号黑体字,接着通过"
报表控件"
工具栏,为总结带区添加一个标签"
最后在总结带区添加一个标签"
,再添加一个域控件,在弹出的"
中为域控件设置表达式为"
order_list.总金额"
格式"
对话框中选择"
数值型"
单选项,如图19-5所示。
单击命令按钮"
保存报表,利用常用工具栏中的"
预览"
图标按钮,可预览报表效果。
图19-5
20
在考生文件夹下的"
订货管理"
数据库中完成下列基本操作:
(1)将order_detail、order_list和customer表添加到数据库。
(2)为order_list表创建一个主索引,索引名和索引表达式均是"
订单号"
(3)建立表order_list和表order_detail间的永久联系(通过"
字段)。
(4)为以上建立的联系设置参照完整性约束:
更新规则为"
限制"
,删除规则为"
级联"
,插入规则为"
MODIFYDATABASE订货管理,打开数据库设计器,右击数据库设计器,选择"
快捷菜单命令,系统弹出"
对话框,将考生文件夹下的order_list、order_detail和customer三个数据表依次添加到数据库中。
(2)在数据库设计器中,右击数据表order_list,选择"
快捷菜单命令,系统弹出表设计器,在表设计器中选定"
字段,然后在后面的"
下拉框中为该字段选择一个排序,最后在"
选项卡中,将索引类型选择为"
(3)在数据库设计器中,将order_list表中"
下面的"
主索引字段拖到order_detail表中"
索引字段上,建立两个表之间的永久性联系。
(4)在数据库设计器中,选择菜单命令"
清理数据库"
,如图20-1所示。
然后右击表order_list和表order_detail之间的关系线,在弹出的快捷菜单中选择"
编辑参照性关系"
,弹出如图20-2所示的参照完整性生成器,根据题意,在3个选项卡中分别设置参照规则。
(1)建立一个名为my的菜单,菜单中有两个菜单项"
返回"
"
菜单项下还有两个子菜单"
在"
菜单项下创建一个命令,负责返回系统菜单,其他菜单项不做要求。
(2)根据数据库stu中的表"
宿舍情况"
学生信息"
建立一个查询,该查询包含学生信息表中的字段"
学号"
及宿舍情况表中的字段"
宿舍"
要求按"
升序排序,并将查询保存为myq。
CREATEMENUmy,系统弹出一个"
对话框,在对话框中单击"
菜单"
图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"
的"
结果"
下拉框中选择"
子菜单"
命令"
菜单项的命令文本框中编写程序代码:
SETSYSMENUTODEFAULT。
接着单击"
菜单项同一行中的"
按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称"
根据题意,系统不再要求设计下级菜单,因此在两个子菜单的"
过程"
或"
生成"
,生成一个菜单文件my.mpr。
(2)可以直接在命令窗口输入:
CREATEQUERYmyq,打开查询设计器,新建一个查询。
在查询设计器中,分别将"
两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击"
按钮,如图20-3所示。
图20-3
在查询设计器中的"
选项卡中,将"
可用字段"
列表框中的"
学生信息.学号"
学生信息.姓名"
宿舍情况.宿舍"
宿舍情况.电话"
四个字段添加到右边的"
选定字段"
列表框中,在"
排序依据"
选项卡中,选择"
升序排序。
执行菜单命令"
查询"
运行查询"
,查看查询结果。
首先为order_detail表增加一个新字段:
新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:
根据order_list表中的"
订购日期"
字段的值确定order_detail表的"
新单价"
字段的值,原则是:
订购日期为2001年的"
字段的值为原单价的90%,订购日期为2002年的"
字段的值为原单价的110%(注意:
在修改操作过程中不要改变order_detail表记录的顺序),将order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同)。
最后将程序保存为prog1.prg,并执行该程序。
接着再利用VisualFoxPro的"
快速报表"
功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1。
USEorder_detail&
打开数据表
MODIFYSTRUCTURE&
打开表设计器
打开表设计器后,在"
选项卡的"
字段后增加一个新的字段,根据题意输入字段名:
新单价,字段宽度和类型与"
单价"
字段一样。
MODIFYCOMMANDprog1,在程序编辑窗口中输入如下程序段:
*********文件prog1.prg中程序段*********
将订购日期是2001年的所有的订单号放入临时表curtable中
SELECT订单号FROMorder_listWHEREYEAR(订购日期)=2001INTOCURSORaa
对所有订购日期是2001年的计算新的单价
DOWHILENOTEOF()
UPDATEorder_detailSET新单价=单价*0.9WHERE订单号=aa.订单号
SKIP
ENDDO
将订购日期是2002年的所有的订单号放入临时表CurTable中
SELECT订单号FROMorder_listWHEREYEAR(订购日期)=2002INTOCURSORaa
对所有订购日期是2002年的计算新的单价
UPDATEorder_detailSET新单价=单价*1.1WHERE订单号=aa.订单号
Select*fromorder_detailintotableod_new
******************************************
保存设计结果,在命令窗口输入命令:
DOprog1,执行程序文件。
-"
,系统首先要求选择报表数据源。
根据题意,选择考生文件夹下的order_detail表作为报表数据源。
系统接着弹出"
快速报表对话框"
,单击对话框中的"
命令按钮,在弹出的"
字段选择器"
对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到"
列表框中,如图20-4所示。
按钮,返回报表设计器,保存报表设计。
单击工具栏中的预览图标按钮,可查看设计效果。
23
(1)建立项目文件,文件名为my。
(2)将数据库"
职工"
添加到的项目中。
(3)为数据库中的表"
员工"
建立"
候选索引"
,索引名称和索引表达式均为"
员工编码"
(4)为"
表和"
职称"
表之间的关联设置完整性约束,要求:
忽略"
(1)启动VisualFoxPro后,在命令窗口输入命令:
CREATEPROJECTmy,新建一个项目管理器。
(2)在项目管理器my中,首先在"
对话框中,将考生文件夹中的数据库"
添加到项目管理器中,单击"
(3)在项目管理器中,依次展开"
分支,选择"
数据表,然后单击右边的"
命令按钮,进入"
的数据表设计器界面,在"
选项卡中,把"
均改为"
下拉框中,选择"
按钮,保存表结构设计。
(4)根据3小题操作,为"
表建立一个"
的主索引。
数据库设计环境,将"
表中"
主索引字段拖到"
索引字段上,建立了两个表之间的永久性联系。
(1)使用报表向导建立一个简单报表。
要求选择sala