VFP第4、5部分(循环结构+表单)zxl课件.ppt

上传人:小飞机 文档编号:4009872 上传时间:2023-04-01 格式:PPT 页数:136 大小:1.95MB
返回 下载 相关 举报
VFP第4、5部分(循环结构+表单)zxl课件.ppt_第1页
第1页 / 共136页
VFP第4、5部分(循环结构+表单)zxl课件.ppt_第2页
第2页 / 共136页
VFP第4、5部分(循环结构+表单)zxl课件.ppt_第3页
第3页 / 共136页
VFP第4、5部分(循环结构+表单)zxl课件.ppt_第4页
第4页 / 共136页
VFP第4、5部分(循环结构+表单)zxl课件.ppt_第5页
第5页 / 共136页
点击查看更多>>
资源描述

《VFP第4、5部分(循环结构+表单)zxl课件.ppt》由会员分享,可在线阅读,更多相关《VFP第4、5部分(循环结构+表单)zxl课件.ppt(136页珍藏版)》请在三一办公上搜索。

1、Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,作业中的问题,1、表达式的问题 a+bc,b+ca,a+cb 5=x=102、数据输入问题 input“请输入月份”to yue yue=month(date()3、输入三个数降序输出4、分支结构嵌套时ifendif的匹配5、else后不能再写上条件,仔细阅读课件;模仿例题编写程序。,第四讲 结构化程序设计(二)循环结构,通过表单设计引入面向对象程序设计基本方法,循环结构介绍 常见循环算法实例循环辅助语句多重循环,内容提要,循环结构能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的

2、位置上重复操作,使用循环是最好的选择。,循环结构介绍,常见的循环结构有:,与数据表联系紧密,放在第九讲,1)条件循环(do whileenddo)格式:书143页 流程图:,条件,语句序列,Enddo之后的命令,N,Y,循环体,第i次累加项,前i-1次累加和,第 1 步,计算 0+1;第 2 步,计算(0+1)+2;第 3 步,计算(0+1+2)+3;第 i 步,计算(0+1+i-1)+i;.第 100 步,计算(0+1+99)+100;,递推算法,例:计算s=1+2+3+100,求累加和1+2+3+100,基本方法:,属于“累加器”类型问题。,(1)在进入累加前先给累加器赋初值(一般为0);

3、(2)用循环语句实现累加;循环变量赋初值;循环条件;循环变量改变规律(3)循环体语句的设计。累加器当前值=累加器原值+循环变量当前值;,三个“确定”循环三要素,算法:确定循环变量i并赋初值为1 定义s存放累加和 确定循环条件 i=100s=s+i 确定循环变量的变化趋势i=i+1 输出结果s,递推公式,在当循环中如何体现的?,cleas=0i=1do while i=100s=s+ii=i+1enddo?1+2+3+.+100=,sretu,循环体,改变条件取值的语句,说明:循环结构从do while开始,到enddo结束,两者必须成对出现;在enddo后面可以书写注释。循环是否继续取决于条件

4、的当前取值,一般情况下循环体中应含有改变条件取值的命令或语句,否则将造成死循环。循环结构能自身嵌套(多重循环),还能与选择结构的各种形式嵌套。,2)步长循环(forendfor计数循环)格式:书145页,格式:FOR TO STEP ENDFOR|NEXT,说明:当STEP(步长)缺省时,其默认值为1。当STEP 不为1时,则循环变量的值就按照步长的值自动增加或减少(步长大于0,则增加,此时,循环条件为循环变量=终值)。循环体中不应包含改变循环变量值的命令,否则循环次数将随之改变。,例:计算s=1+2+3+100,cleas=0for i=1 to 100 s=s+ienddo?1+2+3+.

5、+100=,sreturn,step 1,(1)给累乘器赋初值,一般为1;(2)用循环语句实现累乘;循环变量赋初值;循环条件;循环变量改变规律(3)循环体设计。累乘器当前值=累乘器原值*循环变量当前值;,例:求n的阶乘 如:123.100,基本方法:,属于“累乘器”类型问题。,例:求n的阶乘,说明:步长可正可负,缺省为1。循环体中不应包含改变循环变量值的命令,否则循环次数将随之改变。如果循环可以通过计数来控制,则本循环比条件循环更为方便。,当循环 步长循环 input“请输入终值:”to n input“请输入步长:”to k i=1 for i=1 to n step k do while

6、i endfor|next i=i+k endddo,常见循环算法实例,思考1:求出所有的水仙花数。,编程方法:“枚举法”按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。,将所有的三位数做一一测试,思考2:求裴波那契数列1,1,2,3,5,8,.的前30个项。,编程方法:“递推法”所谓递推法就是从初值出发,归纳出新值与旧值间的关系,直到求出所需值为止。新值的求出依赖于旧值,不知道旧值,无法推导出新值。数学上递推公式正是这一类问题。,确定变量:F1:第一个数 初值:F1

7、=1 F2:第二个数 初值:F2=1F3:第三个数 F3=F1+F2,F1=F2,F2=F3,F3=F1+F2,递推此F1,F2,F3非彼F1,F2,F3,思考3:求从键盘上输入任意20个数,输出其中最大数和最小数。,思考4:求任意两个整数的最大公约数和最小公倍数。,编程方法:辗转相除,S1:num1,num2中大数放入a,小数放入b,S2:当b!=0时循环辗转相除,余数放入temp;,S3:当b=0时循环结束,a中即为最大公约数;,S4:num1*num2/a 就是最小公倍数;,思考5:输入任意整数,逆序显示。,确定三个变量:装任意数:装的末位数:装逆序数,X=INT(X/10),R=X%1

8、0,Y=Y*10+R,变量更新,思考6:输入任意ASCII字符串,逆序显示。,确定变量:x:存任意字符串n:存x的长度m:存截取次数(1n)a:存逆序字符串,a=a+RIGHT(x,1),x=LEFT(x,n-m),确定变量:x:存任意字符串n:存x的长度m:存截取次数(n1)a:存逆序字符串,a=a+substr(x,m,1),accept 请输入字符串 to xn=len(x)a=m=1do while m=n a=a+right(x,1)x=left(x,n-m)m=m+1enddo?a,accept 请输入字符串 to xn=len(x)a=m=ndo while m=1 a=a+su

9、bstr(x,m,1)m=m-1enddo?a,思考7:自然数的平方和。,思考8:自然数的倒数和。,思考9:输入任意ASCII字符串,找出其中的大写字母、小写字母或数字的个数。,第4次上机 准备,熟悉vfp环境,默认路径的设置 学生完成指定数值化程序 实验12 任务1 实验12 任务2,作业中的问题,1、表达式的问题 if i是奇数 if s1=s1+i else s2=s2+i endif i=i+12、分支结构嵌套时ifendif、forednfor的匹配3、for endfor循环中使用i=i+1改变循环变量4、程序中无输出语句,评讲三个数降序输出程序。,循环辅助语句,loop:通常又称

10、为中途复始语句。特殊的终端语句。,exit:通常又称为中途退出语句。非正常退出语句。,流程图:,条件,语句序列LOOPEXIT,enddo的下一条命令,N,Y,【例】将10到20中第一个能被3整除的数找出来。,分析:当n的值增加到能被3整除后则for循环结束,因此在程序中要使用到“exit”语句,使程序在for循环条件仍然满足的情况下提前终止程序。,For n=10 to 20endfor,if n%3=0?n exitendif,结束当前循环,跳出exit所在的循环结构,for x=300 to 1 step-1endfor,找到满足条件的最大数,结束循环,从大数开始,第一次找到的就是最大值

11、,if mod(x,17)=0?x exit endif,【例】求300以内能被17整除的最大的数。,for n=10 to 20endfor,结束本次循环,转入下一次循环条件的判断,【例】将10到20中所有不能被3整除的数找出来。,if n/3=int(n/3)loopendif?n,for x=1 to 300 if x%17!=0 loop else?x endifendfor,【例】求300以内能被17整除的所有整数。,思考10:求判断一个数是否为素数。,例:下列程序判断一个自然数n是否为素数,其方法是用2到X=INT(SQRT(N)之间的数逐个去除,若余数都不为0,则n为素数,否则不

12、是素数,请填空完成。,0i=i+1str(n),INPUT 请输入一个大于1的自然数:TO NY=1&Y=1表示所输入的自然数是素数,为0表示不是素数X=INT(SQRT(N)I=2DO WHILE I=X IF N%I_ _ LOOP ELSE Y=0 EXIT ENDIFENDDOIF Y=1?_+是素数ELSE?N,不是素数ENDIFRETURN,例:计算100以内的奇数和,s=0i=0do while.t.i=i+1if i100exitendifif i%2=0 loopelses=s+iendifenddo?100以内的奇数和为:,scancel,mod(i,2)=0或int(i/

13、2)=i/2,store 0 to x,sdo while.t.x=x+1s=5*xif s20exitelse?sendifenddo return,结果为:5 10 15 20,例:写出程序的结果,绝对循环,判断退出,x=.t.s=0do while xs=s+1if s/8=int(s/8)?selseloopendifif s30 x=.f.endifenddoreturn,结果为:8 16 24 32,例:写出程序的结果,多重循环,若在一个循环结构的循环体中又包含了循环,则该循环结构称为循环嵌套。在一个循环结构中按照嵌套层次的多少,可分为双重循环、三重循环等。嵌套层次在2层以上一般称

14、为多重循环结构。,真,真,外循环初始条件,内循环初始条件,内循环体,外循环条件,假,内循环条件,假,改变内循环循环条件,改变外循环循环条件,外循环结束,二重循环嵌套结构执行流程,内循环结束,例:输出如下星形图案。,*,for i=1 to 6&用于控制行 for j=1 to 10&用于控制每行的字符个数?”*”&每行输出的字符 endfor?&每行输出完后要换行 endfor,例 输出如下星形图案。,*,for i=1 to 6&用于控制行 for j=1 to i&用于控制每行的字符个数?“*”&每行输出的字符 endfor?&每行输出完后要换行 endfor,for j=1 to i&用

15、于控制每行的字符个数?“*”&不换行输出每行的字符 endfor,?&每行输出完后要换行,行号与列号相关,例:输出图形:,*,编程分析:,采用双重循环,一行一行输出。,每一行输出步骤:一般3步。,1)光标定位2)不换行输出星号?。例如本题:共4行,若行号用k表示,则每一行有2*k-1个*号。3)每输完一行光标换行?,for i=1 to 6&用于控制行 for k=6 to i step-1?“”endfor for j=1 to 2*i-1&用于控制每行的字符个数?“*”&每行输出的字符 endfor?&每行输出完后要换行 endfor,&每行定位相当?space(6-i),*,例:编写输出

16、乘法口诀表的程序,要求口诀表呈三角形格式输出。,1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=25.9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*9=81,clearfor x=1 to 9&控制行 for y=1 to x&控制列s=x*y?allt(str(x)+*+allt(str(y)+=+allt(str(s)+endfor?endforreturn,什么意思,可以省略吗?,例:利用双重循环编程求sum=1+(1+2)+(1+2

17、+3)+(1+2+3+10)之值。,11+21+2+31+2+3+41+2+3+4+5+6+7+8+9+10,所有累加项可以看成右图,sum累加i行t i=10,每一行t累加j列 j=110,sum=sum+t,t=t+j,方法一:clearsum=0for i=1 to 10t=0for j=1 to it=t+jendforsum=sum+tendfor?1+(1+2)+(1+2+3)+(1+2+3+10)=,sumreturn,方法二:clearsum=0t=0for i=1 to 10 t=t+i sum=sum+tendfor?sum=,sumreturn,思考11:求3200之间的

18、素数。,思考12:用三重循环求出所有水仙花数。,思考13:读程序写结果及程序填空练习。,set talk offinput 请输入层数 to nfor i=n to 1 step-1?space(n-i)for j=1 to 2*i-1?*next next set talk on,例:写出程序的结果,set talk offcleardime a(4)b=9a=for i=1 to 4 for j=1 to i a(i)=a(i)+b endfor endfor for i=1 to 4?str(len(a(i),1)+space(5-i)+a(i)endfor,例:写出程序的结果,9 99

19、3 9994 9999,(0801)以下程序的功能是统计100以内能被8整除的整数的个数。SET TALK OFFX=0N=0DO WHILE X=100 X=X+1 IF LOOP ENDIF ENDDO?NSET TALK ON,(0901).下列程序的功能是输出能被7整除的3位自然数。请填空完成。CLEAR N=1DO WHILE N=100 AND N1000IF _(1)_?NENDIF_(2)_ENDDORETURN,(0702)、有一程序如下,请写出运行结果:SET TALK OFFCLEAR I=1DO WHILE I=50 IF I/7=INT(I/7)?STR(I,4)EN

20、DIF I=I+2ENDDORETURN,7 21 35 49,(0901).有如下程序,请写出运行结果:CLEAM=1N=1DO WHILE MM/3 N=N+M ENDIFENDDO?N=,NRETURN,N=37,(0701)以下程序的运行结果是什么?clearsum1=0cc=for i=1 to 5 t=0 for j=1 to i t=t+j cc=cc+str(j,1)+endfor if i=5 cc=cc+=endif sum1=sum1+tendfor?cc,sum1,1+1+2+1+2+3+1+2+3+4+1+2+3+4+5+=35,(0802).有一程序如下,请写出运行

21、结果。CLEARDIMENSION A(3,3)FOR I=1 TO 3FOR J=1 TO 3IF IJA(I,J)=0ELSEA(I,J)=9ENDIF?A(I,J)ENDFOR?ENDFORCANCEL,0 00 9 00 0 9,下面程序运行时输入5,请写出程序执行结果。SET TALK OFFClearINPUT 请输入层数 TO NFOR K=1 TO N?SPACE(N-K)FOR J=1 TO K?*ENDFOR?ENDFOR,(0901)读如下程序,写出运行结果:CLEAR DIME W1(5)X=A W1=FOR I=5 TO 1 step-1 FOR J=1 TO I W

22、1(I)=W1(I)+X ENDFOR X=CHR(ASC(X)+1)?6-I,W1(I)ENDFOR,AAAAA2 BBBB3 CCC4 DD5 E,(0701)、编写一个循环结构程序计算的阶乘。(0702)、编写一个循环结构程序计算100以内的奇数和(0801)、编写一个程序计算:S=1+2+3+N,N值由用户确定。,第4次上机 准备,熟悉vfp环境,默认路径的设置 学生完成指定数值化程序 实验13 任务1 实验13 任务2理论作业:P158-167自主练习1-4,作业中的问题,1、输入10个数,降序输出2、s=1-1/2+1/3-1/4+1/5-1/1003、2008级VFP理论作业-2

23、、输出斐波那契数列前20项,算法分析:输入5个数,用“冒泡法”对这5个数由小到大排序。,冒泡法的意思:将两个相邻的数进行比较,小的排在前面。在第一轮比较的时候,可以将5个数中最大的数排列到最后;,7-913620,第二轮进行比较的时候,最大的数就不再参与比较,将剩下的4个数进行比较,又可以将这4个数中的最大的数排列在后面;,依次类推,5个数则一共要比较4轮,每一轮的比较都可以将这一轮比较的最大数排到后面。第一轮要比较4次,第二轮比较3次,到第四轮的时候,只剩下两个数,只需要比较一次就可以了。,对于n个数进行排序的话,一共要比较n-1轮,第m轮则要比较n-m次。按照这种思路,我们就可以使用两重循

24、环来实现数的排序了。一重循环实现排序的轮次,一重循环实现该轮要比较的次数。在两个数进行比较时,如果要进行数值交换,则用一个中间变量进行两个数数值的交换。,例、排序将任意十个数按由小到大的顺序输出 dime a(10)for i=1 to 10 input 请输入数据:to a(i)nextfor n=1 to 9&循环的轮数 for m=1 to 10-n&当前轮循环的次数,将大数 if a(m)a(m+1)放a(m+1),即大数逐渐后移 t=a(m)a(m)=a(m+1)a(m+1)=t endif nextnextfor i=1 to 10?a(i)next,【例】从键盘随意输入的10个数

25、,按从小到大的顺序排列后输出。dime x(10)for i=1 to 10 input 请输入第+str(i,2)+个数 to x(i)nextfor i=1 to 9&循环的轮数 for j=i+1 to 10&将x(i+1)及以后元素与x(i)比较 if x(i)x(j)&将最小数放x(i),即小数逐渐前移 t=x(i)x(i)=x(j)x(j)=t endif nextnextfor i=1 to 9?x(i)nextreturn,第五讲 表单设计,通过表单设计引入面向对象程序设计基本方法,表单的介绍 用表单的方式完成程序设计结构化程序设计与表单设计的比较 实例解析,内容提要,表单的介

26、绍,“文件”“新建”“表单”,单击,标签(label),文本框(text),命令按钮(command),表单是VFP应用程序的基本用户界面之一,它也被称之为屏幕、窗口。表单本身是一个容器,可以容纳多个控件,设计完美的表单可给使用者提供简洁、友好的程序操作界面。,建立表单,菜单方式,命令方式,“文件”“新建”“表单”,CREATE FORM,表单建立完成后产生.SCX、.SCT文件,生成器锁定,对象选定,按钮选定:设定连续建立某一控件,表单控件工具栏,直接添加控件。,查看类,输入类控件,文本框TextBox编辑框EditBox组合框ComboBox列表框ListBox微调控件Spinner,输出

27、类控件,标签Label 表格Grid列表框ListBox组合框ComboBox文本框TextBox图像Image线条Line形状Shape计时器Timer,选择类控件,选择按钮组OptionGroup 复选框CheckBox组合框ComboBox列表框ListBox,控制类控件,命令按钮CommandButton:命令按钮组CommandGroup:计时器Timer:,容器类控件,表格Grid:页框PageFrame:容器Container:,连接类控件,ActiveX控件OleControl:ActiveX 绑定控件OleBoundControl:超级链接:,表单设计器工具栏,TAB键次序,

28、数据环境,属性窗口,代码窗口,表单控件,调色板,布局工具栏,表单生成器,自动格式,运行表单,1菜单方式 打开表单单击鼠标右键“执行表单”“程序”“运行”选定表单文件(.SCX)“运行”2命令方式 DO FORM 3快捷钮 点击 运行当前表单。4由“项目管理器”运行表单。运行表单时可点击“修改表单”快捷按钮 返回到表单设计模式,用表单方式完成程序设计,面向对象的程序在执行时,先等待某个事件的发生,然后再去执行处理此事件的事件过程(即程序代码)。事件过程要经过事件的触发才会被执行,这种动作模式就称为事件驱动,也就是说,由事件控制整个程序的执行流程。执行步骤如下:等待事件的发生。事件发生时,执行其对

29、应的事件过程。重复步骤。由此周而复始地执行,直到程序结束。,面向对象编程的基本过程是:先创建容器对象(表单)定义数据环境摆放控件对象设置对象属性为事件编写程序代码。,例:已知圆半径,求圆面积。,r=val(thisform.text1.value)&获得半径值thisform.label3.caption=alltrim(str(pi()*r*r)&显示计算结果,保留整数部分,r=val(thisform.text1.value)&获得半径值S=pi()*r*r&计算圆面积thisform.label3.caption=alltrim(str(s)&保留整数部分,如何连续计算多个圆面积?,标签

30、用于在表单中显示某些固定不变的文本信息。如要改变它的一些属性,可以通过相关对象的事件代码来实现。一个标签最多可容纳256字符。,标 签(label),例:输入一个数,判断奇偶性。,x=thisform.text1.valueif mod(x,2)=0&判断奇偶性的条件thisform.label2.caption=该数为偶数elsethisform.label2.caption=该数为奇数endif,文本框(Text)是最常用的基本控件,它允许用户显示和编辑一个变量或者一个字段的值,是表单上最灵活、最重要的数据交互操作控件。文本框的值默认存储在Value属性中。文本框默认为字符类型,用右键单击

31、文本框,出现一快捷菜单,选择【生成器】命令,可以打开【文本框生成器】对话框,在该对话框中可以设置文本框采用的数据类型和格式、文本框的样式,还可以设置与文本框相关联的字段。,文本框(text),常用的文本框属性见下表,例:求n!。,x=thisform.text1.values=1for i=1 to xs=s*iendforthisform.text2.value=s,命令按钮(Command Button)主要起到控制作用,完成特定的操作。比如打开或者关闭一个表单、打印一份报表等等。一般在命令按钮的click事件中编写过程代码,鼠标点击命令按钮,执行该过程代码,完成指定的功能。,命令按钮,常

32、用命令按钮属性如下表所示,说明:命令按钮的ToolTipText属性设置后,必须要设置表单的ShowTips属性为.T.才起作用。,由此可见,面向对象程序设计方法简单、直观、实用、自然,接近人类处理问题的自然思维方式。VFP的面向对象程序设计的主要特点是:编程方式是可视化的,所见即所得。程序运行没有一定的顺序,由事件驱动,随事件的出现(如用户点击鼠标)而执行相应的代码。不需要专门的循环结构就可以重复其功能。大部分的软件部件,如窗口、按钮等已经由“类”实现,不需要重复编码,屏蔽了大多数复杂的程序代码。应用软件的开发更注重于核心问题的求解。,如需连续计算多个圆的面积时,实验18 任务1(1),实验

33、17任务1第(4)题;实验18任务1第(1)题,(0802)试题表单valid.scx,例:简易电子钟的设计。,标签控件Label1,计时器控件Timer1,计时器(Timer)是利用系统时钟触发计时器的Timer事件,响应某个功能,在一定的时间间隔周期性地执行某些重复操作。程序运行时该控件是看不见的,只在后台运行。计时器的主要属性如下表所示。,计时器控件,操作步骤如下:新建表单Form1,其Caption属性设置为“简易数字时钟”。在表单中的合适位置分别添加如上图(b)所示的1个标签控件Label1、1个计时器控件Timer1,其部分属性值的设置见书上表7.15所示。在表单Form1的Ini

34、t事件的代码窗口输入代码:ThisForm.Label1.Caption=time()在计时器Timer1的Timer事件的代码窗口输入代码:ThisForm.Label1.Caption=time()保存表单,文件名为:timerexample.scx。,说明:本例要利用VFP提供的系统时钟函数Time()。该函数返回当前系统时间,其格式与数字钟的格式一样。为了保证显示正确的时间,在创建表单时就触发表单的Init事件,将当前时间用标签Lable1显示出来,然后利用计时器控件,每隔1s调用一次Time()函数,并把它的值用标签显示出来。如图(a)所示。该表单的设计界面如图(b)所示,图中可见到

35、计时器控件。表单运行后如图(a)所示,就看不见计时器控件,但计时器控制的标签的秒数在不停地变化。主要对象的属性见书上表7.15所示。,表单的事件与方法 表单可以响应40多个事件和方法,下面对这几个常用事件和方法做一些说明:1.Init 事件:创建表单时触发该事件,从而执行为该事件编写的代码。Init代码通常用来完成一些关于表单的初始化工作。2.Destory事件:释放表单时触发该事件,该方法代码通常用来进行文件关闭,释放内存变量等工作。3.Click事件:用鼠标单击对象对触发该事件,从而执行为该事件编写的代码。,4.Show 和Hide 是一对方法,Show 使表单可见,而Hide则是隐藏表单

36、。注意,如果使用Show()格式调用该方法,则只是显示一次表单,要希望表单显示并停留在屏幕上,应该使用Show(1)格式调用该方法。另外,Hide方法只是在屏幕上隐藏表单,并没有从内存中释放表单,隐藏后的表单依然可以通过调用Show方法恢复显示。,5.Release 方法从内存中释放表单。注意Release 方法与 Destory 的区别,Destory 方法是由表单释放事件而触发的方法,而 Release 方法则是主动释放表单,可以说 Release是 Destory 的触发器,由于Release 方法的实行而导致表单的释放,从而引发表单释放事件,并因此触发Destory 方法的运行。,6.

37、Refresh 方法刷新表单数据。当表单中各种对象所对应的数据发生改变时,有时并不自动的反映在表单界面上,需要使用 Refresh 刷新,才能显示最新数据。如用一个文本框关联一个数据表字段,当数据表记录指针移动后,新记录对应的数据需要刷新后才能更新。,教材P199 常用事件与方法,实例解析,标签从右往左移动,thisform.label1.left控制label1的左边与表单的边距,thisform.width默认为375,计时器的timer事件控制每隔一定时间间隔label1左移一定距离,用微调控件调整字号大小,thisform.label1.fontsize,thisform.spinne

38、r1.value,微调控件的常用属性SpinnerHighValueSpinnerLowValueValue,(0801)设计如图1所示的表单,其中文本框Text1、Text2的初值为0,其功能是文本框Text1中输入任意一个正整数,单击“计算”命令按钮,能够在文本框Text2中得到该数的阶乘;单击“关闭”命令按钮,可以关闭表单。请完善下列属性和事件代码。(1)文本框Text1、Text2的Value属性的值为0;(2)“计算”命令按钮的click事件代码:X=1for N=1 to X=X*Nendfor(3)“关闭”命令按钮的click事件代码:,(0802).设计如图1所示的表单,文本框

39、Text1的Value初值为0。表单运行后,输入一个整数回车后,即可判断出该数是不是素数,如图2所示。请填空完成。(素数又称质数,是指除了1和该数本身以外不能被其它任何数整除的数。),Text1的Valid事件代码:N=thisform.text1.valueI=DO WHILE I=N Thisform.Label2.Caption=ALLTRIM(STR(N)+是素数ELSE Thisform.Label2.Caption=ALLTRIM(STR(N)+不是素数ENDIF,对象失去焦点前发生,2,EXIT,(0901).设计如图a所示表单,在文本框Text1中输入“美丽的山城”,单击“显示

40、”命令按钮,在标签label2中显示“美-丽-的-山-城”,请将“显示”命令按钮的Click事件代码补充完整。,“显示”命令按钮的Click事件代码如下:X=allt(_(8)_)_(9)_DO WHILE LEN(X)=4Y=Y+LEFT(X,2)+-X=SUBSTR(X,3)ENDDOY=Y+_(10)_THISFORM.LABEL2.CAPTION=Y,(8)THISFORM.TEXT1.VALUE,(9)Y=”,(10)X,(0701)利用文本框、标签控件和命令按钮控件设计了一表单form1.SCX,表单界面及command1控件的click事件代码如下所示。执行该表单时,当向Text

41、1,Text2中分别输入字符:16,24后单击command1,则label2,处显示的内容是什么?,command1控件的click事件代码:ma=val(THISFORM.Text1.Value)mi=val(THISFORM.Text2.Value)IF ma0tempmin=mimi=ma%mima=tempminENDDOTHISFORM.Label2.Caption=STR(ma,4),8,(0702)、设计如图3所示表单,表单运行后,单击命令按钮“Command1”,标签Label1将显示什么?,图3设计界面,command1控件的click事件代码:W=西部大开发C=重庆A=s

42、ubs(W,1,4)+SUBS(W,AT(开,W),4)X=&A.在&Cthisform.label1.caption=x,西部开发在重庆,(0801)有一表单程序的运行界面如图2所示。以下是其文本框控件的Valid事件代码。程序运行后,在文本框输入“45673”。请写出程序运行结果(文本框的新值)。,X=val(Thisform.text1.value)Y=0Do while x0 Y=Y*10+X%10 X=int(x/10)EnddothisForm.text1.value=str(Y),37654,(0802)如图所示一程序界面。文本框TEXT1已经输入一串文字,单击“转换”命令按钮后

43、,文本框的值将变为什么?,“转换”命令按钮的CLICK 事件代码:N=LEN(THISFORM.TEXT1.VALUE)Y=DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1)IF ASC(X)=ASC(a)X=UPPER(X)ELSE X=LOWER(X)ENDIF Y=X+YN=N-1ENDDOTHISFORM.TEXT1.VALUE=Y,tHIS IS A cpu,思考题:,利用表单设计秒表,第5次上机 准备,熟悉vfp环境,默认路径的设置学生下载演示录像(圆面积、判断奇偶性、n!)表单程序 学生完成求圆面积、判断奇偶性、n!的程序(表单的字体、颜

44、色、控件位置等自己设置)提交 理论作业见后页,(0802).设计有如图a所示表单,其中文本框text1的value属性的初值为0。其功能是表单运行后在文本框text1中输入一个数,单击“判断”按钮可以判断该数是否为奇数。如果是奇数,输出“该数是奇数!”,否则输出“该数不是奇数!”。该程序能够循环处理,直到输入零(0)则关闭表单。请编写“判断”命令按钮的CLICK事件代码。,(0901)设计如图c所示表单,其中文本框Text1、Text2的Value属性的初值为0。其功能是表单运行后在文本框Text1中输入一个奇数n,光标移到文本框Text2中可以计算数列1,3,5,n的平方和,并将结果显示在文本框Text2中。请编写文本框Text2的Gotfocus事件代码。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号