VF新题.docx
《VF新题.docx》由会员分享,可在线阅读,更多相关《VF新题.docx(15页珍藏版)》请在冰豆网上搜索。
VF新题
新题一:
一、基本操作(共四小题,第1和第2题是7分、第3和第4题是8分)
在考生文件夹下完成如下操作:
1.新建一个名为sdb的数据库文件,然后将client表添加到数据库中。
2.使用SQLUPDATE语句将client表中客户号为"061009"的客户的性别改为"男"。
然后将该语句保存在命令文件sone.prg中。
3.使用SQLINSERT语句在client表中添加一条记录,其中客户号为"071009"、客户名为"杨晓静"、性别为"女"、出生日期1991年1月1日。
然后将该语句保存在命令文件stwo.prg中。
(注意:
只能插入一条记录)
4.使用SQLALTER语句为client表的"性别"字段设置有效性规则:
性别必须为男或女。
然后将该语句保存在命令文件sthree.prg中。
二、简单应用(2小题,每题20分,计40分)
1.利用查询设计器创建查询,从customers、orders、orderitems和goods表中查询所有客户号前两个字符为"06"的客户签订的订单信息。
查询结果依次包含客户号、订单号、商品号、商品名和数量五项内容。
各记录按客户号升序排序、客户号相同按订单号升序排序、订单号也相同则按商品号升序排序。
查询去向为表tableone。
最后将查询保存在queryone.qpr文件中,并运行该查询。
2.扩展VisualFoxPro基类CommandButton,创建一个名为MyButton的自定义按钮类。
自定义按钮类保存在名为myclasslib的类库中。
自定义按钮类MyButton需满足以下要求:
1)其标题为"退出"。
2)其Click事件代码的功能是关闭并释放所在表单。
然后创建一个文件名为formone的表单,并在表单上添加一个基于自定义类MyButton的按钮。
三、综合应用(1小题,计30分)
在考生文件夹下已有一个菜单文件mymenu.mnx,运行相应的菜单程序时会在当前VFP系统菜单的末尾追加一个"考试"子菜单,
如下图所示。
在考生文件夹下还有一个表单文件myform.scx,表单中包含一个标签、一个文本框和两个命令按钮,如下图所示。
现在请按要求实现菜单项和命令按钮的相关功能。
菜单命令"统计"和"退出"的功能都通过执行过程完成。
菜单命令"统计"的功能是运行myform表单。
菜单命令"退出"的功能是恢复标准的系统菜单。
单击命令按钮"确定"要完成的功能是:
从customer、orders、orderitems和goods表中查询金额大于等于用户在文本框中指定的金额的订单信息。
查询结果依次包含订单号、客户号、签订日期、金额等四项内容,其中金额为该订单所签所有商品的金额之和。
各记录按金额降序排序,金额相同按订单号升序排序。
查询去向为表tabletwo。
单击命令按钮"关闭"要完成的功能是:
关闭并释放所在表单。
最后,请运行菜单程序、打开表单,然后在文本框中输入1000、并单击"确定"按钮完成查询统计。
新题一参考答案
基本操作题:
1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中添加client表。
2、在VF命令窗口中执行updateclientset性别="男"where客户号="061009",然后将此命令保存在sone.prg文件中。
3、在VF命令窗口中执行insertintoclientvalues("071009","杨晓静","女",{^1991-1-1}),然后将此命令保存在stwo.prg文件中。
4、在VF命令窗口中执行:
altertableclientalter性别setcheck性别="男"or性别="女",然后将此命令保存在sthree.prg文件中。
简单应用题:
第1题:
建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将customers、orders、orderitems和goods表添加到查询中,从字段选项卡中依次选择"customers.客户号"、"Orders.订单号"、"orderitems.商品号"、"goods.商品名"和"orderitems.数量";切换到"筛选"选项卡,在"字段名"的"表达式"中输入:
"LEFT(Customers.客户号,2)","条件"选择"=","实例"中输入:
"06";切换到"排序依据"选项卡并在其中选择字段"customers.客户号",排序选项为"升序",再选择"Orders.订单号",排序选项为"升序",再选择"orderitems.商品号",排序选项为"升序";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名tableone,最后保存并运行该查询。
第2题:
建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中:
在"类名"右边的文本框中输入:
MyButton,在"派生于"右边的列表框中选择CommandButton,在"存储于"右边的浏览中选择考生文件夹,再输入文件名myclasslib,单击"确定"按钮,打开"类设计器"窗口,进入类设计器环境。
在属性窗口中,将按钮类MyButton的Caption属性设置为"退出",设置"退出"按钮的Click事件代码:
thisform.release。
选择文件--新建--表单--新建文件,弹出"表单设计器"窗口。
在表单控件工具栏中点击“查看类”按按钮,添加在打开的对话框中,选择考生目录下的类库文件myclasslib.vcx,单击"打开"按钮,将类库文件myclasslib.vcx添加到可视类库中,然后在表单中添加一个MyButton的控件,保存表单。
综合应用题:
1、打开菜单文件mymenu.mnx,在"统计"菜单的"过程"中输入:
doformmyform,在"退出"菜单的"过程"中输入:
setsysmenutodefault。
最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr。
2、打开表单文件myform.scx,设置"确定"按钮的Click事件代码:
x=val(thisform.Text1.text)
SELECTOrderitems.订单号,Customers.客户号,Orders.签订日期,;
sum(Orderitems.数量*Goods.单价)as金额;
FROMcustomersINNERJOINorders;
INNERJOINorderitems;
INNERJOINgoods;
ONOrderitems.商品号=Goods.商品号;
ONOrders.订单号=Orderitems.订单号;
ONCustomers.客户号=Orders.客户号;
HAVING金额>=x;
GROUPBYOrders.订单号;
ORDERBY4DESC,Orderitems.订单号;
INTOTABLEtabletwo.dbf
设置"关闭"按钮的Click事件代码:
thisform.release
最后保存表单。
3、运行菜单程序、打开表单,然后在文本框中输入1000、并单击"确定"按钮完成查询统计。
新题二:
一、基本操作题(共四小题,第1和第2题是7分,第3和第4题是8分)
在考生文件夹下完成下列操作:
1.新建一个数据库mydatabase,在库中建立数据库表temp,表内容和结构与当前文件夹下的"歌手信息"表完全相同。
2.建立快捷菜单mymenu,快捷菜单有两条命令:
"打开文件"和"关闭文件"。
注意要生成菜单程序文件。
3.使用报表向导建立一个报表,报表的数据来源分别是"打分表"(父表)和"歌手信息"(子表)两个数据库文件,选取这两个表的全部字段,连接字段为"歌手编号",按"分数"升序排列,报表的标题为"打分一览表",最后将报表保存为"打分表"。
4.使用SQL命令将表temp中歌手编号为111的歌手的年龄修改为20岁,命令存储在mypro.prg中。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成下列操作:
1.修改程序proone.prg中带有注释的四条语句(修改或填充,不要修改其他的语句),使之能够正常运行,程序的功能是将大于等于11并且小于等于2011的素数存储于表prime中。
修改完成后请运行该程序。
2.编写SQL命令查询歌手平均分大于8.2的歌手的姓名、歌手编号和平均分,查询结果存储于result.dbf中(字段名依次为姓名、歌手编号和平均分),结果按歌手的平均分降序排列。
SQL命令要保存在ttt.prg文件中。
三、综合应用(1小题,计30分)
在考生文件夹下完成下列操作:
1.打开数据库文件mydatabase,为表temp建立主索引:
索引名和索引表达式均为"歌手编号"。
2.利用表temp建立一个视图myview,视图中的数据满足以下条件:
年龄大于等于28岁并且按年龄升序排列。
3.建立一个名为staff的新类,新类的父类是CheckBox,新类存储于名为myclasslib的类库中。
4.数据库"比赛情况"中有3个数据库表:
打分表、歌手信息和选送单位。
建立包括4个标签、一个列表框(List1)和3个文本框的表单myform,其中Label1、Label2、Label3、Label4的标题依次为选送单位、最高分、最低分和平均分;文本框Text1、Text2、Text3依次用于显示最高分、最低分和平均分,如下图所示。
5.列表框(List1)的RowSource和RowSourceType属性手工指定为"选送单位.单位名称"和6。
6.为列表框(List1)的DblClick事件编写程序。
程序的功能是:
表单运行时,用户双击列表框中选项时,将该选送单位的"单位名称"、"最高分"、"最低分"和"平均分"四个字段的信息存入自由表two.dbf中(字段名依次为单位名称、最高分、最低分和平均分),同时将统计数据显示在界面相应的文本框中。
7.最后运行表单,并在列表框中双击"空政文工团"。
新题二参考答案
基本操作题:
1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,然后在命令窗口中输入:
use歌手信息
copytotemp
2、在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入两个菜单项"打开文件"和"关闭文件",单击"菜单"菜单中的"生成",按提示保存为mymenu,并生成菜单源程序文件(MPR)。
3、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,在"向导选取"对话框中选择"一对多报表向导",然后按照报表向导操作即可。
4、SQL命令为:
updatetempset年龄=20where歌手编号=111,然后将此命令保存在mypro.prg文件中。
简单应用题:
1、打开proone.prg程序,根据题目要求修改程序中的错误语句:
第1个注释那修改为:
createtableprime(datf)
第2个注释那填充:
loop
第3个注释那填充:
exit
第4个注释那修改为:
insertintoprimevalues(n)
2、SQL命令为:
select姓名,歌手信息.歌手编号,avg(分数)as平均分;
from歌手信息,打分表where歌手信息.歌手编号=打分表.歌手编号;
groupby打分表.歌手编号having平均分>=8.2;
orderby3descintotableresult.dbf
然后将此命令保存在ttt.prg文件中。
综合应用题:
1、打开temp表的表设计器,打开"索引"选项卡,在索引名处输入:
歌手编号,类型选择"主索引",表达式为:
歌手编号。
2、通过createVIEW命令打开视图设计器,在"添加表或视图"对话框中添加temp表;在"字段"选项卡中选择所有字段;在"筛选"选项卡中,"字段名"选择"Temp.年龄","条件"选择">=",实例中输入"28";在"排序依据"选项卡中选择"Temp.年龄","排序选项"选择"升序",保存视图为"myview"。
3、建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中:
在"类名"右边的文本框中输入:
staff,在"派生于"右边的列表框中选择CheckBox,在"存储于"右边的浏览中选择考生文件夹,再输入文件名myclasslib,单击"保存"按钮。
4、在命令窗口输入命令:
CREATEFORMmyform,打开表单设计器窗口。
为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境",添加"选送单位"表。
5、在表单上添加标签、列表框、文本框,并进行适当的布置和大小调整。
6、根据题面要求设置标签、列表框、文本框的属性值。
7、设置"列表框"的DblClick事件代码:
x=thisform.List1.Value
select选送单位.单位名称,max(分数)as最高分,;
min(分数)as最低分,avg(分数)as平均分;
from打分表,歌手信息,选送单位;
where选送单位.单位号=歌手信息.选送单位号and;
打分表.歌手编号=歌手信息.歌手编号;
GROUPBY选送单位.单位号having单位名称=x;
intotabletwo.dbf
thisform.text1.value=two.最高分
thisform.text2.value=two.最低分
thisform.text3.value=two.平均分
8、保存表单并运行,在列表框中双击"空政文工团"。
新题三:
一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)
在考生文件夹下完成下列操作:
1.使用报表向导为"职工"表创建一个报表one,选择"职工"表的所有字段,报表样式选择简报式,按"职工号"为升序排列,其他选项取默认值。
2.建立一个如下图所示的菜单mymenu,注意要生成菜单。
3.新建数据库文件mydata,并将"教师"表加入其中。
4.使用SQLCreate命令建立"学生"表,"学生"表中包括学号(C10)、姓名(C16)和年龄(I)字段,学号为主关键字。
命令存储于文件mypro.prg中。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下完成下列操作:
1.请修改并执行程序test。
test.prg的功能是:
根据"职工"和"部门"两个表,计算每个部门1980到1990年出生的职工人数,存储于新表new中,新表中包括"部门号"和"人数"两个字段,结果按"人数"递减排序。
注意,每一行有且仅有一处错误,不能修改其他语句。
2.创建一个新类MyCommandButton,该类扩展VFP的CommandButton基类,新类保存在考生文件夹下的myclasslib类库中。
在新类中将标题属性设置为"打开"。
新建一个表单MyForm,在表单中添加新类MyCommandButton,如图所示。
三、综合应用(1小题,计30分)
在考生文件夹下完成下列操作:
1.新建一个名为"职工管理"的数据库文件,将自由表"部门"、"职工"添加到该数据库中。
2.将"部门"中的"部门号"定义为主索引,索引名是index_depa。
3.建立一个查询mysql,查询"通信"学院工资大于3000的人员"姓名"和"工资"信息存入salary.dbf中,按工资升序排列,执行该查询。
4.建立包括一个标签(Label1)、一个列表框(List1)、一个表格(Grid1),Label1的标题为"部门名"的表单formtwo。
5.列表框(List1)的RowSource和RowSourceType属性手工指定为"部门.部门名"和6。
6.表格(Grid1)的RecordSource和RecordSourceType属性手工指定为"select职工号,姓名,工资from职工"和4。
7.列表框(List1)的DblClick事件编写程序。
程序的功能是:
表单运行时,用户双击列表框中实例时,将该部门的"职工号"、"姓名"和"工资"三个字段的信息存入自由表three.dbf中,表中的记录按"职工号"降序排列。
8.运行表单,在列表框中双击"信息管理"。
新题三参考答案
基本操作题:
1、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。
然后按照向导提示操作即可。
2、建立菜单可以使用"文件"菜单,选择文件--新建--菜单--新建文件--菜单,打开菜单设计器。
在菜单设计器中建立各菜单项,菜单名称分别为:
"打开文件"、"关闭文件"和"退出(\3、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中添加"教师"表。
4、建立"学生"表的命令为:
createtable学生(学号C(10)primarykey,姓名C(16),年龄I),然后将此命令保存在mypro.prg文件中。
简单应用题:
第1题:
本题是一个程序修改题。
第一处错误应改为:
将sum(*)改为count(*)。
第二处错误应改为:
将or改为and。
第三处错误应改为:
orderby人数desc;。
第四处错误应改为:
将to改为into。
第2题:
建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中,在"类名"右边的文本框中输入:
MyCommandButton,在"派生于"右边的列表框中选择CommandButton,在"存储于"右边的浏览中选择考生文件夹,再输入文件名myclasslib,单击"保存"按钮,然后单击"确定"按钮,打开"类设计器"窗口,进入类设计器环境,在属性窗口中,将命令按钮的Caption属性设置为"打开"。
选择文件--新建--表单--新建文件,弹出"表单设计器"窗口。
再单击"表单控件"工具栏上的"查看类"按钮,然后选择myclasslib,在表单中添加一个MyCommandButton的控件,以表单名"MyForm"保存表单。
综合应用题:
1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中添加"部门"表、"职工"表。
2、打开"部门"表的表设计器,打开"索引"选项卡,在索引名处输入:
index_depa,类型选择"主索引",表达式为:
部门号。
3、建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"部门"和"职工"表添加到查询中,并设置两表间的联系,从字段选项卡中依次选择"职工.姓名"和"职工.工资";切换到"筛选"选项卡,在"字段名"中选择"部门.部门名","条件"选择"=","实例"中输入:
"通信","逻辑"中选择"AND",再选择"职工.工资","条件"选择">","实例"中输入:
"3000";切换到"排序依据"选项卡并在其中选择字段"职工.工资",排序选项为"升序";单击"查询"菜单下的"查询去向",选择"表",在"表名"右边的对话框中输入表名salary,最后保存并运行该查询。
4、在命令窗口输入命令:
CREATEFORMformtwo,打开表单设计器窗口。
为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境",添加"部门"和"职工"表。
5、在表单上添加标签、列表框、表格,并进行适当的布置和大小调整。
6、根据题面要求设置标签、列表框、表格的属性值。
7、设置"列表框"的DblClick事件代码:
thisform.grid1.recordsource="select职工号,姓名,工资from部门,职工where部门.部门号=职工.部门号and部门名=thisform.list1.valueorderby职工号descintotablethree"
8、保存表单并运行,在列表框中双击"信息管理"。
新题四:
一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)
在考生文件夹下完成如下操作:
1.使用SQLINSERT语句在orders表中添加一条记录,其中订单号为"0050"、客户号为"061002"、签订日期为2010年10月10日。
然后将该语句保存在命令文件sone.prg中。
2.使用SQLUPDATE语句将orders表中订单号为"0025"的订单的签订日期改为2010年10月10日。
然后将该语句保存在命令文件stwo.prg中。
3.使用SQLALTER语句为orders表添加一个"金额"字段(货币类型)。
然后将该语句保存在命令文件sthree.prg中。
4.使用SQLDELETE语句从orderitems表中删除订单号为"0032"且商品号为"C1003"的记录。
然后将该语句保存在命令文件sfour.prg中。
二、简单应用(2小题,每题20分,计40分)
1.使用SELECT语句查询2008年2月份没有订单的客户,查询结果依次包含客户号、姓名、性别和联系电话四项内容,各记录按客户号降序排序,查询结果存放在表tableone中。
最后将该语句保存在命令文件sfive.prg中。
注:
customers是客户表,orders是订单表。
2.首先创建数据库goods_m,并向其中添加goods表。
然后在数据库中创建视图viewone:
利用该视图只能查询单价大于等于2000且库存量小于等于2、或者单价小于2000且库存量小于等于5的商品信息,查询结果依次包含商品号、商品名、单价和库存量四项内容,各记录按单价降序排序、单价相同按库存量升序排序。
最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。
三、综合应用(1小题,计30分)
在考生文件夹下创建一个顶层表单myform.scx(表单的标题为"考试"),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。
效果如下图所示。
1.菜单命令"统计"和"退出"的功能都通过执行过程完成。
2.菜单命令"统计"的功能是从customers表中统计各年份出生的客户人数。
统计结果包含"年份"和"人数"两个字段,各记录按年份升序排序,统计结果存放在tablethree表中。
3.菜单命令"退出"的功能是释放并关闭表单(在过程中包含命令myform.release)。
4.请运行表单并依次执行其中的"统计"和"退出"菜单命令。
新题四参考答案
基本操作题:
1.insertintoordersvalues("0050","061002",{^2010/10/10})
2.update