二级VFP上机题答案.docx
《二级VFP上机题答案.docx》由会员分享,可在线阅读,更多相关《二级VFP上机题答案.docx(93页珍藏版)》请在冰豆网上搜索。
二级VFP上机题答案
试题一
1、createdatabase外汇
2、OPENDATABASE外汇
ADDTABLE外汇汇率
ADDTABLE外汇账户
ADDTABLE外汇代码
3、CREATETABLErate(币种1代码C
(2),币种2代码C
(2),买入价N(8,4),卖出价N(8,4))
4、1.打开并修改表单
MODIFYFORMtest_form
2.在“表单设计器”中,在“属性”的ScrollBars处选择“0-无”。
5、1.建立表单
CREATEFORMmyaccount
2.在“表单设计器”中,在“属性”的Caption处输入“外汇持有情况”,在Name处输入“myaccou?
?
”。
3.在“表单设计器”中,添加一个选项按钮组,在其“属性”的Name处输入“myOption”,接着对其进行编辑,在Option1的Caption处输入“现汇”,在Option2的Caption处输入“现钞”。
4.在“表单设计器”中,添加两个命令按钮,在第1个命令按钮“属性”的Caption处输入“查询”,在第2个命令按钮“属性”的Caption处输入“退出”。
5.在“表单设计器”中,双击“Command2”命令按钮,在“Command2.Click”编辑窗口中输入“ReleaseThisform”,接着关闭编辑窗口。
6.在“表单设计器”中,添加一个表格Grid1,在其“属性”的RecordSourceType处选择“4-SQL说明”。
7.在“表单设计器”中,双击“Command1”命令按钮,在“Command1.Click”编辑窗口中输入下列语句,接着关闭编辑窗口。
thisform.grid1.recordsource="select*from外汇账户where钞汇标志='"+iif(thisform.myOption.value=1,"现汇","现钞")+"'intocursorlsb"
试题二
1、在文件one.prg中存放:
deletefromratewhere币种1代码="14"AND币种2代码="27"
2、1.建立表单
CREATEFORMrate
2.在“表单设计器”中,在“属性”的Caption处输入“外汇汇率查询”,在Name处输入“rate”。
3.在“表单设计器”中,添加两个标签,在第1个标签Lable1“属性”的Caption处输入“币种1”,在第2个标签Lable2“属性”的Caption处输入“币种2”。
4.在“表单设计器”中,单击鼠标右键,在弹出菜单中选择“数据环境”,在“数据环境设计器-rate.scx”中,在“打开”对话框中,选择“外汇汇率.dbf”表,接着在“添加表或视图”的对话框中,按“关闭”按钮,关闭“添加表或视图”对话框。
5.在“表单设计器”中,添加两个组合框,在第1个组合框Combo1“属性”的RowSourceType处输入“6-字段”,在RowSource处输入“币种1”,在第2个组合框Combo2“属性”的RowSourceType处输入“6-字段”,在RowSource处输入“币种2”。
6.在“表单设计器”中,添加两个命令按钮,在第1个命令按钮“属性”的Caption处输入“查询”,在第2个命令按钮“属性”的Caption处输入“退出”。
7.在“表单设计器”中,双击“Command2”命令按钮,在“Command2.Click”编辑窗口中输入“ReleaseThisform”,接着关闭编辑窗口。
8.在“表单设计器”中,双击“Command1”命令按钮,在“Command1.Click”编辑窗口中输入下列语句,接着关闭编辑窗口。
ifused("外汇代码")
select外汇代码
else
use外汇代码
endif
locatefor外币名称=thisform.Combo1.value
mm1=外币代码
locatefor外币名称=thisform.Combo2.value
mm2=外币代码
select*fromratewhere币种1代码=mm1and币种2代码=mm2intotabletmp_rate
试题三
1、在文件cmd_ab.txt存放
update商品set销售价格=进货价格*(1+0.2268)wheresubstr(商品编码,1,1)="3"
2、1.建立表单
CREATEFORMmyform_a
2.在“表单设计器”中,在“属性”的Caption处输入“商品浏览”,在Name处输入“myform_a”。
3.在“表单设计器”中,添加一个选项按钮组OptionGroup1,在“属性”的ButtonCount处输入“4”,并对其进行编辑,在Option1的Caption处输入“饮料”,在Option2的Caption处输入“调味品”,在Option3的Caption处输入“酒类”,在Option2的Caption处输入“小家电”。
4.在“表单设计器”中,添加两个命令按钮,在第1个命令按钮“属性”的Caption处输入“退出”,在第2个命令按钮“属性”的Caption处输入“确定”。
5.在“表单设计器”中,双击“Command1”命令按钮,在“Command1.Click”编辑窗口中输入“ReleaseThisform”,接着关闭编辑窗口。
6.在“表单设计器”中,双击“Command2”命令按钮,在“Command2.Click”编辑窗口中输入下列语句,接着关闭编辑窗口。
DOCASE
CASETHISFORM.OPTIONGROUP1.VALUE=1
SELECT*FROM商品WHERE分类编码=ANY(SELECT分类编码FROM分类WHERE分类名称="饮料")
CASETHISFORM.OPTIONGROUP1.VALUE=2
SELECT*FROM商品WHERE分类编码=ANY(SELECT分类编码FROM分类WHERE分类名称="调味品")
CASETHISFORM.OPTIONGROUP1.VALUE=3
SELECT*FROM商品WHERE分类编码=ANY(SELECT分类编码FROM分类WHERE分类名称="酒类")
CASETHISFORM.OPTIONGROUP1.VALUE=4
?
`SELECT*FROM商品WHERE分类编码=ANY(SELECT分类编码FROM分类WHERE分类名称="小家电")
ENDCASE
试题四
1、SELECT*FROMordersORDERBY金额WHERE职工号+str(金额,10,0)IN(SELECT职工号+str(MAX(orders.金额),10,0)FROMordersGROUPBY职工号)INTOTABLEresults
2、在文件view_b.txt中存放:
createviewview_basselect*fromemployeewhere职工号notin(select职工号fromorders)orderby仓库号desc
3、1.建立表单
CREATEFORMmyform_b
2.在“表单设计器”中,在“属性”的Caption处输入“订单管理”,在Name处输入“myform_b”。
3.在“表单设计器”中,单击鼠标右键,在弹出菜单中选择“数据环境”,在“数据环境设计器-myform_b.scx”中,在“打开”对话框中,选择“employee.dbf”表,接着在“添加表或视图”的对话框中,双击表“course”,再在“添加表或视图”的对话框中,双击表“orders”,再按“关闭”按钮,关闭“添加表或视图”对话框。
4.在“表单设计器”中,添加一个页框Pageframe1,在其“属性”的PageCount处输入“3”。
选中Page1,在其“属性”的Caption处输入“职工”,选中Page2,在其“属性”的Caption处输入“订单”,选中Page3,在其“属性”的Caption处输入“职工订单金额”。
5.在“表单设计器”中,添加一个命令按钮,在其“属性”的Caption处输入“退出”,双击“Command1”命令按钮,在“Command1.Click”编辑窗口中输入“ReleaseThisform”,接着关闭编辑窗口。
6.选中“职工”页,打开“数据环境”,按住“employee”不放,拖至“职工”页左上角处松开鼠标;选中“订单”页,打开“数据环境”,按住“orders”不放,拖至“订单”页左上角处松开鼠标;选中“职工订单金额”,添加一个表格控件Grid1,在Grid1“属性”的RecordSourceType处选择“4-SQL说明”,在RecordSource处输入“selectemployee.职工号,姓名,sum(金额)as总金额fromemployee,orderswhereemployee.职工号=orders.职工号groupbyorders.职工号intocursortemp”。
试题五
1、在文件cmd_cb.txt中存放
opendatabaseorders_manage
createviewview_cbasselectemployee.职工号,姓名,sum(金额)as总金额fromemployee,orderswhereemployee.职工号=orders.职工号groupbyemployee.职工号havingsum(金额)>=15000orderby总金额asc
2、1.建立表单
CREATEFORMmyform_c
2.在“表单设计器”中,在“属性”的Caption处输入“职工订单信息”,在Name处输入“myform_c”。
3.在“表单设计器”中,添加三个标签,在第1个标签Label1“属性”的Caption处输入“职工号”,在第2个标签Label2“属性”的Caption处输入“姓名”,在第3个标签Label3“属性”的Caption处输入“性别”。
4.在“表单设计器”中,添加三个文本框,Text1、Text2和Text3。
5.在“表单设计器”中,添加一个表格Grid1,在其“属性”的Name处输入“Grdorders”,在RecordSourceType处选择“4-SQL说明”。
6.在“表单设计器”中,添加两个命令按钮,在第1个命令按钮“属性”的Caption处输入“DO”,在第2个命令按钮“属性”的Caption处输入“Close”。
7.在“表单设计器”中,双击“Command2”命令按钮,在“Command2.Click”编辑窗口中输入“ReleaseThisform”,接着关闭编辑窗口。
8.在“表单设计器”中,双击“Command1”命令按钮,在“Command1.Click”编辑窗口中输入下列语句,接着关闭编辑窗口。
zgh=ALLTRIM(ThisForm.Text1.Value)
IfUsed("employee")
SELECTemployee
ELSE
USEemployee
ENDIF
LOCATEFOR职工号=zgh
ThisForm.Text2.Value=姓名
ThisForm.Text3.Value=性别
ThisForm.Grdorders.RecordSource="SELECT*FROMordersWHERE职工号=='"+zgh+"'INTOCURSORLSB"
试题六
1、SELECT职工号,姓名,性别,出生日期FROMemployeeWHERE婚否ORDERBY出生日期DESCINTOTABLEinfor_da
2、1.在命令窗口中输入建立菜单命令
CREATEMENUscmenu_d
1)在“新建菜单”对话框单击“快捷菜单”按钮,在“快捷菜单设计器-scmenu_d.mnx”的菜单名称输入框分别输入“时间”和“日期”两个菜单项。
2)在“时间”菜单项的“结果”中选择“过程”,再单击“创建”,并在“快捷菜单设计器-scmenu_d-时间过程”编辑窗口中输入“myform_da.caption=time()”。
3)在“日期”菜单项的“结果”中选择“过程”,再单击“创建”,并在“快捷菜单设计器-scmenu_d-日期过程”编辑窗口中输入“myform_da.caption=dtoc(date())”。
4)单击“菜单”项中的“生成”命令项,来生成scmenu_d.mpr文件。
5)最后菜单编辑窗口。
2.在命令窗口中输入建立表单命令
CREATEFORMmyform_da
3.在“表单设计器”中,在其“属性”的Name处输入“myform_da”。
4.双击“属性”的RightClickEvent处,在其编辑窗口中输入“doscmenu_d.mpr”并关闭编辑窗口。
5.最后运行此表单。
3、SELECTTOP3职工号,姓名,出生日期FROMworkerORDERBY出生日期INTOTABLEinfor_db.dbf
4、1.在命令窗口中输入建立表单命令
CREATEFORMmyform_db
2.在“表单设计器”中,在其“属性”的Name处输入“myform_db”,在Caption处输入“数据浏览和维护”。
3.在“表单设计器”中,建立“选项按钮组”,并在选定它且单击右键,再选择“编辑”项,接着选定Option1,在其Caption处输入“职工表(employee)”,接着选定Option2,在其Caption处输入“订单表(orders)”,
4.在“表单设计器”中,建立“复选框”,并在其属性的Caption处输入“存盘”。
5.在“表单设计器”中,添加两个命令按钮(Command1和Command2),在第1个命令按钮Command1“属性”窗口的Caption处输入“确定”,在第2个命令按钮Command2“属性”窗口的Caption处输入“退出”。
6.双击“确定”命令按钮,在“Command1.Click”编辑窗口中输入命令组,接着关闭编辑窗口。
IFthisform.optiongroup1.option1.value=1
IFthisform.check1.value=1
SELECT*FROMemployeeINTOTABLEtemp
ELSE
SELECT*FROMemployee
ENDIF
ELSE
IFthisform.check1.value=2
SELECT*FROMordersINTOTABLEtemp
ELSE
SELECT*FROMorders
ENDIF
ENDIF
7.双击“退出”命令按钮,在“Command2.Click”编辑窗口中输入“ThisForm.Release”,接着关闭编辑窗口。
试题七
1、1.先把order_list1表的记录全部添加到order_list表中
USEorder_list
APPENDFROMorder_list1
2.SQLSELECT语句完成查询
SELECTOrder_list.客户号,Customer.客户名,Order_list.订单号,;
Order_list.总金额;
FROM订货管理!
order_listINNERJOINcustomer;
ONOrder_list.客户号=Customer.客户号;
ORDERBYOrder_list.总金额DESC;
INTOTABLEresults.dbf
2、1.打开并修改表单文件
MODIFYFORMform1
2.首先查看“基准按钮”的Left值(24),接着按Shift键不放,依次选定其他命令按钮,在“属性”对话框的“Left”值处输入“24”。
3.添加一个表格控件,控件名仍为系统给定的名称,在“属性”对话框的“RecordSourceType”选择“0-表”,在“RecordSource”处输入“customer”
3、closedatabase
useorder_list
select订单号,sum(单价*数量)asaafromorder_detailgroupby订单号orderby订单号intocursorff
seleorder_list
dowhile!
eof()
seleff
locatefor订单号=order_list.订单号
seleorder_list
repl总金额withff.aa
skip
enddo
select*fromorder_listorderby总金额descintodbfod_new
试题八
1、1.先把order_detail1表的记录全部添加到order_detail表中
USEorder_detail
APPENDFROMorder_detail1
2.SQLSELECT语句完成查询
SELECTOrder_list.订单号,Order_list.订购日期,Order_detail.器件号,;
Order_detail.器件名,Order_list.总金额;
FROM订货管理!
order_listINNERJOIN订货管理!
order_detail;
ONOrder_list.订单号=Order_detail.订单号;
ORDERBYOrder_list.订单号,Order_list.总金额DESC;
INTOTABLEresults.dbf
2、第1处所有器件的单价增加5元,所以应改为:
UPDATEorder_detail1SET单价=单价+5
第2处计算每种器件的平均单价,所以应改为:
SELECT器件号,AVG(单价)AS平均价FROMorder_detail1groupBY器件号INTOCURSORlsb
第3处查询平均价小于500的记录,所以应改为:
SELECT*FROMlsbwhere平均价<500
3、closedatabase
select1
useorder_list
copystrutotmp
select2
usetmp
select订单号,sum(单价*数量)asaafromorder_detailgroupby订单号orderby订单号intocursorff
seleorder_list
dowhile!
eof()
selectff
locatefor订单号=order_list.订单号
iforder_list.总金额<>aa
selectorder_list
scatttomm
selecttmp
appendblank
gathfrommm
replace总金额withff.aa
endif
selectorder_list
skip
enddo
select*fromtmporderby总金额intodbfod_mod
试题九
1、1.先把customer1表的记录全部添加到customer表中
USEcustomer
APPENDFROMcustomer1
2.SQLSELECT语句完成查询
SELECTDISTINCTCustomer.*;
FROM订货管理!
customerINNERJOIN订货管理!
order_list;
ONCustomer.客户号=Order_list.客户号;
ORDERBYCustomer.客户号;
INTOTABLEresults.dbf
2、1.打开并修改表单文件
MODIFYFORMform1
2.双击“确定”按钮,在“Command1.Click”中进行修改
如果用户输入的用户名和口令一致,则在提示信息后关闭该表单。
第1处:
是判断两个文本框的值是否相同,所以应改为:
IfThisform.Text1.Value=Thisform.Text2.Value
第2处:
是关闭表单,所以应改为:
Thisform.Release
3.单击“Text2”文本框,在其“属性”窗口的“PasswordChar”处输入“*”。
3、1.在命令窗口输入建立报表的命令
CREATEREPORTreport1
2.在“报表设计器-report1.frx”中,单击鼠标右键,在弹出菜单中选择“数据环境”菜单项,在“数据环境设计器-报表设计器-report1.frx”窗口中,再单击鼠标右键,在弹出菜单中选择“添加”菜单项,在“打开”对话框中,选择表“order_list”,单击“确定”按钮,再关闭“添加表或视图”对话框,接着选定表“order_list”,单击鼠标右键,在弹出菜单中选择“属性”菜单项,在“属性”窗口的Order处选择“客户号”。
3.单击“报表\标题/总结”菜单项,接着显示“标题/总结”对话框,在对话框的“报表标题”处选中“标题带区”,在“报表总结”处选中“总结带区”,选完这两项后,单击“确定”按钮。
4.单击“报表\数据分组”菜单项,在“数据分组”对话框中,单击“...”按钮,接着显示“表达式生成器”对话框,在此对话框中双击“order_list.客户号”项,并在“按表达式分组记录:
”处生成“order_list.客户号”,再单击“确定”按钮,返回到“数据分组”对话框中,于是单击“确定”按钮。
5.在“数据环境设计器”中,选定字段“定单号”并按住不放,接着移动鼠标至“细节”带区,松开鼠标,按同样方法来处理字段“订购日期”和“总金额”,接着移动“细节”带区来调整位置。
6.在“数据环境设计器”中,选定字段“客户号”并按住不放,接着移动鼠标至“组标头1:
客户号”带区,松开鼠标。
7.在“页标头”带区增加一个标签“客户号”。
8.在“数据环境设计器”中,选定字段“总金额”并按住不放,接着移动鼠标至“组注脚1:
客户号”带区,松开鼠标,接着在“组注脚1:
客户号”带区选定中“总金额”并单击鼠标右键,在弹出菜单中选择“属性”菜单项,在“报表表达式”对话框中单击“计算”按钮,在“计算字段”对话框中,选定“求和”单选钮,再单击“确定”按钮返回到“报表表达式”对话框中,接着再按“确定”返回到“报表设计器-report1.frx”窗口中。
9.在“标题”带