vfp程序设计课件.ppt
《vfp程序设计课件.ppt》由会员分享,可在线阅读,更多相关《vfp程序设计课件.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第九章第九章程序设计程序设计结构化程序设计功能模块(即过程、自定义函数)编制各个功能模块,再用主程序将它们串起来将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。面向对象程序设计类、对象、属性、事件、方法设计类、子类、对象(设计外观、设置属性、为事件编写方法程序)将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。第九章第九章程序设计程序设计9.1程序的建立和执行程序的建立和执行9.2程序中的常用语句程序中的常用语句9.3顺序结构程序设计顺序结构程序设计9.4选择结构程序设计选择结构程序设计9.5循环结构程序设计循环结构程
2、序设计9.6自定义函数、过程及其调用自定义函数、过程及其调用9.7程序的调试程序的调试9.8习题习题99.1程序的建立和执行程序的建立和执行9.1.1.基本概念程序:为解决某一问题而设计的一系列指令。主程序:通常被用户直接执行的程序。子程序:在程序中被调用的程序。源程序:由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。目标程序:是源程序经过编译后所产生的机器语言程序。可执行程序:源程序被编译后产生的可被机器直接执行的程序,具有.EXE扩展名。在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。应用程序:指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP
3、中是指一组VisualFoxPro程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。例行程序:按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。9.1程序的建立和执行程序的建立和执行9.1.2程序的建立和执行此前我们学习的命令,都是在交互状态下,输入一条命令即回车,马上即可见到结果。但这种工作方式不能完全满足我们的工作需要,有时,我们需要系统能自动、批量地完成一系列命令。在vfp中,这一功能可通过程序文件来完成。一、程序文件的建立:方式一:(1)在项目管理器中依次展开“全部”“
4、代码”,选中“程序”,单击右侧的“新建”按钮。如图9-1所示。图9-1程序文件的建立图9-1程序文件的建立(2)在弹出的编辑窗口中输入代码,按ctrl+w保存,在“另存为”对话框中选保存位置,并输入文件名9.1程序的建立和执行程序的建立和执行9.1.2程序的建立和执行方式二:(1).使用命令,格式:modifycommand路径文件名(2).程序文件的执行:在命令窗口输入do文件名,回车。三.说明:程序文件的扩展名为.prg,使用命令创建和运行程序文件时,使用文件主名即可,扩展名系统自动会加上。四.使用命令编制一个程序文件并运行它1.输入命令modifycommandF:myvfpabc,弹出
5、编辑窗口,如图9-2所示。图9-2使用命令编制程序文件2.在编辑窗口中输入两条命令,按ctrl+w保存图9-2使用命令编制程序件3.在命令窗口输入doabc命令运行程序文件abc.prg,会出现一个对话框,我们点了对话框中的“确定”后,系统就自动退出了,为什么会这样呢?程序文件执行时,会批量、依次执行文件中的命令.执行第1个消息框函数,程序进入暂停,等待用户选择。我们单击了“确定”按钮后,程序继续执行下一条命令“quit”,退出系统vfp支持3种基本程序控制构造:顺序结构,选择结构和循环结构。后面的章节将对其分别介绍。9.2程序中的常用语句程序中的常用语句一.屏幕输出语句:格式:?|?表达式功
6、能:在屏幕上输出表达式的内容。1个问号为换行输出,2个问号为不换行输出【例9.1】编制1个命令文件text.prg,保存到f:myvfp中,统计“教师工资表”中的奖金和工资总额。程序文件内容:use教师工资表countalltomsumall工资ton?“奖金为:”,m?“工资总额为:”,n运行结果如图9-3所示。图9-3教师奖金工资统计结果9.2程序中的常用语句程序中的常用语句二.注释语句:格式:&注释内容功能:为程序中的语句作注释,注释内容不会执行。三.输入字符串语句:格式:accept字符串to内存变量功能:执行该语句时,暂停程序的运行,在屏幕上显示“字符串”的内容作为提示信息,等待用户
7、通过键盘输入数据;输入数据后回车,输入的内容保存到指定的内存变量中,同时,程序继续向下执行。【例9.2】:编写命令文件test.prg,输入1个人名,在“学生情况表”中查询该学生的基本信息。程序文件内容:use学生情况表accept“请输入待查学生姓名:”tonamedisplay学号,姓名,性别for姓名=nameusereturn&该语句的功能是返回调用处运行结果如图9-4所示。图9-4查询学生的基本信息显示9.2程序中的常用语句程序中的常用语句四、输入表达式语句:格式:input表达式to内存变量说明:(1).该命令功能比accept强,accept只能输入字符型数据;而input可输入
8、字符型、数值型、逻辑型和日期型。(2).使用input时,输入字符型数据时,必须加双引号等定界符;输入逻辑型数据时,要用圆点定界符(如.T.);输入日期型数据要用转换函数,如ctod(“11/15/2005”)。【例9.3】:编写程序文件test1.prg,输入1个工资,查询工资为此数值的有多少人。程序文件内容:use教师工资表input“请输入待查工资:”togzlist教师编号,工资for工资=gzusereturn运行结果如图9-5所示 图9-5工资查询显示9.2程序中的常用语句程序中的常用语句五.清屏语句:格式:clear功能:清除主屏幕上的显示信息。六.交互状态控制:格式:setta
9、lkoff/on说明:该命令规定是否将命令执行结果显示在屏幕上。默认为on,此时,每执行完1条命令,结果即显示在屏幕上;设置为off时,不显示执行结果。一般,我们在程序文件的开头都加上该语句,抑制显示中间结果。七.显示提示信息:格式:waitwindow提示信息字符串at行,列timeout秒数功能:在屏幕的指定位置出现提示窗口。例:在命令窗口输入如下命令回车:waitwindow“请等待”ATSROW()/2,(SCOLS()-LEN(M)/2在屏幕中央出现提示窗口,利用waitclear命令可将该窗口消除。说明:“timeout秒数”用于规定延时秒数,比如,我们输入waitwindow“请
10、等待”ATSROW()/2,(SCOLS()-LEN(n)/2timeout3则提示窗口显示3秒后,自动关闭。八.返回语句:格式:return功能:返回调用处或命令窗口。该语句可省略,因为在每个程序执行的最后,系统都会自动执行1个return语句。9.3顺序结构程序设计顺序结构程序设计在顺序结构中,各种操作块按照出现的先后次序依次执行。9.3.1基本语句1、赋值语句在程序中若要使用(引用)变量,必须在使用(引用)前为变量设定一个初值,或者有时要改变它的现行值,这都需要给变量赋值。一般格式是:STORETO或=说明:(1)表达式可以是算术表达式、字符串表达式、日期表达式、关系表达式或逻辑表达式。
11、(2)STORE可以给多个变量赋同一个值,=一次只给一个变量赋值。例如:STORE5TOX,Y,ZA=10(3)内存变量的类型由表达式的类型决定。(4)赋值号(=)不同于数学上的等号,A=5应读作“将数值5赋值给变量A”或“使变量A的值等于5”,下面的语句作用不同:x=yy=x(5)z=x+y不能写成x+y=z,赋值号左边只能是变量,不能是表达式。2、程序的注释(1)行首注释NOTE注释内容或*注释内容注释内容可以是任何文字,程序不执行以NOTE或*开头的语句,只起给程序说明的作用。(2)行尾注释&注释内容。9.3顺序结构程序设计顺序结构程序设计3、程序暂停语句WAIT提示信息TOWINDOW
12、SATTIMEOUTn。说明:(1)“提示信息”是指要显示的自定义信息。若省略,则显示系统默认信息“请按任意键继续.”。(2)TO将按下的键以字符形式保存到变量中。(3)WINDOWSAT行,列指定显示信息的窗口在屏幕上的位置。若省略AT则在屏幕右上角。(4)TIMEOUTn指定在自动等待键盘或鼠标输入的秒数,必须放在语句最后。在n秒内没有按键或按鼠标,程序继续向下执行。4、程序结束语句RELEASE语句的格式:RELEASETHISFORMRELEASE方法的格式为:THISFORM.RELEASETHISFORMSET.RELEASE作用终止表单运行。9.3顺序结构程序设计顺序结构程序设计
13、9.3.2程序举例下面是最简单的1种程序结构【例9.4】:顺序结构例程程序名为test2.prg。程序文件内容:settalkoffclearinput“请输入圆的半径:”tors=3.1415926*r*r?“圆的面积是:”,sreturn说明:执行程序时,屏幕上显示提示信息:请输入圆的半径。当用户键入半径并按回车时,vfp计算出圆的面积并显示在屏幕上。运行情况如图9-6所示。图9-6计算圆的面积9.4选择结构程序设计选择结构程序设计在科学计算中,只有顺序结构是不够的,只有能根据某个给定条件选择不同的执行流程才能真正体现计算机的另一大功能逻辑判断。实际应用中选择结构就是对指定的条件进行判断,
14、如果条件成立,则执行指定的语句序列。在VFP中条件语句有二种:1、IFELSEENDIF2、DOCASEENDCASE这些语句又叫做条件语句。9.4选择结构程序设计选择结构程序设计9.4.1、单条件选择语句IF双分支结构格式一:IFENDIF执行过程是:如果所给定的条件为真,则执行“语句序列”,否则执行ENDIF之后的语句。流程图见图9-7。格式二:IFELSEENDIF执行过程是:如果所给定的条件为真,则执行“语句序列1”,否则执行“语句序列2”。流程图见图9-8。说明:(1)语句序列又可以是IF结构,称为IF语句的嵌套。(2)IF和ENDIF必须成对出现。图9-7单条件选择结构图9-8单条
15、件选择结构条件语句序列TF条件A序列B序列TF9.4选择结构程序设计选择结构程序设计【例9.5】:设计1个名为test3.prg的查询程序,希望当待人不存在时有信息提示。程序文件内容:clearaccept“请输入待查人姓名”toxmlocatefor姓名=xmif.not.eof()displayelsemessagebox(“查无此人”)endifuseReturn运行结果如图9-9所示。图9-9无查询结果显示说明:程序执行时,执行locate命令时,记录指针从表的首记录一直找到最后1条记录都未发现该姓名记录时,记录指针才最后停在文件尾,此时eof()为真值;相反,若eof()取假值,则表
16、示记录指针停在待查人的记录上。即当.not.eof()为真时,记录指针停在待查人的记录上,查到的指定的记录。也可用found()来代替程序中的.not.eof()。9.4选择结构程序设计选择结构程序设计2、IIF函数IIF函数可以实现一些简单的选择。其语法结构为:IIF(条件,表达式1,表达式2)说明:(1)当条件为真时,函数返回表达式1的值。(2)当条件为假时,函数返回表达式2的值。(3)Y=IIF(条件,表达式1,表达式2)相当于:IF条件Y=表达式1ELSEY=表达式2ENDIF。9.4选择结构程序设计选择结构程序设计9.4.2多分支条件选择语句DOCASE格式:DOCASECASE条件
17、1语句序列1CASE条件2语句序列2OTHERWISE语句序列nENDCASE说明:(1)DOCASE、CASE、OTHERWISE和ENDCASE必须各占一行。DOCASE和ENDCASE必须成对出现。(2)在执行DOCASE语句时,依次判断各条件是否成立。若条件N成立,就执行相应的语句序列N,直到遇到下一个CASE或OTHERWISE或ENDCASE。(3)某一语句序列执行后,不再判断别的条件,直接转向ENDCASE后面的语句。因此,在一个CASE结构中,一次只执行一个语句序列。(4)如果没有一个条件成立,就执行OTHERWISE后面的语句序列,如果没有OTHERWISE就不作任何操作,就
18、转向ENDCASE后面的语句。9.4选择结构程序设计选择结构程序设计【例9.6】:设计1个程序名为test4.prg,使用docase语句在“学生情况表”中按学号或姓名查询程序文件内容:clearuse学生情况表wait“请选择按姓名或按学号查询(M/X)”toxzdocasecasexz$“Mm”&此条件为真,说明选择了M,即按姓名查询accept“请输入待查人姓名:”toxmlocatefor姓名=xmcaxexz$“Xx”accept“请输入待查学号:”toxhlocatefor学号=xhotherwisewait“查询选择错误!按任意键退出!”windendcasedisplayuse
19、return运行结果如图9-10,图9-11,图9-12所示9.4选择结构程序设计选择结构程序设计图9-10按姓名查询结果显示图9-11按学号查询结果显示图9-12查询选择出错显示9.5循环结构程序设计循环结构程序设计前面我们学习的顺序结构和选择结构有一个共同点,即程序语句不能重复执行。在编程中常常遇到这样的情况:某一类问题的计算和处理方法完全一样,只是要要求重复计算多次,而每次使用的数据都按照一定的规律改变。程序设计中的循环结构(简称循环)是指在该程序中,从某处开始有规律地反复执行某一操作(或程序块)的现象。被重复执行的的部分称为循环体,循环体的执行与否及次数多少视循环类型与条件而定。当然,
20、无论何种类型的循环,其共同特点是必须确保循环的重复执行能被终止(无死循环)。按照循环体执行的方式和条件,循环结构分为当型、直到型与步长型三种。由于“直到型”循环是“当型”循环派生出来的循环形式,二者可以互换,所以在VFP中只提供了“当型”和“步长型”和“表扫描型”三种循环语句:DOWHILEENDDO(当型)、FORRNDFOR(步长型)、SCANENDSCAN(表扫描型)。9.5循环结构程序设计循环结构程序设计9.5.1当型循环命令DOWHILE格式:DOWHILE语句序列EXIT语句序列LOOP语句序列ENDDO说明:(1)可以是条件表达式或逻辑常量。根据的逻辑值进行判断,若为真,则执行D
21、OWHILE与ENDDO之间的循环体。若为假,则结束循环,转去执行ENDDO之后的语句。每执行一次循环体,程序自动返回到DOWHILE语句,判断一次。(2)EXIT是无条件结束循环命令。它使程序跳出循环,转去执行ENDDO之后的语句。(3)LOOP是无条件循环命令。它将控制直接转回到DOWHILE语句,而不执行LOOP和ENDDO之间的语句。(4)DOWHILE和ENDDO必须各占一行,且必须成对出现。9.5循环结构程序设计循环结构程序设计9.5.2步长型循环命令FOR若事先知道循环次数,则可以用步长型循环结构。步长型循环可以根据给定的次数重复执行循环体。其语法:FOR=TOSTEP语句序列E
22、XIT语句序列LOOP语句序列ENDFOR说明:(1)是一个作为计数器的内存变量,在该结构之前可以不存在。是计数器的初值,是计数器值的增长或减小量。如果步长值是负数,则计数器是减小。如果少略STEP子句,则默认步长为1。(2)其余情况与DOWHILE结构相似。9.5循环结构程序设计循环结构程序设计【例9.7】:在屏幕上输出乘法口诀表程序名为test5.prg程序文件内容如下:?“九九乘法表”?fori=1to9forj=1toi?alltrim(str(i)+“*”+alltrim(str(j)+“=”+alltrim(str(i*j)+“”next?next运行结果如图9-13所示图9-13
23、输出乘法口诀表9.5循环结构程序设计循环结构程序设计【例9.8】:求1!+2!+3!+20!的值。可在计算按钮的Click事件中编写如下代码:S=0FORN=1TO20T=1FORM=1TONT=T*MENDFORS=S+TENDFORTHISFORM.TEXT1.VALUE9.5循环结构程序设计循环结构程序设计9.5.3.表扫描型SCANENDSCAN格式:scan范围for条件语句序列endscan功能:对表中指定范围,满足条件的记录执行循环体语句,每执行一次循环,记录指针自动移动到下一条记录。操作表时,使用该语句功能强,效率高。【例9.9】:使用scan语句编程,显示“教师基本信息表”中
24、的党员的姓名和职称。程序名为test6.prg。use教师基本信息表scanfor.not.党员否display姓名,职称endscanusereturn运行结果如图9-14所示。图9-14显示党员的姓名和职称9.6自定义函数、过程及其调用自定义函数、过程及其调用9.6.1自定义函数自定义函数是用户根据需要把特定的需重复调用的子程序编写成函数,这有别于VFP的标准函数。标准函数是VFP系统自带的,是开发VFP系统的设计人员设计的常用的某些固定的功能,用户可以直接调用。但它们的调用方法是一样的,即:函数名()。自定义函数的格式为:FUNCTIONPARAMETERSRETURN说明:(1)函数名
25、指用户自定义的函数名,不能与系统函数名或内存变量名相同。(2)参数表是函数中使用的形式参数。(3)语句序列函数体语句。自定义函数可以放到过程文件中存储,也可以放到调用程序作为程序的一部分。若使用FUNCTION命令来指出函数名,表示该函数包含在调用程序中;若缺省FUNCTION行,表示该函数是一个独立的文件,函数名将在建立文件时确定,其扩展名仍然为.PRG。可使用命令MODIFYCOMMAND函数名建立或编辑自定义函数。自定义函数与系统函数的调用方法相同,其形式为:函数名参数表9.6自定义函数、过程及其调用自定义函数、过程及其调用9.6.2过程1.过程的概念:在程序设计时,常遇到这种情况,在同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfp 程序设计 课件
限制150内