VFP第部分程序算法顺序分支循环控件PPT学习教案_第1页
VFP第部分程序算法顺序分支循环控件PPT学习教案_第2页
VFP第部分程序算法顺序分支循环控件PPT学习教案_第3页
VFP第部分程序算法顺序分支循环控件PPT学习教案_第4页
VFP第部分程序算法顺序分支循环控件PPT学习教案_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1VFP第部分程序算法顺序分支循环控件第部分程序算法顺序分支循环控件算法及算法的表示算法及算法的表示一、算法的概念及特点一、算法的概念及特点 所谓算法就是对解决问题所采用所谓算法就是对解决问题所采用的方法和步骤的描述。的方法和步骤的描述。第1页/共108页 二、算法的描述二、算法的描述 算法的描述方法有很多,为直观算法的描述方法有很多,为直观、准确地表示一个问题的处理方法和、准确地表示一个问题的处理方法和步骤,通常采用流程图的方法。步骤,通常采用流程图的方法。 流程图是用一些几何图形符号、流程图是用一些几何图形符号、线条及文字说明来表征一个问题的处线条及文字说明来表征一个问题的处理过程。

2、理过程。 一般采用一般采用传统流程图和传统流程图和N-SN-S图图来描来描述算法。述算法。第2页/共108页( (教材教材P51)P51) 【例例3-13-1】设计如图所示表单,在文本框设计如图所示表单,在文本框text1text1中输入华氏温度,单击中输入华氏温度,单击“计算计算”按钮可以求出按钮可以求出对应的摄氏温度,并在文本框对应的摄氏温度,并在文本框text2text2中显示。中显示。表示华氏温度表示摄氏温度,其中fascelsfascels9)32(5第3页/共108页“计算计算”按钮的按钮的“Click”事件代码如下:事件代码如下:fas=thisform.text1.valuec

3、els=5*(fas-32)/9thisform.text2.value=round(cels,1) 什么意思?第4页/共108页描述方法描述方法1用用自然语言表示自然语言表示步骤步骤1 1:输入华氏温度:输入华氏温度fas。步骤步骤2 2:按照公式:按照公式,计算摄氏温度计算摄氏温度cels。9)32(5fascels步骤步骤3 3:输出摄氏温度。:输出摄氏温度。第5页/共108页描述方法描述方法2 用流程图表示如图所示。用流程图表示如图所示。 开始开始计算计算celscels输入输入fasfas输出输出celscels结束结束第6页/共108页描述方法描述方法3用用N-S流程图如图所示。流

4、程图如图所示。第7页/共108页 一个算法应该具有以下特点:一个算法应该具有以下特点:教材教材P52P52 确定性。确定性。 有穷性。有穷性。 有效性。有效性。 输入。输入。 输出。输出。第8页/共108页 任何一个问题能否让计算机处理任何一个问题能否让计算机处理,关键在于能否设计出,关键在于能否设计出合理的算法合理的算法,有了合适的算法,再使用合适的计算有了合适的算法,再使用合适的计算机语言来编写程序。机语言来编写程序。 VFPVFP就是一种语言工具。要用就是一种语言工具。要用VFPVFP编写出高质量的程序,一方面要构建编写出高质量的程序,一方面要构建合理的算法,另一方面要掌握合理的算法,另

5、一方面要掌握VFPVFP的的语法规则,它是实现算法的基础。语法规则,它是实现算法的基础。第9页/共108页命令有一定的书写规则:命令有一定的书写规则:1 1、命令分行。、命令分行。程序中每条命令都以程序中每条命令都以回车键结尾回车键结尾,一行只能写一条命令。若命令需分,一行只能写一条命令。若命令需分行书写,应在一行终了时键入行书写,应在一行终了时键入续行符续行符“;”,然后按回车键。,然后按回车键。第10页/共108页2 2、命令注释。、命令注释。 程序中可以插入注释,以提高程序的程序中可以插入注释,以提高程序的可读性。可读性。注释语句注释语句NOTE|NOTE|* * 注释部分注释部分& &

6、 注释部分注释部分格式:格式:行首注释行首注释单命令的行单命令的行尾注释尾注释第11页/共108页三、三、3 3种基本结构的表示种基本结构的表示 程序的程序的3 3种基本结构:种基本结构:顺序结构顺序结构、选择(或分支)结构、循环结构、选择(或分支)结构、循环结构,它们构成了实现一个算法的基本,它们构成了实现一个算法的基本单元。单元。第12页/共108页顺序结构顺序结构: :是一种最基本、最简单的程是一种最基本、最简单的程序结构。如下图所示,先执行序结构。如下图所示,先执行A A,再执行,再执行B B,A A与与B B按照顺序执行。按照顺序执行。ABAB (a) (a)流程图流程图 (b b)

7、N-SN-S图图 第13页/共108页选择(或分支)结构选择(或分支)结构: :根据条件是否成根据条件是否成立而执行不同的程序模块。立而执行不同的程序模块。 P T F A B条件p A B Y N (a) (a)流程图流程图 (b b)N-SN-S图图 第14页/共108页循环结构循环结构: :是指重复执行某些操作,是指重复执行某些操作,重复执行的部分称为循环体。重复执行的部分称为循环体。条件PAN 条件P AY (a) (a)流程图流程图 (b b)N-SN-S图图 第15页/共108页常用输入输出控件常用输入输出控件1 1)输入控件)输入控件 2 2)输出控件)输出控件 文本框文本框 标

8、签、文本框标签、文本框 fas=thisform.text1.valuethisform.text2.value=round(cels,1)R=thisform.text1.valuethisform.label3.caption= alltrim(str(s,8,1)第16页/共108页程序设计实例程序设计实例 第17页/共108页1 1顺序结构顺序结构 顺序结构是在程序执行时,顺序结构是在程序执行时,根据程序中语句的根据程序中语句的的命令序列。的命令序列。Visual FoxProVisual FoxPro系统中的大多数命令都可以作为系统中的大多数命令都可以作为顺序结构中的语句。顺序结构中

9、的语句。 教材P53第18页/共108页( (教材教材P52)P52) 【例例3-23-2】设计如图设计如图3-53-5所示表单,在文所示表单,在文本框本框text1text1、text2text2、text3text3中输入三角形的三边,单中输入三角形的三边,单击击“计算计算”按钮可以在文本框按钮可以在文本框text4text4中显示三角形的中显示三角形的面积。其计算公式为面积。其计算公式为 2/ )()()(cbalclblallarea(其中a,b,c为三角形的三边,area为三角形的面积) 第19页/共108页“计算计算”按钮的按钮的“Click”事件代码如下:事件代码如下:a=thi

10、sform.text1.valueb=thisform.text2.valuec=thisform.text3.value =(a+b+c)/2area=sqrt( *( -a)*( -b)*( -c) thisform.text4.value=round(area,1)lllll数据输入数据输入数据处理数据处理数据输出数据输出第20页/共108页2分支(选择)结构 分支结构是在程序执行时,分支结构是在程序执行时,用来解决有选择、,用来解决有选择、有转移的诸多问题。有转移的诸多问题。第21页/共108页常见的分支结构有:第22页/共108页流程图流程图 格式格式:见教材见教材P57P57条件条

11、件?语句序列语句序列1 1语句序列语句序列2 2YNENDIFENDIF之后的命令之后的命令第23页/共108页( (教材教材P53)P53) 【例例3-33-3】修改修改【例例3-23-2】,在文本框,在文本框text1text1、text2text2、text3text3中输入三角形的三边,单击中输入三角形的三边,单击“计算计算”按钮,如果输入的三边能构成三角形,则在按钮,如果输入的三边能构成三角形,则在文本框文本框text4text4中显示三角形的面积;中显示三角形的面积;否则用提示框给否则用提示框给出提示信息:不能构成三角形,重新输入!出提示信息:不能构成三角形,重新输入!。如图。如图

12、所示。所示。 第24页/共108页“计算计算”按钮的按钮的“Click”事件代码如下:事件代码如下:a=thisform.text1.valueb=thisform.text2.valuec=thisform.text3.valueif a+bc and a+cb and b+ca =(a+b+c)/2 area=sqrt( *( -a)*( -b)*( -c) thisform.text4.value=round(area,1) elsemessagebox(不能构成三角形,重新输入!不能构成三角形,重新输入!)thisform.text1.value=0thisform.text2.val

13、ue=0thisform.text3.value=0thisform.text4.value=0thisform.text1.setfocus endif llllll清空文本框清空文本框光标定位在光标定位在text1中中第25页/共108页( (教材教材P54)P54) 【例例3-43-4】设计如图设计如图3-133-13所示表单,其中所示表单,其中文本框文本框Text1Text1中可以接受日期型数据,运行表单后在中可以接受日期型数据,运行表单后在Text1Text1中输入日期:中输入日期:08/25/1108/25/11,单击命令按钮,单击命令按钮“Command1”Command1”,则

14、标签,则标签Label2Label2显示什么?其中显示什么?其中command1command1控件的控件的clickclick事件代码:事件代码:d=thisform.text1.valued=thisform.text1.valuey=year(d)y=year(d)IF IF y/4=int(y/4) AND y/100int(y/100) OR y/4=int(y/4) AND y/100int(y/100) OR int(y/400) =y/400int(y/400) =y/400 y1=y1=是是 ELSEELSE y1= y1=不是不是 ENDIFENDIFthisform.la

15、bel2.caption=y1 thisform.label2.caption=y1 第26页/共108页判断某一年是否是闰年判断某一年是否是闰年 假如年份用y表示,判断y是否是闰年的方法是:若y能够被400整除或y能够被4整除并且不能够被100整除 提示:判断一个整数提示:判断一个整数M M能否被另一个整数能否被另一个整数N N整除,一整除,一般采用三种方法,般采用三种方法,判断判断: :MOD(M,N)MOD(M,N)是否等于是否等于0 0INT(M/N) INT(M/N) 是否等于是否等于M/NM/NM%N=0M%N=0若等于,则表明若等于,则表明M M能被能被N N整除。整除。 第27

16、页/共108页EXM2EXM2:输入两个数,比较大小,并:输入两个数,比较大小,并输出较大数。输出较大数。输入两个数输入两个数a,ba,bab?ab?aYN结束结束?b方法一:双分支第28页/共108页输入两个数输入两个数a,ba,bab?ab?把把b的值赋给的值赋给aYN?a a方法二:单分支第29页/共108页EXM3EXM3:输入两个数,比较大小,并:输入两个数,比较大小,并按从大到小的顺序输出。按从大到小的顺序输出。输入两个数输入两个数a,ba,bab?ab?交换交换a,b的值的值YN?a,ba,b使用单分支结构:使用单分支结构:第30页/共108页容器容器A容器容器B容器容器C 12

17、 31、C = A2、A = B3、B = C赋赋值值赋赋值值赋赋值值交换交换第31页/共108页思考:输入思考:输入3个数个数a,b,c,比较,比较大小,并按从大到小的顺序大小,并按从大到小的顺序输出。输出。第32页/共108页“求解求解”命令按钮的命令按钮的“Click”事件代码如下:事件代码如下:a=thisform.text1.valueb=thisform.text2.valuec=thisform.text3.valueif abt=aa=bb=tendifif act=aa=cc=tendifif b=0 x1=round(-b+sqrt(d)/(2*a),2) x2=round

18、(-b-sqrt(d)/(2*a),2) thisform.text4.value=x1 thisform.text5.value=x2elsemessagebox(该方程没有实数根!该方程没有实数根!) endifendif第35页/共108页EXMEXM 4 4:比较任意三个数的大小,:比较任意三个数的大小,并输出较大数。并输出较大数。 输入三个数输入三个数a,b,ca,b,cab?ab?ca?ca?cb?cb?输出输出c c输出输出a a输出输出c c输出输出b b结束结束NYYNNY第36页/共108页 格式格式: (见教材(见教材5858页)页) 流程图:流程图:条件条件1 1END

19、CASE后面的语句后面的语句条件条件2 2otherwiseotherwise命令序列命令序列1命令序列命令序列2命令序列命令序列N命令序列命令序列Q条件条件N N第37页/共108页【修改修改例例3-63-6】输入月份值,显示对应季节的中文名输入月份值,显示对应季节的中文名字(字(3,4,53,4,5月为春季,月为春季,6,7,86,7,8月为夏季,月为夏季,9,10,119,10,11月为月为秋季;秋季;12,1,212,1,2月为冬季)。月为冬季)。第38页/共108页“输出输出”命令按钮的命令按钮的click事件代码:事件代码:yf=val(thisform.text1.value)d

20、o casecase yf=3 or yf=4 or yf=5jj=春季春季case yf=6 or yf=7 or yf=8jj=夏季夏季case yf=9 or yf=10 or yf=11jj=秋季秋季case yf=12 or yf=1 or yf=2jj=冬季冬季endcasethisform.label3.caption=jj 第39页/共108页 if ifendifendif,do casedo caseendcaseendcase必须必须,表示分支的开始,表示分支的开始和结束。和结束。 为使程序清晰易读,对分支为使程序清晰易读,对分支、循环等结构应使用、循环等结构应使用。 第

21、40页/共108页表达分支、循环的每种语句都表达分支、循环的每种语句都,必须按,必须按格式一行一行地键入,因此,格式一行一行地键入,因此,。三种选择结构之间可以相互嵌套三种选择结构之间可以相互嵌套,但,但。第41页/共108页3循环结构循环结构第42页/共108页常见的循环结构有:涉及数据表的循环涉及数据表的循环,第,第6章介绍章介绍第43页/共108页 格式格式: 流程图:流程图:条件条件语句序列语句序列EnddoEnddo之后的语句之后的语句NY循环循环体体 教材P62第44页/共108页【例例】计算计算1+2+3+1001+2+3+100第45页/共108页第第 1 1 步,步, 计算计

22、算 0+0+1 1;第第 2 2 步,步, 计算计算 (0+1)+(0+1)+2 2;第第 3 3 步,步, 计算计算 (0+1+2)+(0+1+2)+3 3; 第第 i i 步,步, 计算计算 ( (0+1+0+1+i-1+i-1)+)+i i; . . 第第 100 100 步,计算步,计算 (0+1+(0+1+99)+99)+100100; 递推递推算法算法前前i-1次累加和次累加和第第i次累加项次累加项第46页/共108页基本方法基本方法: :属于属于“累加器累加器”类型问题类型问题 累加器当前值累加器当前值= =累加器原值累加器原值+ +循环当前值循环当前值第47页/共108页递推公

23、式递推公式在条件循环中如在条件循环中如何体现的?何体现的?s=1+2+3+s=1+2+3+100+100第48页/共108页 i=100s=s+i i=i+1s=0, i=1开始开始结束结束输出输出sYN循环变量赋初值循环变量赋初值循环条件(循环条件(i大于大于100就结束)就结束)循环变量的变化趋势循环变量的变化趋势从从1变到变到100第49页/共108页“计算计算”按钮的按钮的clickclick事件代码:事件代码:s=0s=0i=1i=1do while i=100do while i=100s=s+is=s+ii=i+1i=i+1enddoenddoThisform.text1.val

24、ue=sThisform.text1.value=s循环体循环体第50页/共108页【修改修改例例3-83-8】计算计算s=1+2+3+ns=1+2+3+n 第51页/共108页“计算计算”命令按钮的命令按钮的“click”事件代码:事件代码:n=thisform.text1.value s=0 x=1do while x=ns=s+xenddothisform.text2.value=s 第52页/共108页 说明:说明: 循环结构循环结构;。 循环是否继续取决于条件的当前循环是否继续取决于条件的当前取值,一般情况下循环体中应含有取值,一般情况下循环体中应含有,否则将造成,否则将造成死死循环

25、。循环。 循环结构能循环结构能,还能与选择结构的各种形式嵌套。,还能与选择结构的各种形式嵌套。第53页/共108页 格式格式: 教材P62确定循环变量并赋初值确定循环变量并赋初值( (在在FOR中实现中实现) )确定循环条件并判断?确定循环条件并判断?(在在FOR中实现中实现)执行循环体中语句序列执行循环体中语句序列循环体变量按步长变化循环体变量按步长变化(在在FOR中实现中实现)执行执行ENDFORENDFOR之后的语句之后的语句第54页/共108页计算计算1+2+3+1+2+3+100+100s=0s=0for i=1 to 100 for i=1 to 100 s=s+is=s+iend

26、forendforThisform.text1.value=sThisform.text1.value=sstep 1第55页/共108页( (教材教材P60)P60) 【例例3-93-9】设计如图所示表单,在文本框设计如图所示表单,在文本框text1text1中输入中输入N N的值,求的值,求N!N!。 第56页/共108页当前值当前值 如:如:123.100基本方法基本方法: :属于属于“累乘器累乘器”类型问题类型问题 第57页/共108页输入输入n ni=1i=1,fac=1fac=1 i=i=1 n=1 fac=facfac=fac* *n n n=n-1 n=n-1 输出输出facf

27、ac 求求n n!的!的N-SN-S图图第58页/共108页“计算计算”命令按钮的命令按钮的“Click”事件代码:事件代码:p=1for i=1 to thisform.text1.valuep=p*iendforthisform.text2.value=p 第59页/共108页说明说明: 步长可正可负,缺省为步长可正可负,缺省为1 1。 循环体中循环体中,否则循环次数将随之,否则循环次数将随之改变改变。 如果循环可以通过如果循环可以通过来控制来控制,则本循环比条件循环更为方便。,则本循环比条件循环更为方便。第60页/共108页 在文本框在文本框Text1Text1中输入终值中输入终值n n

28、在文本框在文本框Text2Text2中输入步长中输入步长k k i=1 for i=1 to n step k i=1 for i=1 to n step k do while i=n do while i=n endfor|next endfor|next i=i+k i=i+k endddo endddo第61页/共108页【例例】求求100以内的奇数和。以内的奇数和。A=1+3+5+A=1+3+5+99+99循环变量循环变量初值初值n=1循环条件循环条件n100循环变量的变化循环变量的变化趋势趋势n=n+2请同学们自请同学们自己写出程序己写出程序循环体累加语句:循环体累加语句:A=A+n

29、第62页/共108页222.21nK【例例】求求循环变量循环变量初值初值x=1循环条件循环条件xn循环变量的变化循环变量的变化趋势趋势x=x+1请同学们自请同学们自己写出程序己写出程序循环体累加语句:循环体累加语句:K=K+x2第63页/共108页思考:计算思考:计算e e的近似值。其公式为:的近似值。其公式为:e e1+1/1!1+1/1!1/2!1/2!1/3!1/3!1/N!1/N!,直到直到1/N!0.0000011/N!=0.000001s=s+1/pp=p*ii=i+1enddothisform.text1.value=s阶乘累加第65页/共108页【例例】求所有的水仙花数。求所有

30、的水仙花数。(所谓水仙花数是指一所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。个三位数,其各位数字的立方和等于该数本身。第66页/共108页编程方法:编程方法: “ “枚举法枚举法” 按问题本身的性质,一一列举出该按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也弃它。对于所列举的值,既不能遗漏也不能重复。不能重复。第67页/共108页查找范围:查找范围:三位数三位

31、数100999任意一个三位数任意一个三位数X百位数字百位数字X1十位数字十位数字X2个位数字个位数字X3判断这个三位数判断这个三位数x是水仙花数的条件:是水仙花数的条件:X=x13+x23+x33第68页/共108页例:例:1+2+1+2+n+n 1 1到到n n的奇数和、偶数和的奇数和、偶数和 100100以内能够被以内能够被X X整除的数之和。整除的数之和。 n1.312111001.4131211请同学们自请同学们自己写出程序己写出程序第69页/共108页1001.4131211第70页/共108页命令按钮的命令按钮的“click”事件代码:事件代码:s=0for i=1 to 100s

32、=s+(-1)(i+1)/iendforthisform.text1.value=s方法方法1:第71页/共108页命令按钮的命令按钮的“click”事件代码:事件代码:s=0k=1for i=1 to 100s=s+k/ik=-kendforthisform.text1.value=s方法方法2:第72页/共108页命令按钮的命令按钮的“click”事件代码:事件代码:s1=0s2=0for i=1 to 99 step 2s1=s1+1/iendforfor i=2 to 100 step 2s2=s2+1/iendforthisform.text1.value=s1-s2方法方法3:第7

33、3页/共108页( (教材教材P60-61)P60-61) 【例例3-103-10】设计如图设计如图1所示表单。运行该表单,在文本框所示表单。运行该表单,在文本框Text1中输入一串字符,单击中输入一串字符,单击“逆序显示逆序显示”命令按钮后,逆序显示该字符串,如图命令按钮后,逆序显示该字符串,如图2所示。所示。 图图1图图2第74页/共108页x=Av56:YijB8x=Av56:YijB8逆序:逆序: 从右到左逐个取出从右到左逐个取出8 8 B Bj j i iY Y : : 6 6 5 5 v v A A 11 10 9 8 7 6 5 4 3 2 1 次数次数i(i(循环变量循环变量)

34、:):总次数总次数= =总的字符数总的字符数c=c+c=c+substr(x,i,1)substr(x,i,1)C=8BjiY:65vAC=8BjiY:65vA substr(x,i,1) substr(x,i,1)总的字符总的字符数数len(x)len(x)第75页/共108页确定变量:确定变量:x x:存任意字符串:存任意字符串x= Av56:YijB8Av56:YijB8 i i:存截取次数:存截取次数(1len(x)(1len(x)c c:存逆序字符串:存逆序字符串 c=c+substr(x,i,1)c=c+substr(x,i,1)确定算法:确定算法:用循环在原字符串中从右到左逐个截

35、取字符,重新组装用循环在原字符串中从右到左逐个截取字符,重新组装成逆序字符串成逆序字符串确定循环三要素:确定循环三要素:循环变量循环变量 : i (i: i (i初值为初值为len(x),len(x),终值为终值为1)1)循环条件循环条件: i=1: i=1循环条件改变:循环条件改变:i=i-1(i=i-1(从右到左截取从右到左截取) )第76页/共108页【例例】输入一串输入一串ASCII字符,显示数字字符串。假设字符,显示数字字符串。假设输入:输入:Av56:YijB8 显示:显示:568。 请同学们自请同学们自己写出程序己写出程序从左到右逐个取出字符从左到右逐个取出字符x x判断判断x

36、x是数字的条件:是数字的条件:Asc(x)asc(Asc(x)asc(0 0) and Asc(x)asc() and Asc(x)8 Av56:YijB8 显示:显示: AYB AYB 。 输入一串输入一串ASCIIASCII字符,显示小写字母串。假设输入:字符,显示小写字母串。假设输入: Av56:YijB8 Av56:YijB8 显示:显示:vijvij 。请同学们自请同学们自己写出程序己写出程序第78页/共108页【例例】如图所示一程序界面。文本框如图所示一程序界面。文本框TEXT1已经输入已经输入一串文字,单击一串文字,单击“转换转换”命令按钮后,文本框的值将命令按钮后,文本框的值将

37、变为什么?变为什么?“转换转换” 命令按钮的命令按钮的CLICK CLICK 事件代码:事件代码:N=LEN(THISFORM.TEXT1.VALUE)N=LEN(THISFORM.TEXT1.VALUE)Y=Y=DO WHILE N0DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1) X=SUBSTR(THISFORM.TEXT1.VALUE,N,1) IF ASC(X)=ASC(a) IF ASC(X)=ASC(a) X=UPPER(X) X=UPPER(X) ELSE ELSE X=LOWER(X) X=LOWER(X) ENDIFENDIF Y

38、=X+Y Y=X+YN=N-1N=N-1ENDDOENDDOTHISFORM.TEXT1.VALUE=YTHISFORM.TEXT1.VALUE=YtHIS IS A cpu.第79页/共108页对象的事件和方法第80页/共108页1、事件(Event)教科书P9 事件是作用于对象的某些行为事件是作用于对象的某些行为和动作。和动作。 事件事件(Event) (Event) 是预先定义好的是预先定义好的特定的动作,特定的动作,不能修改、增加和不能修改、增加和删除删除,由用户或系统激活。,由用户或系统激活。 对象不同,事件也不完全相同对象不同,事件也不完全相同。第81页/共108页事件事件事件发生

39、的运行状态事件发生的运行状态Load创建对象之前。创建对象之前。Init创建对象。创建对象。ClickClick鼠标左键单击对象。鼠标左键单击对象。DblClick鼠标左键双击对象。鼠标左键双击对象。RightClick鼠标右键单击对象。鼠标右键单击对象。GotFocus对象接收焦点,由用户动作引起,如按对象接收焦点,由用户动作引起,如按 Tab 键或单键或单击,或者在代码中使用击,或者在代码中使用 SetFocus 方法程序。方法程序。LostFocus对象失去焦点,由用户动作引起,如按对象失去焦点,由用户动作引起,如按 Tab 键或单键或单击,或者在代码中使用击,或者在代码中使用 SetF

40、ocus 方法程序使焦点移方法程序使焦点移到别的对象上。到别的对象上。ValidValid对象失去焦点前发生对象失去焦点前发生第82页/共108页圆面积程序修改圆面积程序修改1 1文本框text2获得焦点,即光标移到文本框text2中第83页/共108页输入半径后,按Tab键,光标移到文本框text2中显示圆面积第84页/共108页圆面积程序修改圆面积程序修改2 2文本框text1失去焦点,即在文本框text1中输入面积后,敲回车键(该事件可以换成LostfocuLostfocus s)第85页/共108页输入半径后,按回车键,在文本框text2中显示圆面积第86页/共108页2、方法(Eve

41、nt)教科书P10 方法是指对象自身可以进行方法是指对象自身可以进行的动作或行为。它实际上是对象的动作或行为。它实际上是对象本身所内含的一些特殊的函数或本身所内含的一些特殊的函数或过程,以便实现对象的一些固有过程,以便实现对象的一些固有功能。可以通过调用对象的方法功能。可以通过调用对象的方法实现该对象的动作及行为。实现该对象的动作及行为。 第87页/共108页直接调用的对象方法程序不多,主直接调用的对象方法程序不多,主要有:要有:刷新刷新(Refresh)(Refresh)、释放、释放(Release)(Release)、设置焦点、设置焦点(setfocus)(setfocus)。 在面向对象

42、的程序设计过程中在面向对象的程序设计过程中,可为对象创建新的属性和方法程,可为对象创建新的属性和方法程序。序。见教材见教材P53-54P53-54【例例3-33-3】、P55-56P55-56【例例3-53-5】第88页/共108页( (教材教材P6)P6) 【例例1-21-2】设计如图设计如图1-111-11所示表单,表单所示表单,表单运行后,在两个文本框中分别输入一个数,比较大运行后,在两个文本框中分别输入一个数,比较大小,光标移到文本框小,光标移到文本框text3text3时,在其中显示最大数;时,在其中显示最大数;单击单击“关闭关闭”按钮,可以关闭表单。按钮,可以关闭表单。 第89页/

43、共108页文本框文本框text3的的“GotFocus”事件事件代码:代码:Thisform.text3.value=max(thisform.text1.value,thisform.text2.value) “关闭关闭”按钮的按钮的“Click”事件的程事件的程序代码:序代码:Thisform.release 关闭表单关闭表单第90页/共108页VfpVfp的基类有两类:的基类有两类: 控件类控件类 容器类容器类产生控件类对象产生控件类对象产生容器类对象产生容器类对象第91页/共108页控件类标签没有Value属性 教材P16仔细体会教科书仔细体会教科书P12【例例1-3】第92页/共10

44、8页控件类 教材P17该属性值为.F.,则命令按钮呈灰色显示,表示暂时不可用。表示为:Tmand1.enabled=.f.该属性值为.T.,则命令按钮呈深色显示,表示可用。表示为:Tmand1.enabled=.t.第93页/共108页Click事件代码:if mand2.caption=可用mand2.caption=不可用Tmand2.enabled=mand2.caption=可用Tmand2.enabled=.t.endif第94页/共108页控件类要让文本框接收小数,可以将其属性值设置为:0.0 教材P16仔细体会教科书仔细体会教科书P6【例例1-2 】 、P14 【例例1-4】改写

45、圆面积程序改写圆面积程序(1)(1)改写圆面积程序改写圆面积程序(2)(2)注意:这两个圆面积程序中的注意:这两个圆面积程序中的ThisThis,表示当前编写代码的对象。这是一表示当前编写代码的对象。这是一种相对引用。种相对引用。见教材见教材P13P13第一个程序是对第一个程序是对text1text1编写代码,编写代码,ThisThis就表示就表示text1text1;第一个程序是;第一个程序是对对text2text2编写代码,编写代码,ThisThis就表示就表示Text2Text2。第95页/共108页控件类 教材P28仔细体会教科书仔细体会教科书P26【例例2-4 】 、P38 【例例2

46、-12】组合框中数据源的类型组合框中的数据源第96页/共108页【例例】设计如图所示的简易登录表单,表单运设计如图所示的简易登录表单,表单运行后用户可以在组合框中录入或选择用户名,行后用户可以在组合框中录入或选择用户名,输入密码后敲回车键,验证登录是否成功(密输入密码后敲回车键,验证登录是否成功(密码显示为码显示为“* *”)。验证成功以后关闭表单。)。验证成功以后关闭表单。说明:预设两个用户:说明:预设两个用户:“王平王平”的密码为的密码为“ABC”ABC”;“刘梅刘梅”的密码为的密码为“123456”123456”。注意:关闭表单的代码为注意:关闭表单的代码为Thisform.releas

47、eThisform.release第97页/共108页控件类接收的是字符型的值 教材P63-64仔细体会教科书仔细体会教科书P62【例例3-11 】其值为.T.,编辑框不能修改(只读)第98页/共108页【例例】设计如图所示的圆面积计算表单,表单设计如图所示的圆面积计算表单,表单运行后能将计算过的所有数据都显示在编辑框运行后能将计算过的所有数据都显示在编辑框中,编辑框内的文字只读。中,编辑框内的文字只读。 P88P88实验实验4.24.2任务任务1 1第99页/共108页控件类值为.t.,计时器运行值为.f.,计时器不运行单位为:毫秒 教材P41仔细体会教科书仔细体会教科书P40【例例2-13

48、 】第100页/共108页P98P98自主实验任务自主实验任务1 1Timer事件代码:事件代码:ThisForm.Label1.Left=ThisForm.Label1.Left+1IF ThisForm.Label1.Left200 ThisForm.Label1.Left= 0-ThisForm.Label1.WidthENDIFClick事件代码:事件代码:ThisForm.Release 第101页/共108页容器类包含command1、command2等,设置每个按钮的caption属性:单击右键,选择“编辑”Tmandgroup1.value=ii=1,表示鼠标单击第一个命令按钮

49、;i=2,表示鼠标单击第二个命令按钮.。 教材P119第102页/共108页 DO CASE DO CASE CASE CASE This.ValueThis.Value=1=1 ThisForm.Timer1.Enabled=.t. ThisForm.Timer1.Enabled=.t. CASE CASE This.ValueThis.Value=2=2 ThisForm.Timer1.Enabled=.f. ThisForm.Timer1.Enabled=.f. CASE CASE This.ValueThis.Value=3=3 ThisForm.Timer1.Enabled=.f.

50、ThisForm.Timer1.Enabled=.f. STORE 0 TO STORE 0 TO f,m,bfmf,m,bfm ThisForm.Label1.Caption= 0: 0: 0” ThisForm.Label1.Caption= 0: 0: 0” CASE CASE This.ValueThis.Value=4=4 ThisForm.ReleaseThisForm.Release ENDCASE ENDCASEP94P94实验实验4.34.3任务任务1 1第103页/共108页1表示逻辑真,0表示逻辑假控件类第104页/共108页容器类包含option1、option2等,设

51、置每个选项的caption属性:单击右键,选择“编辑”选项按钮组的选项按钮组的ValueValue属性表示选中了第几个按钮,属性表示选中了第几个按钮,如果全部按钮都未选,其值是如果全部按钮都未选,其值是0 0;第一个按钮被;第一个按钮被选中(中间有选中(中间有“ ”),其值为),其值为1 1;第一个按钮;第一个按钮被选中,其值为被选中,其值为2 2。系统启动后,默认的。系统启动后,默认的ValueValue值是值是1 1。第105页/共108页【例例】如图所示,编写一个简易计算器。要求如图所示,编写一个简易计算器。要求在文本框在文本框Text1Text1中输入数字,然后在中输入数字,然后在OptionGroup1OptionGroup1中选择运算符,然后在中选择运算符,然后在Text2Text2中中输入另一个数字,按回车,则在文本框输入另一个数字,按回车,则在文本框Text3Tex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论