




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VF程序文件的建立与设计程序文件的建立与设计:Visual FoxPro程序文件,是一个以(.PRG)为扩展名的文本文件。任何可以建立、编辑文 本文件的工具,都可以创建和编辑 Visual FoxPro程序文件。这些文本编辑工具,可以是Visual FoxPro系统提供的内部编辑器,也可以是其它常用文本编辑软件。在文本编辑环境下,不 仅可以对程序文件进行输入和修改,还可以实现字符串查找、替换、删除和编辑功能。 建立、编辑程序文件有两种方式:1 .命令方式:MODIFY COMMAND程序文件名2 .菜单方式:打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新 建文件”;在
2、“程序文件”编辑窗口,输入程序文件并保存,此时建立程序文件的操作结束。程序文件的调用:即运行程序文件,是程序文件建立的最终目的。在 Visual FoxPro系统中, 调用程序文件有很多方法,在这里仅介绍其中两种方法。1 .命令方式:在Command窗口中,输入如下命令,则程序文件被调用。 命令格式:DO程序文件名2 .菜单方式以菜单方式调用程序文件,操作方法如下:在Visual FoxPro系统主菜单下,打开“程序”菜单,选择“运行” 。(2)在“运行”窗口,输入被调用的程序文件名即可。程序的基本结构:Visual FoxPro系统提供的命令丰富, 且功能强大,把这些命令和程序设计语句有效地
3、组织在 一起,就形成了实现某一特定功能的程序。Visual FoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。常见的控制结构如下:1 .顺序结构(第35套)顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。2 .分支结构:分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用 来解决有选择、有转移的诸多问题。3 .循济法应循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程
4、序段需要在一个固定的位置上重复操作,使用循环是最好的选择。4,辿星空树在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。 分支结构一单向分支 分支结构形式有如下三种:1 .单向分支:即根据用户设置的条件表达式的值,决定某一操作是否执行。 (1)语句格式:IF,一心命令行序列;ENDIF(2)语句功能:该语句首先计算条件表达式的值,当条件表达
5、式的值为真时,执行命令行 序列;否则,执行ENDIF后面的第一条命令。2 .双向分支:即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。 (1)语句格式:IF条件表达式命令行序列1ELSE命令行序列2>ENDIF(2)语句功能:该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2>中的命令;执行完命令行序列1或命令行序列2>后都将执行ENDIF后面的第一条命令。3 .多向分支:,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。(1)语句格式:DO CASECASE条件表达式 1命令行序列1>CASE
6、条件表达式 2>命令行序列2)IIICASE条件表达式 N>命令行序列NOTHERWISE命令行序列 N+1ENDCASE(2)语句功能:该语句根据给出的N个条件表达式的值,选择 N+1个命令行序列中的一个执行。当所有 CASE中条件表达式的值都是假时,如果有 OTHERWISE项, 则执行命令彳T序列 N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE 后面的第一条命令。使用分支语句应注意的几点:(1) IF ENDIF 和 DO CASE ENDCASE 必须配对使用, DO CASE 与第一个CASE条件表达式之间不应有任何命令。(2):条件表达,灯仃
7、以是各干及达式或时数匕也刈:1是缓同匕(3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。(4) DO CASE ENDCASE 命令,每次最多只能执行一个 命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。循环结构-“当”型循环常用的循环语句有以下三种形式:1. “当”型循环控制语句,即根据条件表达式的值,决定循环体内语句的执行次数。 (1)语句格式:DO WHILE 条件表达式命令行序列 LOOP/EXIT ENDDO(2)语句功能:该语句通过条件表达式的值来控制循环。执行语句时,反
8、复判断条 件表达式的值,当条件表达式的值为“真”时,执行命令行序列;否则,结束循环,并执行ENDDO后面的第一条命令。 循环结构-“计数”型循环2 .“计数”型循环控制语句,即根据用户设置的循环变量的初值、终值和步长,决定循环体 内语句的执行次数据。(1)语句格式:FOR循环变量=循环变量初值TO循环变量 终值STEP循环变量步长命令行序列LOOP/EXIT ENDFOR | NEXT (2)语句功能:该语句用循环变量来控制命令行序列的执行次数。执行语句时,首 先将循环变量初值赋给循环变量,然后判断循环变量是否大于或小于循环变量终值,若结果为“真”,则结束循环,执行ENDFOR后面的第一条命令
9、;否则,执行命 令行序列,循环变量自动按循环变量步长增加或减少,再重新判断循环变量当 前的值是否大于或小于循环变量终值,直到其结果为真。循环结构-“指针”型循环3 .“指针”型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。(1)语句格式:SCAN 范围FOR条件表达式 命令行序列 LOOP/EXITENDSCAN(2)语句功能:该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF ()的值,若其值为“真”,则结束循环,否则,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录, 重新判断函数E
10、OF ()的值,直到函数 EOF ()的值为真时结束循环。 使用循环语句时应注意的几点(1) DO WHILE 和 ENDDO、FOR 和 ENDFOR、SCAN 和 ENDSCAN 必须配对便.川。(2)命令行序列可是任何 FoxPro命令或语句,也可以是循环语句,即可以为多重循环。(3)循环变量应是数值型的内存变量或数组元素。(4) EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行 ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP 的功能是转回到循环的开始处,重新对“条件”进行判断,相当于执行了一次ENDDO、E
11、NDFOR、ENDSCAN命令,它可以改变命令行序列中部分命令的执行次数。EXIT、LOOP可以出现在命令行序列的任意位置。 过程在Visual FoxPro系统中,程序是独立存放在磁盘上的程序文件,使用时用户通过文件名调 用并执行。为了实现用户的某种目的,很可能需要由多个程序完成。1 . i氏用过程语旬.即快行一行时过秣语句格式:DO彳过程名)(2)语句功能:执行以过程名为名的过程。2 .过程返回语句,即返回过程的调用处。语句格式:RETURN TO MASTER | TO ;过程名匚(2)语句功能:将控制返回到调用程序中调用命令的下一语句。简单的输入输出命令1. ACCEPT 命令【格式】
12、:ACCEPT 卜提示信息刁TO 内存变量【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。该命令只接受字符型数据,输入的字符串不需要加定界符2. INPUT 命令【格式】:INPUT 卜提示信息TO 内存变量【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给内存变量。3. WAIT命令【格式】:WAIT 提示信息刁TO内存变量【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。若选
13、择可选项TO 内存变量 ,将输入的单个字符作为字符型数据赋给指定的 内存变量 ; 若用户是按Enter键或单击鼠标,内存变量的值为空串。若省略所有可选项,屏幕显示“键 入任意键继续”默认提示信息三条输入命令的异同:ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;INPUT命令可接受数值型、 字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。4. 定位输入命令【命令】:行,列SAY提示信息| GET变量READ【功能】在屏幕指定的行
14、列位置输入数据。【说明】命令中的各选项说明如下:行,列是指屏幕窗口的位置。SAY提示信息给出提示信息。GET变量 取得变量的值。GET子句必须使用命令 READ激活。GET变量 必须先定义再使用。比如先申请为多个宽度的空格内存变量的作用域-全局变量1 .全局变量,指在所有程序模块中都有效的内存变量在程序或过程中定义全局变量的语句为:【格式】PUBLIC 内存变量表例:Public X,Y&& X、丫被显示定义为全局变量Z=0&&Z变量被隐式定义?Y,Z&& Y=.F.Z=0,变量的初始值为.F.【说明】(1)当定义多个变量时,各变量名之间用逗号隔
15、开;(2)用PUBLIC语句定义过的内存变量, 在程序执行期可以在任何层次的程序模块中使用;(3)变量定义语句要放在使用此变量的语句之前,否则会出错;2 .局部变量,指在建立它的程序以及被此程序调用的子程序中有效的内存变量。在程序中没有被显示定义为全局变量的内存变量都被看作局部变量。局部变量可以用 PRIVATE说明.命令格式为:【格式】PRIVATE内存变量表【说明】(1)用PRIVATE语句说明的内存变量,只能在本程序及其下属过程中使用,退出程序时,变量自动释放;(2)用PRIVATE语句在过程中说明的局部变量, 可以与上层调用程序出现的内存变量同名,但它们是不同的变量,在执行被调用过程期
16、间,上层过程中的同名变量将被隐藏。即:在下级程序中再使用 PRIVATE显示定义,就为同名变量,该变量的值不能返回到主程序。重要提示:凡是过程中未经说明的内存变量,系统一律认为是局部变量,这种方式叫做隐式定义方式。也可以使用专门命令来定义局部变量,即显式定义方式。在同一过程中,用隐式或显式定义的局部变量的作用域完全相同。在主程序或上级过程中未经Private语句定义的局部变量,在下级过程中也未经显式定义, 它的新值可以返回主程序或上级过程; 若在下级 过程中进行了显式定义,即定义为同名变量,则其新值不能返回主程序。过程的带参数调用1 .带参数调用:调用过程语句,即执行已有的过程,并为调用过程提
17、供过程参数。【格式】:DO 子程序名WITH 参数表语句功能:执行以过程名为名的过程。该处的参数表又称为实参表。其中的参数为常量、已赋值的变量或数值表达式。2 .接收参数3 .【格式】PARAMETERS 参数表语句功能:该命令必须位于被调用过程的第一条可执行语句处。此处的参数表称为形参表,其中的参数一般为内类变量。形参与实参的个数应相等、数据类型和个数要对应相同。重要提示1 .值传递方式分为:变量传递与参数传递。2 .在参数传递过程中,如果实参是常量或是表达式,称为按值传递,即把实参的值传给形参,形参不能返回到实参;如果实参是变量,称为按引用传递,即把实参的地址传给形参,形参可以将值返回给实
18、参;3 .在参数传递过程中,如果实参不是变量,它将作为变量传递到它的下级过程中。4 .若形参被显示定义为局部变量,仍然可以返回到上级程序。带参数的过程传递是利用参数将值传递到主程序,不是通过变量来传递值。读程序第7题(答案见课件)X1=1X2=2DO P1 WITH X1,X2?X1,X2X1=1X2=2DO P1 WITH X1,X1+X2?X1,X2RETURN自定义函数自定义函数和过程一样,可以以独立的程序文件形式单独存储在磁盘上,也可以放在过程文件或直接放在程序文件中自定义函数具有如下语法结构:FUNCTION < 函数名 >PARAMETER < 参数表 >函数体命令序列>RETURN <表达式>自定义函数的调用语法与系统函数的调用相同。例题:计算圆面积(example.prg)INPUT ”请输入圆的半径:" TO R? ”圆的面积为:",AREA(R)SET TALK ONFUNCTION AREA &&计算面积的函数PARAMETER X &&形参说明RETURN (3.1416*X*2)内部过程:把多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程中介合同协议书
- 教育行业教务管理操作手册
- 机械设备融资租赁协议书6篇
- 危险货物运输合同标准
- 《初高中英语语法讲解与练习课教案》
- 2025年湖北怎么考货运从业资格证
- 2025年临汾货运从业资格证考试内容
- 2025年商铺转让合同8篇
- 双方付款合同范本
- 厂地合作合同范本
- 供应链中的社会责任
- 早期教育概论(高职学前教育专业)全套教学课件
- 《AutoCAD 中文版实例教程(AutoCAD 2020) (微课版)(第 2 版)》课件 马连志 第3、4章 基本绘图操作、高级绘图操作
- 产品国产化证明书
- 询价投标文件(范本)
- 幼儿教师职业道德(高职学前教育专业)全套教学课件
- 苏科版八年级生物下册全册完整课件
- 第四单元复习教学设计 部编版语文七年级上册
- 医学专家谈灵芝孢子粉课件
- 开心麻花《白蛇前传》剧本
- 全部编版三年级语文下册生字读音、音序、偏旁及组词
评论
0/150
提交评论