VFP上机50套答案.docx
《VFP上机50套答案.docx》由会员分享,可在线阅读,更多相关《VFP上机50套答案.docx(48页珍藏版)》请在冰点文库上搜索。
VFP上机50套答案
VFP上机考试(50套)答案
第01套
一、
1.单击“文件\打开”命令项,选择“文件类型”为数据库,打开“订货管理”。
在“数据库设计器-订货管理”中单击鼠标右键,显示弹出菜单,选择“添加表”命令项,并选择相应的表文件即可(order_list)。
2.在数据库设计器中单击右键——新建表。
。
。
。
。
。
3.在“数据库设计器-订货管理”中,选择表“customer”并单击鼠标右键,选择“修改”命令项。
在“表设计器-customer.dbf”中,选择“索引”选项卡,输入索引名“客户号”,选择类型为“主索引”,表达式为“客户号”。
4.选定表“order_detail”,右击鼠标,在弹出菜单中选择“删除”命令项,接着会显示“把表从数据库中移去还是从磁盘上删除?
”。
根据题义,单击“删除”按钮即可。
二、
1.在“数据库设计器-订货管理”中,选择表“customer”并单击鼠标右键,选择“浏览”命令项。
接着单击“表”菜单,从中选择“追加记录”。
在弹出来的对话框中将来源于设为“customer1”表。
最后单击确定即可。
然后单击“新建”菜单,建立一个查询文件,我们用“查询设计器”来做这一题:
向查询设计器中依次添加“customer”表和“order_list”表。
将“customer”表中全部字段添加到选定字段列表中。
在“排序”选项卡中为“客户号”字段设为升序。
在“杂项”选项卡中选择“无重复记录”。
最后在“查询”菜单中设置“查询去向”为表“results”.
最后运行即可,此题的查询设计器不需要保存的,因为我们只是借用他来代替命令进行查询的。
有工具就要会拿来用。
2.打开表单文件双击“确定”按钮,在“Command1.Click”中进行修改
第1处:
是判断两个文本框的值是否相同,所以应改为:
IfThisform.Text1.Value=Thisform.Text2.Value
第2处:
是关闭表单,所以应改为:
Thisform.Release
单击“Text2”文本框,在其“属性”窗口的“PasswordChar”处输入“*”。
三、略
第02套
一、
1.首先打开“订货管理”。
在“数据库设计器-订货管理”中单击鼠标右键,显示弹出菜单,并选择“添加表”命令项,并选择相应的表文件即可(order_detail、order_list和customer)。
2.在“数据库设计器-订货管理”中,选择表“order_list”并单击鼠标右键,选择“修改”命令项。
在“表设计器-order_list.dbf”中,选择“索引”选项卡,输入索引名“订单号”,选择类型为“主索引”,表达式为“订单号”。
3.在“数据库设计器-订货管理”中,选择表“order_detail”并单击鼠标右键,选择“修改”命令项。
在“表设计器-order_detail.dbf”中,选择“索引”选项卡,输入索引名“订单号”,选择类型为“普通索引”,表达式为“订单号”。
选择“order_list”表中主索引键“订单号”并按住不放,然后移动鼠标拖到“order_detail”表中的索引键为“订单号”处,松开鼠标即可。
4.在已建立的永久性联系上,右击关系线,从中选择“编辑参照完整性”。
若要“清理数据库”,请单击“数据库”菜单中的“清理数据库”来进行清理。
否则的话,我们就不用清理了,接着继续下面的操作。
在“参照完整性生成器”中,单击“更新规则”选项卡,并选择“限制”单选按钮,单击“删除规则”选项卡,并选择“级联”单选按钮,单击“插入规则”选项卡,并选择“限制”单选按钮,接着单击“确定”按钮,并显示“是否保存改变,生成参照完整性代码并退出?
”,最后单击“是”按钮,这样就生成了指定参照完整性。
二、
1.单击“新建”菜单,建立一个查询文件,我们用“查询设计器”来做这一题:
向查询设计器中依次添加“customer”、“order_list”和“order_detail”表。
将“order_detail”表中全部字段添加到选定字段列表中。
在“筛选”选项卡中的“字段名”中选择“客户名”,“条件”选择“=”,“实例”中输入“三益贸易公司”。
在“排序”选项卡中为“订单号”字段设为升序,再将“单价”字段设为将序。
最后在“查询”菜单中设置“查询去向”为表“results”.
最后运行即可,此题的查询设计器不需要保存的,因为我们只是借用他来代替命令进行查询的。
有工具就要会拿来用。
2.打开表单文件
①改为:
Thisform.Caption="简单应用"
②改为:
Thisform.grid1.RecordSource="order_list.dbf"
③改为:
Thisform.Release
三、
1.首先增加一个新的字段;然后单击“新建”菜单建立一个程序。
在程序中输入如下两行代码:
注意:
同学们要是下面的命令记不住的话,那也可以不写了,最后交卷也能考到85分熬。
UPDATEorder_detailSET新单价=单价*0.9WHERE订单号=(SELECT订单号FROMorder_list;
WHERE订单号=order_detail.订单号ANDYEAR(订购日期)=2001)
UPDATEorder_detailSET新单价=单价*1.1WHERE订单号=(SELECT订单号FROMorder_listwhere;
订单号=order_detail.订单号ANDYEAR(订购日期)=2002)
然后保存该程序,文件名为”prog1.prg”,最后并运行.
2.建立“快速报表”:
单击“文件\新建\报表\新建文件”菜单项来建立报表设计器;接着在”报表”菜单但选择”快速报表”.在弹出来的对话框中点击“字段”按钮,然后按顺序添加题目中的字段。
接着按“确定”-“确定”;最后保存即可。
第03套
一、
1.单击“文件\打开”命令项,选择“文件类型”为数据库,打开“订货管理”。
在“数据库设计器-订货管理”中单击鼠标右键,显示弹出菜单,并选择“添加表”命令项,并选择相应的表文件即可(order_detail)。
2.在“数据库设计器-订货管理”中,选择表“order_detail”并单击鼠标右键,选择“修改”命令项。
在“表设计器-order_detail.dbf”中,选择字段名为“单价”,在NULL处进行打勾(允许空值),然后在“默认值”中输入NULL。
最后单击“确定”按钮即可。
3.在“数据库设计器-订货管理”中,选择表“order_detail”并单击鼠标右键,选择“修改”命令项。
在“表设计器-order_detail.dbf”中,选择“单价”字段,在“字段有效性”标签的“规则”处输入:
单价>0,在“信息”处输入:
"单价必须大于零",最后单击“确定”按钮即可。
4.略。
二、
1.我们可以利用查询设计器来做:
向查询设计器中添加“order_list”表。
将“order_list”表中全部字段添加到选定字段列表中。
在“筛选”选项卡中的“字段名”中选择“总金额”,“条件”选择“>”,在“实例”中输入:
selectavg(Order_list.总金额)fromOrder_list。
在“排序”选项卡中为“客户号”字段设为升序。
最后在“查询”菜单中设置“查询去向”为表“results”.
2.首先单击”新建”—“报表”新建一个报表设计器.单击“报表\快速报表”菜单项,在“打开”对话框中选择表“order_detail”并单击“确定”按钮。
在弹出来的对话框中点击“字段”按钮,添加全部字段.”字段布局”设为”横向”.在“快速报表”对话框中,单击“确定”按钮,在“报表设计器-report1.frx”窗口中,单击“报表\标题/总结”菜单项,接着显示“标题/总结”对话框,在对话框的“报表标题”处选中“标题带区”,单击“确定”按钮。
在“标题”带区增加一个标签“器件清单”。
在“页注脚”带区选定中“DATE()”并单击鼠标右键,在弹出菜单中选择“属性”菜单项,并显示“报表表达式”对话框,然后单击“表达式”文本框右边的“...”按钮,从“日期”列表框中选择“TIME()”,单击“确定”按钮,返回到“报表表达式”对话框中,再单击“确定”按钮即可。
保存该报表。
三、
首先在命令窗口中输入:
SELECT*FROMorder_detailINTOTABLEod_bak
接着建立一个程序文件,在程序文件中,输入如下程序,最后并保存:
SELECT*FROMod_bakINTOTABLEt1
UPDATEt1set订单号=right(订单号,1)
SELECT订单号,器件号,器件名,MIN(单价)AS单价,SUM(数量)AS数量FROMt1;
GROUPBY订单号,器件号,器件名ORDERBY订单号,器件号INTOtableod_new
注意:
请同学们一定要把此题给记下来。
不然这题就很难拿下高分。
(题目字眼:
1.把“订单号”尾部字母相同并且订货相同(“器件号”相同)。
。
。
。
)
第04套
一、略。
二、
1.可以使用查询设计器来完成此题,依次向查询设计器中添加student,sc和course表按照题目的要求做即可。
2.略。
三、
1.先打开数据库SDB
单击“新建”菜单,首先建立一个查询文件,我们用“查询设计器”来生成这边的SQL语句:
向查询设计器中依次添加“student”和“sc”表。
在“字段”选项卡中依次添加字段--学号—姓名—avg(成绩)as平均成绩--min(成绩)as最低分--count(*)as选课门数。
单击“分组依据”选项卡,在里面添加“学号”字段按学号进行分组,接着点击“满足条件”按钮,选择“选课门数”>3。
单击“排序依据”选项卡,并按“平均成绩”将序排序。
最后单击“查询”菜单中的“查看SQL”,把里面的命令全部复制下来。
这以下可以关掉我们的“查询设计器”了。
不需要保存的。
接着建立一个程序文件,把我们刚才复制的命令粘贴到里面。
不过还要在命令的前面加上:
createviewsviewas。
。
。
。
。
(因为我们最终是要在命令文件中建立视图。
)保存程序并运行即可。
制作报表略
2.设计表单
“浏览”命令按钮中输入:
opendatabasesdb
SELECT*FROMsview
“打印”命令按钮中输入:
REPORTFORMp_studentpreview
第05套
一、略。
二、
1.略。
2.打开表单文件,单击“刘缆雇员工资”命令按钮,在“属性”的Caption处输入“浏览雇员工资”。
双击“浏览雇员工资”命令按钮,在“Command1.Click”编辑窗口中把语句修改为“SELECT*FROMsalarys”,关闭编辑窗口。
双击“退出表单”命令按钮,在“Command2.Click”编辑窗口中把语句修改为“Thisform.Release”。
三、
1.在change_c.prg文件中的内容-------下面程序若是同学不会的话,可以不写了,也可以拿到85分。
但一定要建一个程序。
方面第2小题中的调用使用。
select*fromsalarysintotablebak_salarys
usec_salary1
dowhilenoteof()
updatesalarysset工资=c_salary1.工资where雇员号=c_salary1.雇员号
skip
enddo
保存并执行
2.设计表单,在“表单设计器”中添加两个命令按钮(“调整”和“退出”)。
双击“调整”命令按钮,在“Command1.Click”编辑窗口中输入“dochange_c”,接着关闭编辑窗口。
双击“退出”命令按钮,在“Command2.Click”编辑窗口中输入“Thisform.release”,接着关闭编辑窗口。
第06套
一、略。
二、
1.单击“新建”菜单,首先建立一个查询文件,我们用“查询设计器”来生成这边的SQL语句:
向查询设计器中添加“salary”表。
在“字段”选项卡中依次添加字段---------Salarys.工资+Salarys.补贴+Salarys.奖励-Salarys.失业保险-Salarys.医疗统筹as实发工资。
单击“排序依据”选项卡,并按“部门号”将序排序。
最后单击“查询”菜单中的“查看SQL”,把里面的命令全部复制下来。
这以下可以关掉我们的“查询设计器”了。
不需要保存的。
接着建立一个程序文件,把我们刚才复制的命令粘贴到里面。
不过还要在命令的前面加上:
createviewsviewas。
。
。
。
。
保存程序并运行即可。
2.新建一个表单,在表单上按右键—数据环境—添加salarys表,然后把数据环境中的salarys表直接拖动到表单上即可,然后在表单上添加一个“退出浏览”按钮。
代码输入:
thisform.release。
最后保存表单文件名为form1.再运行表单文件。
三、
按照题目要求设置如下的表单界面,代码不会的同学可以不写了,保存之后,就能得6分了,如果仅在退出代码中填写thsiform.relese。
就可以拿下12分呦。
双击“生成”按钮,在“Command1.Click”编辑窗口中编写相应的程序
docase
casethisform.optiongroup1.value=1
select*fromsviewintotablegz1
casethisform.optiongroup1.value=2
select*fromdeptintotablebm1
casethisform.optiongroup1.value=3
SELECTsalarys.部门号,部门名,sum(工资)工资,sum(补贴)补贴,sum(奖励)奖励,sum(失业保险)失业保险,sum(医疗统筹)医疗统筹;
FROMsalarys,dept;
WHEREsalarys.部门号=dept.部门号;
GROUPBYsalarys.部门号intotablehz1
endcase
双击“退出”命令按钮,在“Command2.Click”编辑窗口中输入“Thisform.release”。
第07套
一、
1.select*from销售表intodbf销售表2001where日期<={^2000-12-31}
2.deletefrom销售表where日期<={^2000-12-31}
接着在数据库中双击销售表。
在命令窗口中输入:
pack
3.打开“商品表”:
USE商品表。
在命令窗口输入:
BROWSE。
单击“文件\另存为HTML”命令项,并显示“另存为HTML”对话框,再选择“保存文件以便以后使用”单选按钮,最后单击“确定”按钮。
4.略。
二、
1.可以使用查询设计器来完成此题,依次向查询设计器中添加商品表和销售表按照题目的要求做即可。
2.打开并修改表单文件
“刷新标题”命令按钮代码修改为:
ThisForm.Caption="商品销售数据输入"。
“商品销售输入”命令按钮代码修改为:
DOFORMsellcomm。
“输出销售报表”命令按钮代码修改为:
REPORTFORMprint1PREVIEW。
三、
1.在change_c.prg文件中的内容-------下面程序若是同学不会的话,可以不写了,也可以拿到85分。
但一定要建一个程序。
方面第2小题中的调用使用。
select*from商品表intotable商品表备份
update商品表set单价=出厂单价*0.1whereleft(商品号,2)="10"
use单价调整表
dowhilenoteof()
update商品表set出厂单价=单价调整表.出厂单价where商品号=单价调整表.商品号
skip
enddo
2.设计表单
“调整”命令按钮的代码为:
dochange_c。
“退出”命令按钮的代码为:
Thisform.release。
第08套
一、
1.略.
2.在表设计器中选择”性别”字段,在“规则”处输入:
性别="男"OR性别="女".在”默认值”处输入:
"女".
3.update雇员setemail=部门号+雇员号+"@"
4.略.
二、
1.打开并修改表单文件,在“表单设计器”中,单击鼠标右键--“数据环境”--选中表“雇员”并单击“确定”按钮,接着关闭“添加表或视图”对话框。
在“属性”中选择“Form1”,在Caption处输入“XXX公司雇员信息维护”。
双击“刷新日期”命令按钮代码修改为:
UPDATE雇员SET日期=DATE()。
注:
表单中的”退出”按钮代码不用改,这种命令方式也可以.保存表单后一定要运行以下.
2.略.
三、
1.利用”视图设计器”来完成.并向”视图设计器”中添加”部门”表和”雇员”表后按照题目要求完成即可.
2.设计表单:
界面设计好之后,在表单设计器上按右键—数据环境—添加表,分别把”部门”,”view1”添加到数据环境中,然后选择相应的页面,直接把数据环境中的对象拖到页面中即可.
第09套
一、略.
二、
1.单击“新建”菜单,建立一个查询文件,我们用“查询设计器”来做这一题:
向查询设计器中依次添加“stock_name”和“stock_sl”表。
在“字段”选项卡中依次添加字段----。
在“筛选”选项卡中的“字段名”中选择“现价”,“条件”选择“>”,将“stock_sl”表的”买入价”字段拖到“实例”框中。
在“排序”选项卡中为“持有数量”字段设为将序.最后在“查询”菜单中设置“查询去向”为表“stock_temp”.
2.略
三、
界面设计好后,同学们如果”查询”的按钮代码不会写就可以不写了,”退出”代码为:
thisform.release.保存后,你也能拿很高的分数.
查询的代码为:
select持有数量fromstock_slwhere股票代码in(select股票代码fromstock_namewhere汉语拼音=thisform.text1.value)intoarrayx
thisform.text2.value=x
(1)
第10套
一、略
二、
1.单击“新建”菜单,建立一个查询文件,我们用“查询设计器”来做这一题:
向查询设计器中依次添加“学生”和“选课”表。
在“字段”选项卡中依次添加字段------AVG(选课.成绩)as平均分--COUNT(*)AS选课门数。
在“分组依据”选项卡中按”学号”进行分组,然后点击”满足条件”按钮,在弹出来的对话框中选择”选课门数”>=5.在“排序”选项卡中按“平均分”字段将序排序.最后在“查询”菜单中设置“查询去向”为表“stu_temp”.
2.设计下拉式菜单:
在菜单设计器中将”退出”菜单中的”结果”选为”过程”,该过程的代码如下:
setsysmenunosave
setsysmenutodefault
三、
首先先把界面设计好.同学们只要写出”退出”的代码:
thisform.release,并保存.计算按钮的代码不设计,本题即可轻松拿下15分啊!
“计算”命令按钮的代码如下:
ifthisform.myOption.value=1
select学号,成绩from选课,课程where选课.课程号=课程.课程号and课程名称="C语言"orderby成绩intodbfstu_sort1
else
select学号,成绩from选课,课程where选课.课程号=课程.课程号and课程名称="C语言"orderby成绩descintodbfstu_sort2
endif
第11套
一、略.
二、
1.单击“新建”菜单,建立一个查询文件,我们用“查询设计器”来做这一题:
向查询设计器中依次添加“供应”和“零件”表。
在“字段”选项卡中依次添加字段—供应商号—工程号—数量。
在“筛选”选项卡中设置:
颜色=“”红.在“排序”选项卡中按“数量”字段将序排序.最后在“查询”菜单中设置“查询去向”为表“supply_temp”.
2.文件—新建—菜单—新建文件—快捷菜单,设置“查询”和“修改”两个菜单。
然后保存菜单,命名为mune_quick,再生成菜单程序(菜单—生成—确定),并关闭菜单文件。
打开myform表单文件,在表单上按右键—代码,过程中选择rightclick,输入代码:
domenu_quick.mpr。
三、
界面设计好后,同学们如果”查询”的按钮代码不会写就可以不写了,”退出”代码为:
thisform.release.保存后,你也能拿很高的分数.
查询的代码为:
thisform.grid1.recordSource="selectdistinct零件名,颜色,重量from零件,供应where零件.零件号=供应.零件号and工程号='J4'intocursorlsb"
第12套
一、略。
二、
1.利用”查询设计器”来完成.并向”查设计器”中添加loans表,borrows表和book表后按照题目要求完成即可.
2.建立一个表单,在其“属性”的“ShowWindow”中选择“2-作为顶层表单”。
在表单上单击右键—代码,在过程中选择init,输入代码:
domenu_lin.mprwiththis,'xxx'。
过程中再选择Destroy,输入代码:
releasemenuxxxextended。
保存并运行表单。
三、
1.建立一个表单,界面设计好后,同学们如果”统计”的按钮代码不会写就可以不写了,”退出”代码为:
thisform.release.保存后,你也能拿很高的分数.
不过,同学们一定要将组合框的三个属性设置一下,组合框的style属性设置为2。
Rowsourcetype属性设置为5-数组,rowsource属性中随便输入一个字母,如:
y。
第13套
一、略。
二、
1.利用查询设计器来做。
请同学们在表达式中填写“2003-year(student.出生日期)as年龄”的时候一定要注意,2003和year()之间只能有减号不能有空格。
2.略。
三、
建立表单一个表单,界面设计好后,同学们如果”查询”的按钮代码不会写就可以不写了,”退出”代码为:
thisform.release.保存后,你也能拿很高的分数.
“查询”命令按钮的代码为:
closeall
usescore1
locatefor学号=alltrim(ThisForm.Text1.Value)
if.not.found()
WAIT"学号不存在,请重新输入"WINDOWSTIMEOUT5
else
ThisForm.Grid1.Recordsource="sele课程名,成绩fromscore1,coursewhere学号=alltrim(ThisForm.Text1.Value)andscore1.课程号=course.课程号intocursortemp1"
selecttemp1
gotop
endif
第14套
一、略。
第4小题可以利