vf题库 表单 操作题讲解.docx
- 文档编号:27531197
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:19
- 大小:103.34KB
vf题库 表单 操作题讲解.docx
《vf题库 表单 操作题讲解.docx》由会员分享,可在线阅读,更多相关《vf题库 表单 操作题讲解.docx(19页珍藏版)》请在冰豆网上搜索。
vf题库表单操作题讲解
表单操作题
1
设计一个名为Frm01的表单,表单的控件名和文件名均为Frm01。
表单的形式如下图所示。
要求如下:
1.表单标题为"零件供应情况",表格控件为Grid1,命令按钮"查询"为Command1、"退出"为Command2,标签控件Label1和文本框控件Text1(程序运行时用于输入工程号)。
2.运行表单时,在文本框中输入工程号,单击"查询"命令按钮后,表格控件中显示相应工程所使用的零件的零件名、颜色和重量(通过设置有关"数据"属性实现),并将结果按"零件名"升序排序存储到pp.dbf文件。
单击"退出"按钮关闭表单。
答题要求:
(1)将表格的recordsourcetype属性设为“0”
(2)查询的单击事件:
使用select语句,将查询结果存到一个表pp.dbf中,然后再将表格grid1的recordsource属性设为"pp"
(3)表单备注文件不能删除
查询按钮代码:
SELECT零件.零件名,零件.颜色,零件.重量;FROM供应零件!
供应INNERJOIN供应零件!
零件;ON供应.零件号=零件.零件号;WHERE供应.工程号=thisform.text1.value;ORDERBY零件.零件名;INTOTABLEpp.dbfthisform.grid1.recordsource=null&&这句话可以删除thisform.grid1.recordsource="pp"thisform.grid1.refreshthisform.refresh
3
求1到100以内的奇数,单击"计算"按钮后,首先清除列表框中原先的内容,然后显示结果,单击"退出"按钮后退出表单。
表单文件名为Frm03.scx。
要求:
1.窗体命名为frm03.scx(表单备注文件不能删除)
2.窗体的标题为:
求100以内的奇数
3.命令按钮"计算"(名称为command1),"退出"(名称为command2)
4.列表框名称为list1
5.判断一个数是否为奇数使用语句“i%2<>0”,即i除2不等于0
6.列表框中增加一项使用语句“additem(str(i))”
7.要求使用for循环语句
8.退出表单用release语句
计算按钮的代码:
thisform.list1.clear
fori=1to100
ifi%2<>0
thisform.list1.additem(str(i))
endif
endfor
4.
表单功能:
输入圆的半径,单击计算后,在文本框2中显示圆的体积,其中圆的体积公式是V=(4/3)*3.14*r*r*r.表单文件名为Frm04.scx。
要求:
1.表单文件名为frm04.scx(表单备注文件frm04.sct不能删除),存入考生文件夹。
2.表单的标题为“求圆的体积”。
3.表示半径的文本框名称为“Text1”,类型为N
4.显示体积的文体框名称为“Text2”,类型为N
5.“计算”命令按钮名称为“command1”,“退出”命令按扭名称为“command2”
6.必须定义两个变量r(表示半径)和v(表示体积)
7.计算体积的公式使用:
v=(4/3)*3.14*r*r*r
“计算”按钮的代码:
V=0
R=thisform.text1.value
V=(4/3)*3.14*r*r*r
Thisform.text2.value=v
&&右击文本框,选择生成器,里面有设置数值型(N)的选项
5
在表单中创建一个具有三个页的页框,如图所示。
表单文件名为FRM05.SCX
要求如下:
(1)表单文件名为Frm05.scx(表单备注文件不能删除),存入考生文件夹。
(2)表单的标题为“我的页框”
(3)页框名为pageframe1,三个页的标题分别为“第一页”、“第二页”、“第三页”
(4)在第一页中有标签LABEL1,显示“欢迎使用VF系统”,字号为15。
(5)在第一页中有一选项按扭组OptionGroup1,有两选项按扭option1和option2,分别显示为“隶书”和“黑体”
(6)单击“隶书”,标签文字显示为隶书;单击“黑体”,标签文字显示为“黑体”。
(7)其它两页无内容。
第一页的相关代码:
Optiongroup1的代码:
&&这句话用docase语句请看下面
ifthis.value=1
thisform.pageframe1.page1.label1.fontname="隶书"
endif
ifthis.value=2
thisform.pageframe1.page1.label1.fontname="黑体"
endif
&&
Docase
Casethis.value=1
thisform.pageframe1.page1.label1.fontname="隶书"
Casethis.value=2
thisform.pageframe1.page1.label1.fontname="隶书"
endcase
6
做一个如图所示的顶层表单,表单文件名为Frm06.scx,运行时表单上加载一菜单,如图所示。
要求如下:
(1)表单文件名为Frm06.scx(表单备注文件不能删除),存入考生文件夹。
(2)表单标题为“顶层表单”。
(3)菜单名为M1,生成的菜单文件名为M1.MPR
(4)菜单有两菜单项,分别为“欢迎”和“退出”
(5)单击欢迎,显示“VF欢迎您”(使用函数messagebox);单击“退出”,退出VF(使用quit语句)。
注意:
请将相关文件按要求存入考生文件夹,否则本题得不到成绩。
表单文件名为FRM06.scx
欢迎子菜单的命令:
Messagebox(“vf欢迎您”)
退出的命令为
Quit
7
表单功能:
表单上有一个表格控件,用来绑定students表,一个有三个水平命令按钮的命令按钮组,能实验对表students的添加、删除功能。
程序运行如图所示。
要求:
1.表单文件名为frm07.scx(表单备注文件frm07.sct不能删除),存入考生文件夹。
2.表单的标题为“表格的使用”。
3.表格名称为grid1,“添加”按钮的名称为CmdAdd,“删除”按钮的名称为CmdDelete,“退出”按钮的名称为CmdExit。
4.不允许使用数据环境(在程序中用代码实现)。
5.添加记录后要求焦点回到表格。
6.删除必须为物理删除。
7.退出程序使用方法release
8东北大学
表单操作题:
设计一个如下图所示的表单,选择字体、字号与字型后,文本框中文字的字体、字号和字型能随之改变。
要求:
1.表单文件名为frm08.scx(表单备注文件frm08.sct不能删除),存入考生文件夹。
2.表单的标题为“复选框和选择按钮组”。
3.选项按钮组中有三个命令按钮,名称分别为Option1、Option2和Option3。
4.组合框名为Combo1,其值为三个列表项,分别为“16”、“20”、“24”。
在表单的init事件中用Additem方法添加这三个值。
5.“加粗”复选框的名称为Check1,“下划线”复选框的名称为Check2。
6.文本框的名称为Text1
7.在设计表单过程中不得使用变量。
Form1int事件
Tbo1.additem("16",1)
Tbo1.additem("20",2)
Tbo1.additem("24",3)
选择字号
intfontsize=val(this.value)
thisform.text1.fontsize=intfontsize
选择字体
docase
casethis.value=1
thisform.text1.fontname="宋体"
casethis.value=2
thisform.text1.fontname="黑体"
casethis.value=3
thisform.text1.fontname="隶书"
casethis.value=4
thisform.text1.fontname="华文行楷"
endcase
加粗
ifthis.value=1
thisform.text1.fontbold=.t.
else
thisform.text1.fontbold=.f.
Endif
下划线
ifthis.value=1
thisform.text1.fontunderline=.t.
else
thisform.text1.fontunderline=.f.
Endif
9
设计一个能实现密码验证的表单,运行效果如下图所示。
要求:
1.表单文件名为frm09.scx(表单备注文件frm09.sct不能删除),存入考生文件夹。
2.表单的标题为“密码验证窗口”。
3.设置为顶层表单。
Showwindow2
4.“用户代码”文本框名称为text1,“输入密码”文本框名称为text2。
5.将“用户代码”赋给变量strUid,“密码”赋给变量strPwd。
6.在“输入密码”文本框中输入字符显示为“*”。
7.密码及用户代码均为“001”。
8.判断用户代码及密码是否相等用完全比较运算符“==”。
9.密码输入正确用消息对话框函数messagebox显示“”。
10.密码或用户代码输入不正确用消息对话框函数messagebox显示“用户代码或密码不正确”。
11.三次密码输入不正确用消息对话框显示“三次密码输入不正确”,然后退出表单。
12.用变量i表示密码输入次数,i的初值为0。
确定按钮代码:
struid=thisform.text1.value
strpwd=thisform.text2.value
ifalltrim(struid)=="001"oralltrim(strpwd)=="001"
messagebox("欢迎使用")
else
messagebox("用户代码或密码不正确")
i=i+1
endif
ifi>=3
messagebox("三次密码输入不正确")
Thisform.release
endif
注意:
1、密码显示成星号是通过text2的passwordchar属性为*
2、form1的load事件的代码为publici
I=0
10
设计一个能移动记录指针的表单,运行效果如下图所示。
要求:
1.表单文件名为frm10.scx(表单备注文件frm10.sct不能删除),存入考生文件夹。
2.表单的标题为“使用数据环境”。
3.设置为顶层表单。
4.使用“数据环境”,将考生文件夹中自由表students添加到数据环境。
5.使用鼠标拖动的方法将字段“学号”、“姓名”、“是否党员”和“身份证号”四个字段拖动到表单上。
6.“学号”文本框名称为“txt学号”,绑定字段为“students.学号”;“姓名”文本框名称为“txt姓名”,绑定字段为“students.姓名”;“是否党员”复选框名称为“chk是否党员”,绑定字段为“students.是否党员”;“身份证号”文本框名称为“txt身份证号”,绑定字段为“students.是否党员”。
以上名称以绑定字段均为取默认值。
7.表单中建一有4个命令按钮的水平命令按钮组。
单击相关命令按钮能实现记录指针的移动。
8.单击退出按钮能退出表单,退出表单使用方法release。
第1条代码
gotop
thisform.refresh
上一条代码
skip-1
thisform.refresh
下一条代码
skip1
thisform.refresh
最后一条代码
gobottom
thisform.refresh
退出代码
thisform.release
注意:
要按要求,把数据环境中的字段直接拖到表单上就可以了
Time
在VF中建一表单,表单文件名为FrmTime.SCX,将该文件存于考生文件夹中。
具体要求如下:
1、表单的标题为“显示时间”
2、表单上有三个命令按钮,分别是“显示”(名称为cmd1)、“停止显示”(名称为cmd2)、“退出”(名称为cmd3)
3、表单上有一个标签,名称为LBL1
4、通过timer(时间按件名为timer1,Interval属性设为1000)控件实现以下功能
单击“显示”按扭,在标签LBL1中显示系统时间;单击“停止显示”按钮,停止显示时间(使用timer控件的Enabled属性);单击“退出”按钮,即表单程序。
注意:
请将相关文件按要求存入考生文件夹。
显示按钮:
thisform.timer1.enabled=.t.
表单int事件:
thisform.timer1.enabled=.f.
停止显示按钮:
thisform.timer1.enabled=.f.
thisform.label1.caption=“”
Timer1代码:
thisform.label1.caption=time()
改错题
1.修改并执行程序four.prg,该程序的功能是:
根据"学院表"和"教师表"计算"信息管理"系教师的平均工资。
注意,只能修改标有错误的语句行,不能修改其他语句。
SELECT系号FROM学院表where系名="信息管理"INTOARRAYa
use教师表
STORE0TOsum
STORE0TOnum
SCANfor系号=a
sum=sum+工资
num=num+1
ENDSCAN
?
sum/num
2.修改命令文件THREE.PRG。
该命令文件用来查询与"姚小敏"同一天入住宾馆的每个客户的客户号、身份证、姓名和工作单位,查询结果包括"姚小敏"。
最后将查询结果输出到表TABC中。
该命令文件在第3行、第5行、第7行和第8行有错误(不含注释行),打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不能增加、删除或合并行。
修改完成后,运行该命令文件。
OPENDATABASE宾馆
SELECT客户.客户号,身份证,姓名,工作单位;
FROM客户JOIN入住;
WHERE入住日期IN;
(SELECT;
FROM客户,入住;
WHERE姓名="姚小敏");
TOTABLETABC
2.解题思路:
第3行:
FROM客户JOIN入住ON客户.客户号=入住.客户号;
第5行:
(SELECT入住日期;
第7行:
WHERE客户.客户号=入住.客户号and姓名="姚小敏");
第8行:
INTOTABLETABC
备注:
EOF()是VF中的一个函数,检测是否超过记录尾,如果记录指针超过记录尾,它返回真,否则返回假,
not.eof()检测检测是否超过记录尾,如果没超过尾,返回真,它常用做循环条件。
dowhile.not.eof()
处理语句
skip
enddo
这段程序一条一条的处理记录,直到全部记录处理结束。
selectcount(*)返回所有满足条件的记录数
3.将歌手比赛分为4个组,"歌手表"中的"歌手编号"字段的左边两位表示该歌手所在的组号。
考生文件夹下的程序文件five.prg的功能是:
根据"歌手表"计算每个组的歌手人数,将结果存入表one,表one中有"组号"和"歌手人数"两个字段。
程序中有3处错误,请修改并执行程序。
注意:
只能修改标有错误的语句行,不能修改其他语句,数组名A不允许修改。
本题是一个程序修改题。
第一处错误应改为DOWHILENOTEOF();第二处错误应改为SELECTCOUNT(*)FROM歌手表WHERELEFT(歌手表.歌手编号,2)=zuhaoINTOARRAYA;第三处错误应改为REPLACE歌手人数WITHA。
1、基本操作题:
要求如下:
1.在考生文件夹下打开数据库"订单管理",然后删除其中的customer表(从磁盘中删除)。
2.为employee表建立一个按升序排列的普通索引,索引名为xb,索引表达式为"性别"。
3.为employee表建立一个按升序排列的普通索引,索引名为xyz,索引表达式为"str(组别,1)+职务"。
4.为employee表建立一个主索引,为order表建立一个普通索引,索引名和索引表达式均为"职员号"。
通过"职员号"为employee表和order表建立一个一对多的永久联系。
2.在College数据库中使用视图设计器建立一个名为coursev的视图。
(1)先将"课程表"、"学院表"和"教师表"添加到数据库中。
(2)该视图根据"课程表"、"学院表"和"教师表"建立,视图中的字段包括"姓名"、"课程名"、"学时"和"系名"4项。
(3)视图中只包括"学时"大于等于60的记录,视图中的记录先按"系名"升序排列,若"系名"相同再按"姓名"降序排列。
4、.打开STSC数据库,数据库中有二个表中,分别是:
COURSE.DBF,SCORE.DBF,请将STUDENT.DBF添加到数据库中。
请建立必要的索引,并为三个表建立永久联系。
4.为性别字段设置有效性,规则为:
性别="男".OR.性别="女"
信息为:
"性别只能为男或女"
5、简单应用题:
1.利用查询设计器创建查询,从employee和orders表中查询"组别"为1的组各职员所签的所有订单信息。
查询结果依次包含"订单号"、"金额"和"签订者"3项内容,其中"签订者"为签订订单的职员姓名。
按"金额"降序排列各记录,查询去向为表tableone。
最后将查询保存在qprone.qpr文件中,并运行该查询。
注意:
tableone表中三个字段顺序依次为:
"订单号"、"金额"和"签订者"。
建立查询
新建查询——设计查询——设置查询对象——保存查询——运行查询——显示/浏览
简单应用题:
在考生文件夹下,打开"宾馆"数据库,完成如下简单应用:
1.使用查询设计器设计一个名为TWO的查询文件,查询房价价格大于等于280元的每个客房的客房号、类型号(取自客房表)、类型名和价格。
查询结果按类型号升序排列,并将查询结果输出到表TABB中。
设计完成后,运行该查询。
1.解题思路:
1.建立查询文件
CREATEQUERYtwo
2.在“打开”对话框中,选择表“客房.dbf”,再按“确定”按钮。
3.在“添加表或视图”对话框中,选择表“房价”,再按“添加”按钮,接着按“关闭”按钮,关闭“添加表或视图”对话框。
4.在“查询设计器-two”窗口中,单击“字段”选项卡,选择“客房.客房号”、“客房.类型号”、“房价.类型名”、“房价.价格”。
5.在“查询设计器-two”窗口中,单击“筛选”选项卡,选择字段“房价.价格”,在“条件”处选择“>=”,在实例处输入“280”。
6.在“查询设计器-two”窗口中,单击“排序依据”选项卡,选择字段“客房.类型号”并在“排序选项”中选中“升序”,再单击“添加”按钮。
7.在“查询设计器”中,单击“查询\查询去向”菜单项,并显示“查询去向”对话框,在此对话框中,单击“表”按钮,接着在“表名”处输入表名“TABB”,单击“确定”按钮。
8.最后保存并运行此查询。
基本操作题
1.在考生文件夹下新建一个名为"供应"的项目文件。
2.将数据库"供应零件"加入到新建的"供应"项目中。
3.通过"零件号"字段为"零件"表和"供应"表建立永久性联系,其中,"零件"是父表,"供应"是子表。
4.为"供应"表的"数量"字段设置有效性规则:
数量必须大于0并且小于9999;错误提示信息是"数量超范围"。
(注意:
规则表达式必须是"数量>0.and.数量<9999")
2.建立一个数据库文件歌手大奖赛.dbc,并将"歌手表"、"评委表"和"评分表"3个自由表添加到该数据库中。
在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"歌手大奖赛",单击保存按钮。
选择"数据库"菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的歌手表,再点击"确定"即可,这样歌手表就添加到了"歌手大奖赛"数据库中,用同样的方法,将"评委表"和"评分表"也添加到"歌手大奖赛"数据库中。
3.使用视图设计器建立视图songer_view,根据"歌手表"、"评委表"和"评分表"建立该视图,视图中的字段项包括:
评委姓名、歌手姓名、分数,视图中的记录按"歌手姓名"升序排列,若"歌手姓名"相同再按"分数"降序排列。
注:
使用“LEFT(歌手编号,2)”表示歌手所在的组号。
在新建对话框中选择"视图"或用CREATVIEW命令打开视图设计器。
建立一个视图,将"歌手表"、"评委表"和"评分表"添加到视图中,并将题中指定字段添加入视图;切换到"排序依据"中选择字段"歌手表.歌手姓名",在"排序选项"处选择"升序";再选择字段"评分表.分数",在"排序选项"处选择"降序";最后将视图命名为songer_view。
1.修改"客户"表结构,为"性别"字段增加有效性规则:
性别只能为"男"或"女",默认值为"女",表达式为:
性别$"男女"。
ALTERTABLE客户ALTER性别SETCHECK性别$"男女"
ALTERTABLE客户ALTERCOLUMN性别SETDEFAULT"女"
2.为"入住"表创建一个主索引,索引名为fkkey,索引表达式为"客房号+客户号"。
1.打开并修改数据库
MODIFYDATABASE宾馆
2.在“数据库设计器-宾馆”中,选择表“入住”并单击鼠标右键,选择“修改”命令,在“表设计器-入住.dbf”中,单击“索引”选项卡,然后输入索引名“fkkey”,选择类型为
“主索引”,表达式为“客房号+客户号”,最后单击“确定”按钮,再单击“是(Y)”就可以建立主索引了。
3.根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引(主索引已经建立),索引名与创建索引的字段名相同,升序排序。
1.打开并修改数据库
MODIFYDATABASE宾馆
2.在“数据库设计器-宾馆”中,选择表“入住”并单击鼠标右键,选择“修改”命令,在“表设计器-入住.dbf”中,单击“索引”选项卡,然后输入索引名“客房号”,选择类型为“普通索引”,表达式为“客房号”,再移到下一项,输入索引名“客户号”,选择类型为“普通索引”,表达式为“客户号”,再最后单击“确定”按钮,再单击“是(Y)”就可以建立索引了。
3.在“数据库设计器-宾馆”中,选择表“客房”并单击鼠标右键,选择“修改”命令,在“表设计器-客房.dbf”中,单击“索引”选项卡,然后输入索引名“类型号”,选择类型为“普通索引”,表达式为“类型号”,再最后单击“确定”按钮,再单击“是(Y)”就可以建立索引了。
4.使用SQL的SELECT语句查询"客户"表中性别为"男"的客户号、身份证、姓名和工作单位字段及相应的记录值,并将结果存储到名为TABA的表(注意,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vf题库 表单 操作题讲解 vf 题库 操作 讲解