VF程序文件的建立与设计

上传人:e****s 文档编号:243373637 上传时间:2024-09-22 格式:PPT 页数:54 大小:2.90MB
返回 下载 相关 举报
VF程序文件的建立与设计_第1页
第1页 / 共54页
VF程序文件的建立与设计_第2页
第2页 / 共54页
VF程序文件的建立与设计_第3页
第3页 / 共54页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,VF,程序文件的建立与设计,程序文件的建立与设计,Visual FoxPro,程序文件,是一个以(.,PRG),为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建和编辑,Visual FoxPro,程序文件。这些文本编辑工具,可以是,Visual FoxPro,系统提供的内部编辑器,也可以是其它常用文本编辑软件。在文本编辑环境下,不仅可以对程序文件进行输入和修改,还可以实现字符串查找、替换、删除和编辑功能。,程序文件的建立与设计,建立、编辑程序文件有两种方式:,MODIFY COMMAND ,程序文件名,2.菜单方式,打开,“,文件,”,菜单,选择,“,新建,”,;在,“,新建,”,窗口,选择,“,程序,”,,再选择,“,新建文件,”,;在,“,程序文件,”,编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。,程序文件的调用,调用程序文件,即运行程序文件,是程序文件建立的最终目的。在,Visual FoxPro,系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。,在,Command,窗口中,输入如下命令,则程序文件被调用。,命令格式:,DO ,程序文件名,程序文件的调用,以菜单方式调用程序文件,操作方法如下:,(1)在,Visual FoxPro,系统主菜单下,打开,“,程序,”,菜单,选择,“,运行,”,。,(2)在,“,运行,”,窗口,输入被调用的程序文件名即可。,程序的基本结构,Visual FoxPro,系统提供的命令丰富,且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。,Visual FoxPro,系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。,程序的基本结构,常见的控制结构如下:,1顺序结构,(,第,35,套),顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。,Visual FoxPro,系统中的大多数命令都可以作为顺序结构中的语句。,2分支结构,分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。,3循环结构,循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。,程序的基本结构,4过程结构,在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。,程序的基本结构,分支结构单向分支,分支结构形式有如下三种:,1单向分支,单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。,(1)语句格式:,IF,条件表达式,命令行序列,ENDIF,(2),语句功能:,该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行,ENDIF,后面的第一条命令。,分支结构双向分支,2双向分支,双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。,(1)语句格式:,IF,条件表达式, 命令行序列1,ELSE,命令行序列2,ENDIF,分支结构双向分支,(2),语句功能:,该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行,ENDIF,后面的第一条命令。,分支结构多向分支,3多向分支,多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行 。,(1)语句格式:,DO CASE, CASE,条件表达式1, 命令行序列1, ,CASE,条件表达式2, 命令行序列2,CASE,条件表达式,N, ,命令行序列,N,OTHERWISE,命令行序列,N+1,ENDCASE,分支结构多向分支,(2)语句功能:,该语句根据给出的,N,个条件表达式的值,选择,N+1,个命令行序列中的一个执行。当所有,CASE,中条件表达式的值都是假时,如果有,OTHERWISE,项,则执行命令行序列,N+1,,再执行,ENDCASE,后面的第一条命令;否则,直接执行,ENDCASE,后面的第一条命令。,使用分支语句应注意的几点:,(1),IF,ENDIF,和,DO CASE,ENDCASE,必须配对使用,,DO CASE,与第一个,CASE,条件表达式之间不应有任何命令。,(2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。,使用分支语句应注意的几点:,(3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。,(4),DO CASE,ENDCASE,命令,每次最多只能执行一个命令行序列。在多个,CASE,项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行,ENDCASE,的后面的第一条命令。,循环结构,“,当,”,型循环,常用的循环语句有以下三种形式:,1.,“,当,”,型循环控制语句,“,当,”,型循环控制语句,即根据条件表达式的值,决定循环体内语句的执行次数。,(1)语句格式:,DO WHILE ,条件表达式, 命令行序列,LOOP/EXIT,ENDDO,循环结构,“,当,”,型循环, (2),语句功能:,该语句通过条件表达式的值来控制循环。执行语句时,反复判断条件表达式的值,当条件表达式的值为,“,真,”,时,执行命令行序列;否则,结束循环,并执行,ENDDO,后面的第一条命令。,循环结构,“,计数,”,型循环,2,“,计数,”,型循环控制语句,“,计数,”,型循环控制语句,即根据用户设置的循环变量的初值、终值和步长,决定循环体内语句的执行次数据。,(1)语句格式:,FOR,循环变量循环变量初值,TO,循环 变量终值,STEP,循环变量步长,命令行序列,LOOP/EXIT, ENDFOR,NEXT,循环结构,“,计数,”,型循环,(2),语句功能:,该语句用循环变量来控制命令行序列的执行次数。执行语句时,首先将循环变量初值赋给循环变量,然后判断循环变量是否大于或小于循环变量终值,若结果为,“,真,”,,则结束循环,执行,ENDFOR,后面的第一条命令;否则,执行命令行序列,循环变量自动按循环变量步长增加或减少,再重新判断循环变量当前的值是否大于或小于循环变量终值,直到其结果为真。,循环结构,“,指针,”,型循环,3,“,指针,”,型循环控制语句,“,指针,”,型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。,(1)语句格式:,SCAN,范围,FOR,条件表达式,命令行序列,LOOP/EXIT,ENDSCAN,循环结构,“,指针,”,型循环, (2),语句功能:,该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数,EOF(),的值,若其值为,“,真,”,,则结束循环,否则,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数,EOF(),的值,直到函数,EOF(),的值为真时结束循环。,使用循环语句时应注意的几点,(1),DO WHILE,和,ENDDO、FOR,和,ENDFOR、SCAN,和,ENDSCAN,必须配对使用。,(2)命令行序列可以是任何,FoxPro,命令或语句,也可以是循环语句,即可以为多重循环。,(3)循环变量应是数值型的内存变量或数组元素。,(4),EXIT,和,LOOP,命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。,EXIT,的功能是跳出循环,转去执行,ENDDO、ENDFOR、ENDSCAN,后面的第一条命令;,LOOP,的功能是转回到循环的开始处,重新对,“,条件,”,进行判断,相当于执行了一次,ENDDO、ENDFOR、ENDSCAN,命令,它可以改变命令行序列中部分命令的执行次数。,EXIT、LOOP,可以出现在命令行序列的任意位置。,使用循环语句时应注意的几点,过程,在,Visual FoxPro,系统中,程序是独立存放在磁盘上的程序文件,使用时用户通过文件名调用并执行。为了实现用户的某种目的,很可能需要由多个程序完成。,1.调用过程语句,即执行已有的过程。,(1)语句格式:,DO ,过程名,(2)语句功能:,执行以过程名为名的过程。,过程,2.过程返回语句,即返回过程的调用处。,(1)语句格式:,RETURNTO MASTERTO,过程名,(2)语句功能:,将控制返回到调用程序中调用命令的下一语句。,简单的输入输出命令,1,ACCEPT,命令,【格式】:,ACCEPT ,TO ,【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。,该命令,只接受字符型数据,,输入的字符串不需要加定界符,简单的输入输出命令,2,INPUT,命令,【格式】:,INPUT ,TO ,【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量,可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给。,简单的输入输出命令,3,WAIT,命令,【格式】:,WAIT ,TO,【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。,若选择可选项,TO ,将输入的单个字符作为字符型数据赋给指定的;若用户是按,Enter,键或单击鼠标,的值为空串。若省略所有可选项,屏幕显示“键入任意键继续”默认提示信息,简单的输入输出命令,三条输入命令的异同,ACCEPT,命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;,WAIT,命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;,INPUT,命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。,简单的输入输出命令,4,定位输入命令,【命令】:,SAY|,GET ,READ,【,功能】在屏幕指定的行列位置输入数据。,简单的输入输出命令,【说明】命令中的各选项说明如下:,是指屏幕窗口的位置。,SAY给出提示信息。,GET 取得变量的值。,GET,子句必须使用命令,READ,激活。,GET 必须先定义再使用。比如先申请为多个宽度的空格,内存变量的作用域,-,全局变量,1全局变量,全局变量是指在所有程序模块中都有效的内存变量,在程序或过程中定义全局变量的语句为:,【格式】,PUBLIC ,例:,Public X,Y,& X,、,Y,被显示定义为全局变量,Z=0,&Z,变量被隐式定义,?Y,Z,& Y=.F. Z=0,变量的初始值为,.F.,内存变量的作用域,-,全局变量,【说明】,(1)当定义多个变量时,各变量名之间用逗号隔开;,(2)用,PUBLIC,语句定义过的内存变量,在程序执行期间可以在任何层次的程序模块中使用;,(3)变量定义语句要放在使用此变量的语句之前,否则会出错;,图示:,主程序:,X=0,子程序:,?X,子程序:,?X,内存变量的作用域,-,局部变量,2局部变量,局部变量是指在建立它的程序以及被此程序调用的子程序中有效的内存变量 。,在程序中没有被显示定义为全局变量的内存变量都被看作是局部变量。,局部变量可以用,PRIVATE,说明.,命令格式为:,【格式】,PRIVATE ,内存变量的作用域,-,局部变量,【说明】,(1)用,PRIVATE,语句说明的内存变量,只能在本程序及其下属过程中使用,退出程序时,变量自动释放;,(2)用,PRIVATE,语句在过程中说明的局部变量,可以与上层调用程序出现的内存变量同名,但它们是不同的变量,在执行被调用过程期间,上层过程中的同名变量将被隐藏。即:在下级程序中再使用,PRIVATE,显示定义,就为,同名变量,该变量的值不能返回到主程序。,图示:,子程序,Private X,X=1,主程序:,X=0,?X,内存变量的作用域,-,本地变量,3,本地变量,本地变量是指只能在建立它的程序中有效的内存变量。即不能将本地变量传递到它的上一级或是下一级程序中。,命令格式为:,【格式】,LOCAL ,图示:,子程序,Local X,X=1,主程序:,X=0,?X,重要提示,凡是过程中未经说明的内存变量,系统一律认为是局部变量,这种方式叫做,隐式定义,方式。也可以使用专门命令来定义局部变量,即,显式定义,方式。,在同一过程中,用隐式或显式定义的局部变量的作用域完全相同。在主程序或上级过程中未经,Private,语句定义的局部变量,在下级过程中也未经显式定义,它的新值可以返回主程序或上级过程;若在下级过程中进行了显式定义,即定义为同名变量,则其新值不能返回主程序。,习题,PUBLIC A,A=1,B=2,?A,B,DO SUB,?A,B,C,D,&,PRIVATE B,PUBLIC C,A=11,B=12,C=13,D=14,?A,B,C,D,RETURN,A=11,B=12,C=13,D=14,A=11,B=2,C=13,D=,过程的带参数调用,调用过程语句,即执行已有的过程,并为调用过程提供过程参数。,【格式】:,DO ,子程序名,WITH ,语句功能:执行以过程名为名的过程。该处的参数表又称为实参表。其中的参数为常量、已赋值的变量或数值表达式。,过程的带参数调用,【格式】,PARAMETERS ,语句功能:该命令必须位于被调用过程的第一条可执行语句处。此处的参数表称为形参表,其中的参数一般为内类变量。形参与实参的个数应相等、数据类型和个数要对应相同。,重要提示,1.值传递方式分为:,变量传递,与,参数传递,。,2.在参数传递过程中,如果实参是常量或是表达式,称为,按值传递,,即把实参的值传给形参,形参不能返回到实参;如果实参是变量,称为按,引用传递,,即把实参的地址传给形参,形参可以将值返回给实参;,3.,在参数传递过程中,如果实参不是变量,它将作为变量传递到它的下级过程中。,4. 若形参被显示定义为局部变量,仍然可以返回到上级程序。带参数的过程传递是利用参数将值传递到主程序,不是通过变量来传递值。,读程序第,7,题,X1=1,X2=2,DO P1 WITH X1,X2,?X1,X2,X1=1,X2=2,DO P1 WITH X1,X1+X2,?X1,X2,RETURN,&程序,PARA W1,W2,W1=W1*3,W2=W2*4,RETURN,X1=1,X2=2,X1=1,X1+X2=3,W1=3,X1=3 X2=2,X1=3 X2=8,自定义函数,自定义函数和过程一样,可以以独立的程序文件形式单独存储在磁盘上,也可以放在过程文件或直接放在程序文件中,自定义函数具有如下语法结构:,FUNCTION ,PARAMETER ,RETURN ,自定义函数的调用语法与系统函数的调用相同。,例题:,【例】计算圆面积(,example.prg),INPUT ”,请输入圆的半径:”,TO R,? ”,圆的面积为:”,AREA(R),SET TALK ON,FUNCTION AREA,&,计算面积的函数,PARAMETER X,&,形参说明,RETURN (3.1416*X*2),内部过程,内部过程:把多个过程组织在一个文件中,(,这个文件称之为过程文件,),,或者把过程放在调用它的程序文件的末尾。,Visual FoxPro,为了识别过程文件或者程序文件中的不同过程,规定过程文件或者程序文件中的过程必需用,PROCEDURE,语句说明。其格式为:,PROCEDURE ,RETURN ,过程文件的建立,过程文件的建立方法与程序文件相同。可用,MODIFY COMMAND ,命令来建立。,过程文件的结构一般为:,PROCEDURE ,RETURN,PROCEDURE ,RETURN,过程文件的调用,调用某过程文件中的过程时,必须先打开该过程文件打开过程文件命令为:,【,格式,】,:,SET PROCEDURE TO ,任何时候系统只能打开一个过程文件,当打开一个新的过程文件时,原已打开的过程文件自动关闭。,过程文件的关闭,关闭过程文件可用下列命令:,【,格式一,】SET PROCEDURE TO,【,格式二,】CLOSE PROCEDURE,外部过程,外部过程也叫子程序,和主程序一样是以程序文件(.,PRG),的形式单独存储在磁盘上,【例】分别建立如下程序文件,,*,SET TALK OFF,?,”,正在执行主程序,”,DO SUB1,SET TALK ON,?,”,正在执行,SUB1,”,RETURN,读程序,PUBLIC X,Y,SET PROC TO KK,&,打开过程文件,X=20,Y=50,DO A1,&,调用过程,A1,?X,Y,SET PROC TO,&,关闭过程文件,RETURN,&过程文件,PROCEDURE A1,&,建立过程文件,A1,PRIVATE X,&,显示定义局部变量,X=30,LOCAL Y,&,申请为本地变量,DO A2,?X,Y,RETURN,PROCEDURE A2,&,建立过程文件,A2,X=KKK,Y=MM,RETURN,&,返回语句,Y=.F.,X=“KKK”, Y=.F.,X=20, Y=“MM”,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!