VF 表单程序题(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、利用文本框和标签控件设计了一表单F1.SCX,文本框Text1的V alid事件代码及表单界面如图1所示。
向Text1中输入一段字符:”Figure 1-18 shows you how to use a MENU.”(不含双引号)[Text1.Valid event]
x=alltrim(thisform.text1.value)
y=len(x)
store 0 to z1,z2
for i=1 to y
a=substr(x,i,1)
do case
case asc(a)>=65 and asc(a)<=90
z1=z1+1
case asc(a)>=97 and asc(a)<=122
z2=z2+1
endcase
endfor
thisform.text2.value=z1
thisform.text3.value=z2
(1)执行该程序后,“统计1”右边的文本框Text2和“统计2”右边的文本框Text3中的数据值分别为5、22
(2)Text2和Text3的初值分别为0、0
2、有数据表“图书.DBF”包含书号、书名、出版社、作者等字
段,设计如图1所示表单,表单运行后,单击命令按钮可以在
表格控件中显示图书表的部分字段的数据,如图1所示,请选
择并完善代码。
命令按钮的CLICK事件代码:
USE 图书
copy TO TS FIELDS 书号,书名
THISFORM.GRID1.RECORDSOURCETYPE=0
THISFORM.GRID1.RECORDSOURCE=”TS”
表单的UNLOAD(释放对象时发生)事件:
CLOSE ALL
DROP TABLE TS
3、考生数据表(文件名为:KS.DBF)中有“准考证号/C/9”、
“密码/C/6”、“成绩/N/5/1”等字段。
设计如图2所示表单,
将考生数据表添加到表单的数据环境中,表单运行后,在表单
的文本框TEXT1中输入查询考生的准考证号,文本框TEXT2
中输入该考生的查询密码后,单击“查询”按钮,查询该考生
的成绩,并将该考生的成绩显示在表单的标签LABEL3中(考
号或密码输入错误,则弹出提示窗口显示“准考证号或密码错
误!”)。
请选择并完善代码。
“查询”按钮的CLICK事件代码如下:
SELECT KS
Locate for 准考证号=KH and密码=MM
IF FOUND()
THISFORM..lebel3.caption=str(成绩,5,1)
ELSE
MESSAGEBOX(“准考证号或密码错误!”)
ENDIF
4、设计如图3所示表单,表单运行后,要在表格中显示图书表中数量
最少的3种图书信息,请选择并完善代码。
表单FORM1的INIT事件代码如下:
THISFORM.GRID1.RECORDSOURCETYPE=4
THISFORM.GRID1.RECORDSOURCE=”SELECT top 3* ROM 图
书;
Order by数量INTO CURSOR TEMP”
5、有学生成绩表(文件名:XSCJ.DBF),表中数据如下所示,设计如
图5所示表单,将学生成绩表添加到表单数据环境中,表单运行时,单击“统计”命令按钮,LABEL1显示课程名为计算机基础且成绩在80以上的平均成绩,LABEL2显示这些记录的绩点总和
学生成绩表(文件名:XSCJ.DBF)
姓名课程名成绩绩点
陈兵计算机基础92 4
杨昆计算机基础68 1
江三计算机基础88 3
陈兵程序设计80 3
杨杨电子商务70 2
杨杨计算机基础90 4
图5
(1)程序填空:“统计”命令按钮的CLICK事件代码如下:
SC=0
SD=0
N=0
DO WHILE .NOT. EOF()
IF 课程名=”计算机基础” AND 成绩>80
SC=SC+成绩
SD=SD+绩点
N=N+1
ENDIF
SKIP
ENDDO
BEL1. C APTION=STR(SC/N)
BEL2.CAPTION=STR(SD)
(2)写结果:两个标签(LABEL1,LABEL2)中分别显示的结果是90 和11
6、选择题。
设计如图6所示表单,命令按钮组
COMMANDGROUP1的BUTTONCOUNT属性值设置为3。
其余属性均为默认值。
表单运行后,鼠标单击COMMAND2后表单中控件的变化情况,请选择(B)
在COMMANDGROUP1的CLICK事件中有如下代码:
CASE THIS.V ALUE=1
THISFORM.EDIT1.V ALUE=”VFP 简单、易学” MAND1.CAPTION=”隶书” CASE THIS.V ALUE=2
THISFORM.EDIT1.V ALUE=”编程思维很重要” MAND2.CAPTION=”楷体” CASE THIS.V ALUE=3
THISFORM.EDIT1.V ALUE=”多看例题多思考” MAND3.CAPTION=”宋体”
ENDCASE 图6 A 编辑框中显示:VFP 简单、易学;第1个命令按钮上面的文本显示为:隶书 B 编辑框中显示:编程思维很重要;第2个命令按钮上面的文本显示为:楷体 C 编辑框中显示:多看例题多思考;第3个命令按钮上面的文本显示为:宋体 D 没有变化
7、有两个表文件,表中数据如下所示:
学生成绩表(文件名为:SC.DBF ) 学生信息表(文件名为:XS.DBF ) 学号 课程 成绩 学分 1001 英语 92 4 1003 英语 78 4 1005 程序设计 95 3 1007 程序设计 82 3 1001 计算机基础 92 2 1003
计算机基础
88
2
设计如图7所示表单,表单运行后,单击“查询”命令按钮,表格GRID1中显示的结果是(B )
SELECT 姓名,课程,成绩 FROM XS,SC WHERE XS.学号=SC.学号 AND 成绩>90 AND 学分>=3 ORDER BY 成绩 DESC INTO CURSOR LB
THISFORM.GRID1.RECORDSOURCE=”LB ”
A 陈颖 程序设计 95
B 陈颖 程序设计 95 王伟 计算机基础 92 王伟 英语 92
C 王伟 计算机基础 92
D 王伟 英语 92 王伟 英语 92 陈颖 程序设计 95
8、设计如图8所示表单,运行表单后,单击“command1”按钮,标签LABEL1显示的内容为() 命令按钮“command1”的CLICK 事件代码如下: K=.T. Y=10 X=””
DO WHILE K Y=Y+1
IF Y/5=INT(Y/5) X=X+STR(Y,3) ELSE
LOOP 图8 学号 姓名 性别 1001 王伟 男 1003 张灿 女 1005 陈颖 女 1007
王城
男
IF Y>20 K=.F. ENDIF ENDDO
BEL1.CAPTION=X 执行结果为( D ) A 10 15 B 10 15 20 C 15 20 D 15 20 25
9、设计如图9所示表单,表单运行时单击“显示”按钮,在列表框LIST1控件中将显示( ) “显示”按钮的click 事件代码: DIME A(4) B=”A ” A=””
FOR I=1 TO 3
A(I)=SPACE(10-I) FOR J=1 TO 2*I-1 A(I)=A(I)+B
B=CHR(ASC(B)+1) ENDFOR
THISFORM.LIST1.ADDITEM(A(I))
ENDFOR 结果: A
BCD EFGHI
10、设计如图10所示表单,运行表单后,在两个文本框TEXT1、TEXT2中分别输入“中秋”、“节日”,单击“command1”按钮,标签label2中会显示(A ) Command1的click 事件代码:
X=ALLT(THISFORM.TEXT1.V ALUE) Y=ALLT(THISFORM.TEXT2.V ALUE) SUB1( )
BEL2.CAPTION=X+Y RETURN
自定义方法程序SUB1:
LOCAL X X=”快乐” Y=”月圆” X=X+Y
RETURN A 中秋月圆 B 中秋快乐 C 节日快乐 D 快乐月圆 二、程序设计题
设有两个数据表:导师表(文件名为:DSB.DBF )(导师编号/C ,姓名/C ,性别/C ,研究方向/C );学生表(文件
名为:XSB.DBF )(学号/C ,姓名/C ,性别/C ,所在院系/C ,导师编号/C )。
设计如图11所示表单,组合框COMBO1与导师表中的导师编号字段绑定。
表单运行后,在组合框COMBO1中选择任一位导师的编号,则
(1)在标签LABEL3处显示该导师的姓名; 图9 图10
图11
请编写组合框COMBO1的INTERACTIVECHANGE事件代码实现以上查询功能。
答案:
将表单的数据环境设为导师表
COMBO1的INTERACTIVECHANGE事件代码:
Locate for导师编号=this.value
bel3.caption=姓名
bel5.caption=研究方向
Thisform.grid1.recordsourcetype=4
Thisform.grid1.recordsource=’select学号,姓名, 性别,所在院系from学生表where导师编号=thisform.value’。