计算机2级vfp30套练习题带答案.docx
《计算机2级vfp30套练习题带答案.docx》由会员分享,可在线阅读,更多相关《计算机2级vfp30套练习题带答案.docx(103页珍藏版)》请在冰豆网上搜索。
![计算机2级vfp30套练习题带答案.docx](https://file1.bdocx.com/fileroot1/2023-1/24/3e8e17db-b2da-4e29-8d29-b76b743ad731/3e8e17db-b2da-4e29-8d29-b76b743ad7311.gif)
计算机2级vfp30套练习题带答案
说明:
本文中的&&表示解释说明部分,在并非执行代码.
本文中的*********与*********之间的部分为程序代码.
11
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
(1)在考生文件夹下建立项目market。
(2)在项目market中建立数据库prod_m。
(3)把考生文件夹中自由表category和products加入到prod_m数据库中。
(4)为category表建立主索引,索引名为primarykey,索引表达式为"分类编码";为products表建立普通索引,索引名为regularkey,索引表达式为"分类编码"。
【答案】
(1)在命令窗口直接输入命令:
CREATEPROJECTmarket,建立一个新的项目管理器。
(2)在项目管理器中,单击"数据"选项卡,选中列表框中的"数据库",单击选项卡右边的"新建"命令按钮,在系统弹出的对话框中单击"新建数据库"图标按钮,系统接着弹出"创建"对话框,在数据库名文本框内输入新的数据库名称prod_m,将数据库保存到考生文件夹下。
(3)右键单击数据库设计器,选择"添加表"快捷菜单命令,在弹出的"打开"对话框中,将考生文件夹下的category和products两个自由表分别添加到数据库prod_m中。
(4)在"数据"选项卡中,选中新加的数据表文件category,然后单击右边的"修改"命令按钮,系统弹出表设计器,在"字段"选项卡中为"分类编码"字段选择一个索引排序,然后单击"索引"选项卡,在此选项卡中,字段索引名默认的为"分类编码",将索引名修改为primarykey,在"索引"下拉框中选择索引类型为"主索引",如图11-1所示。
以相同的方法为products表建立普通索引。
二、简单应用题(共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
Thisform.Grid1.RecordSourceType=1
Thisform.Grid1.RecordSource="temp"
CASEThisform.Optiongroup1.Value=3
SELECT姓名,SUM(持有数量*基准价)AS总资产FROM汇率,数量;
WHERE汇率.外币代码=数量.外币代码GROUPBY姓名INTOCURSORtemp
Thisform.Grid1.RecordSourceType=1
Thisform.Grid1.RecordSource="temp"
ENDCASE
*********************************************************
以同样的方法为"关闭"命令按钮编写Click事件代码:
Thisform.Release。
保存表单完成设计,运行结果如图11-4所示。
19
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
(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和"电话",在"索引类型"的下拉框中,选择"惟一索引"。
单击"确定"按钮,保存数据表修改。
二、简单应用题(共2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
(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&&**********Error**********************
Else
WAIT"用户名或口令不对,请重新输入……"WINDOWTIMEOUT1
Endif
*********************************************
修改程序中的错误,正确的程序如下:
****"确定"命令按钮Click事件修改后的程序****
IfThisForm.Text1.Text=ThisForm.Text2.Text&&缺少属性Text
WAIT"欢迎使用……"WINDOWTIMEOUT1
ThisForm.Release&&语法错误,关闭表单应该为Release
Else
WAIT"用户名或口令不对,请重新输入……"WINDOWTIMEOUT1
Endif
*********************************************
选中表单中的第二个文本框控件(Text2),在属性面板中修改该控件的PasswordChar属性值为"*",如图19-1所示,保存修改结果。
三、综合应用题(1小题,计30分)
使用报表设计器建立一个报表,具体要求如下:
①报表的内容(细节带区)是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.客户号",关闭对话框回到报表设计器,可以看到报表设计器中多了两个带区:
组标头和组注脚带区,在数据环境中,将order_list表中的"客户号"字段拖放到组标头带区,并在报表控件栏中单击"标签"按钮,添加一个标签"客户号",以同样的方法为组注脚带区增加一个"总金额"标签,并将"总金额"字段拖放到该带区,如图19-4所示。
双击域控件"总金额",系统弹出"报表表达式"对话框,在对话框中单击命令按钮"计算",在弹出的对话框中选择"总和"单选项,关闭对话框,回到报表设计器。
图19-4
选择菜单命令"报表"-"标题/总结",弹出"标题/总结"对话框,在对话框中勾选"标题带区"和"总结带区"复选框,为报表增加一个标题带区和一个总结带区;然后设置标签字体,选择菜单命令"报表"-"默认字体",在弹出的"字体"对话框中,根据题意设置3号黑体字,接着通过"报表控件"工具栏,为总结带区添加一个标签"订单分组汇总表(按客户)";最后在总结带区添加一个标签"总金额",再添加一个域控件,在弹出的"报表表达式"中为域控件设置表达式为"order_list.总金额",在"格式"对话框中选择"数值型"单选项,如图19-5所示。
单击命令按钮"计算",在弹出的对话框中选择"总和"单选项,关闭对话框,回到报表设计器。
保存报表,利用常用工具栏中的"预览"图标按钮,可预览报表效果。
图19-5
20
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下的"订货管理"数据库中完成下列基本操作:
(1)将order_detail、order_list和customer表添加到数据库。
(2)为order_list表创建一个主索引,索引名和索引表达式均是"订单号"。
(3)建立表order_list和表order_detail间的永久联系(通过"订单号"字段)。
(4)为以上建立的联系设置参照完整性约束:
更新规则为"限制",删除规则为"级联",插入规则为"限制"。
【答案】
(1)在命令窗口输入命令:
MODIFYDATABASE订货管理,打开数据库设计器,右击数据库设计器,选择"添加表"快捷菜单命令,系统弹出"打开"对话框,将考生文件夹下的order_list、order_detail和customer三个数据表依次添加到数据库中。
(2)在数据库设计器中,右击数据表order_list,选择"修改"快捷菜单命令,系统弹出表设计器,在表设计器中选定"订单号"字段,然后在后面的"索引"下拉框中为该字段选择一个排序,最后在"索引"选项卡中,将索引类型选择为"主索引"。
(3)在数据库设计器中,将order_list表中"索引"下面的"订单号"主索引字段拖到order_detail表中"索引"下面的"订单号"索引字段上,建立两个表之间的永久性联系。
(4)在数据库设计器中,选择菜单命令"数据库"-"清理数据库",如图20-1所示。
然后右击表order_list和表order_detail之间的关系线,在弹出的快捷菜单中选择"编辑参照性关系",弹出如图20-2所示的参照完整性生成器,根据题意,在3个选项卡中分别设置参照规则。
二、简单应用题(共2小题,每题20分,计40分)
(1)建立一个名为my的菜单,菜单中有两个菜单项"文件"和"返回"。
"文件"菜单项下还有两个子菜单"打开"和"新建"。
在"返回"菜单项下创建一个命令,负责返回系统菜单,其他菜单项不做要求。
(2)根据数据库stu中的表"宿舍情况"和"学生信息"建立一个查询,该查询包含学生信息表中的字段"学号"和"姓名"及宿舍情况表中的字段"宿舍"和"电话"。
要求按"学号"升序排序,并将查询保存为myq。
【答案】
(1)在命令窗口中输入命令:
CREATEMENUmy,系统弹出一个"新建"对话框,在对话框中单击"菜单"图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"文件"和"返回"。
在"文件"的"结果"下拉框中选择"子菜单",在"返回"的"结果"下拉框中选择"命令"。
在"返回"菜单项的命令文本框中编写程序代码:
SETSYSMENUTODEFAULT。
接着单击"文件"菜单项同一行中的"创建"按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称"打开"和"新建"。
根据题意,系统不再要求设计下级菜单,因此在两个子菜单的"结果"下拉框中选择"过程"或"命令"。
选择菜单命令"菜单"-"生成",生成一个菜单文件my.mpr。
(2)可以直接在命令窗口输入:
CREATEQUERYmyq,打开查询设计器,新建一个查询。
在查询设计器中,分别将"宿舍情况"和"学生信息"两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击"确定"按钮,如图20-3所示。
图20-3
在查询设计器中的"字段"选项卡中,将"可用字段"列表框中的"学生信息.学号"、"学生信息.姓名"和"宿舍情况.宿舍"和"宿舍情况.电话"四个字段添加到右边的"选定字段"列表框中,在"排序依据"选项卡中,选择"学生信息.学号"升序排序。
执行菜单命令"查询"-"运行查询",查看查询结果。
三、综合应用题(1小题,计30分)
首先为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年的计算新的单价
DOWHILENOTEOF()
UPDATEorder_detailSET新单价=单价*1.1WHERE订单号=aa.订单号
SKIP
ENDDO
Select*fromorder_detailintotableod_new
******************************************
保存设计结果,在命令窗口输入命令:
DOprog1,执行程序文件。
在命令窗口输入命令:
CREATEREPORTreport1,打开报表设计器。
选择菜单命令"报表"-"快速报表",系统首先要求选择报表数据源。
根据题意,选择考生文件夹下的order_detail表作为报表数据源。
系统接着弹出"快速报表对话框",单击对话框中的"字段"命令按钮,在弹出的"字段选择器"对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到"选定字段"列表框中,如图20-4所示。
单击"确定"按钮,返回报表设计器,保存报表设计。
单击工具栏中的预览图标按钮,可查看设计效果。
23
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
(1)建立项目文件,文件名为my。
(2)将数据库"职工"添加到的项目中。
(3)为数据库中的表"员工"建立"候选索引",索引名称和索引表达式均为"员工编码"。
(4)为"员工"表和"职称"表之间的关联设置完整性约束,要求:
更新规则为"级联",删除规则为"限制",插入规则为"忽略"。
【答案】
(1)启动VisualFoxPro后,在命令窗口输入命令:
CREATEPROJECTmy,新建一个项目管理器。
(2)在项目管理器my中,首先在"数据"选项卡中选择"数据库",然后单击选项卡右边的"添加"命令按钮,在系统弹出的"打开"对话框中,将考生文件夹中的数据库"职工"添加到项目管理器中,单击"确定"按钮。
(3)在项目管理器中,依次展开"数据库"分支,选择"员工"数据表,然后单击右边的"修改"命令按钮,进入"员工"的数据表设计器界面,在"索引"选项卡中,把"索引名"和"索引表达式"均改为"员工编码",在"索引类型"下拉框中,选择"候选索引"。
单击"确定"按钮,保存表结构设计。
(4)根据3小题操作,为"职称"表建立一个"员工编码"的主索引。
打开"职工"数据库设计环境,将"职称"表中"索引"下面的"员工编码"主索引字段拖到"员工"表中"索引"下面的"员工编码"索引字段上,建立了两个表之间的永久性联系。
二、简单应用题(共2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用:
(1)使用报表向导建立一个简单报表。
要求选择sala