版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VF程序文件的建立与设计程序文件的建立与设计Visual FoxPro程序文件,是一个以.PRG为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创立和编辑Visual FoxPro程序文件。这些文本编辑工具,可以是Visual FoxPro系统提供的内部编辑器,也可以是其它常用文本编辑软件。在文本编辑环境下,不仅可以对程序文件进行输入和修改,还可以实现字符串查找、替换、删除和编辑功能。 :/程序文件的建立与设计建立、编辑程序文件有两种方式: 1.命令方式 MODIFY COMMAND 程序文件名 2.菜单方式 翻开“文件菜单,选择“新建;在“新建窗口,选择“程序,再选择“新建文件;
2、在“程序文件编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。 :/程序文件的调用调用程序文件,即运行程序文件,是程序文件建立的最终目的。在Visual FoxPro系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。 1.命令方式 在Command 窗口中,输入如下命令,那么程序文件被调用。 命令格式: DO 程序文件名 :/程序文件的调用2.菜单方式 以菜单方式调用程序文件,操作方法如下: (1在Visual FoxPro系统主菜单下,翻开“程序菜单,选择“运行。 2在“运行窗口,输入被调用的程序文件名即可。 :/程序的根本结构Visual FoxPro系统提供的命令丰富,
3、且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。Visual FoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种根本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。 :/程序的根本结构常见的控制结构如下: 1顺序结构(第35套 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。 2分支结构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。 :/ 3循环结构 循
4、环结构那么能够使某些语句或程序段重复执行假设干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。 程序的根本结构 :/4过程结构 在许多应用程序中,有一些程序段需要反复执行屡次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。程序的根本结构 :/分支结构单向分支分支结构形式有如下三种: 1单向分支 单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是
5、否执行。 1语句格式: IF条件表达式 命令行序列 ENDIF 2语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否那么,执行ENDIF后面的第一条命令。 :/分支结构双向分支2双向分支 双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。 1语句格式: IF条件表达式 命令行序列1 ELSE 命令行序列2 ENDIF :/分支结构双向分支 2语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否那么,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行ENDIF后面的第一条命令。
6、:/分支结构多向分支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后面的第一条命令。 :/使用
7、分支语句应注意的几点: 1IF ENDIF和DO CASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。 2条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。 :/使用分支语句应注意的几点: 3命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 4DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。 :/循环结构 “当型循环常用的循环语句有以下三种形式: 1.“当型循环控制语句 “当
8、型循环控制语句,即根据条件表达式的值,决定循环体内语句的执行次数。 1语句格式: DO WHILE 条件表达式 命令行序列LOOP/EXIT ENDDO :/循环结构 “当型循环 2语句功能: 该语句通过条件表达式的值来控制循环。执行语句时,反复判断条件表达式的值,当条件表达式的值为“真时,执行命令行序列;否那么,结束循环,并执行ENDDO 后面的第一条命令。 :/循环结构 “计数型循环2“计数型循环控制语句 “计数型循环控制语句,即根据用户设置的循环变量的初值、终值和步长,决定循环体内语句的执行次数据。 1语句格式:FOR循环变量循环变量初值TO循环 变量终值STEP循环变量步长 命令行序列
9、 LOOP/EXIT ENDFORNEXT :/循环结构 “计数型循环2语句功能: 该语句用循环变量来控制命令行序列的执行次数。执行语句时,首先将循环变量初值赋给循环变量,然后判断循环变量是否大于或小于循环变量终值,假设结果为“真,那么结束循环,执行ENDFOR 后面的第一条命令;否那么,执行命令行序列,循环变量自动按循环变量步长增加或减少,再重新判断循环变量当前的值是否大于或小于循环变量终值,直到其结果为真。 :/循环结构 “指针型循环3“指针型循环控制语句 “指针型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。 1语句格式: SCAN范围FOR条件表达式命
10、令行序列LOOP/EXIT ENDSCAN :/循环结构 “指针型循环 2语句功能: 该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF的值,假设其值为“真,那么结束循环,否那么,结合条件表达式1或条件表达式2,执行命令行序列,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF的值,直到函数EOF的值为真时结束循环。 :/使用循环语句时应注意的几点 1DO WHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须配对使用。 2命令行序列可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。 3循环变量应是数值型的内存
11、变量或数组元素。 :/4EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP的功能是转回到循环的开始处,重新对“条件进行判断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN命令,它可以改变命令行序列中局部命令的执行次数。EXIT、LOOP可以出现在命令行序列的任意位置。使用循环语句时应注意的几点 :/过程在Visual FoxPro系统中,程序是独立存放在磁盘上的程序文件,使用时用户通过文件名调用并执行。为了实现用户的某种目的,很可能需要由多个程序完成。 1.调用
12、过程语句,即执行已有的过程。 (1)语句格式: DO 过程名 (2)语句功能: 执行以过程名为名的过程。 :/过程2.过程返回语句,即返回过程的调用处。 (1)语句格式: RETURNTO MASTERTO过程名(2)语句功能: 将控制返回到调用程序中调用命令的下一语句。 :/简单的输入输出命令1ACCEPT命令【格式】:ACCEPT TO 【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。 该命令只接受字符型数据,输入的字符串不需要加定界符 :/简单的输入输出命令2INPUT命令 【格式】: INPUT TO 【功能】在程序执行过程中,将用户交互式输入的内容赋值给
13、指定内存变量 可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给。 :/简单的输入输出命令3WAIT命令【格式】: WAIT TO【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。 假设选择可选项TO ,将输入的单个字符作为字符型数据赋给指定的;假设用户是按Enter键或单击鼠标,的值为空串。假设省略所有可选项,屏幕显示“键入任意键继续默认提示信息 :/简单的输入输出命令三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束; WAIT命令只
14、能输入单个字符,且不需定界符,输入完毕不需按回车键; INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。 :/简单的输入输出命令4定位输入命令【命令】:SAY| GET READ【功能】在屏幕指定的行列位置输入数据。 :/简单的输入输出命令【说明】命令中的各选项说明如下:是指屏幕窗口的位置。SAY给出提示信息。GET 取得变量的值。GET子句必须使用命令READ激活。GET 必须先定义再使用。比方先申请为多个宽度的空格 :/内存变量的作用域-全局变量1全局变量 全局变量是指在所有程序模块中
15、都有效的内存变量 在程序或过程中定义全局变量的语句为:【格式】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局部变量 局部变量是指在建立它的程序以及被此程序调用的子程序中有效的内存变
16、量 。在程序中没有被显示定义为全局变量的内存变量都被看作是局部变量。局部变量可以用PRIVATE说明.命令格式为:【格式】PRIVATE :/内存变量的作用域-局部变量【说明】1用PRIVATE语句说明的内存变量,只能在本程序及其下属过程中使用,退出程序时,变量自动释放;2用PRIVATE语句在过程中说明的局部变量,可以与上层调用程序出现的内存变量同名,但它们是不同的变量,在执行被调用过程期间,上层过程中的同名变量将被隐藏。即:在下级程序中再使用PRIVATE显示定义,就为同名变量, 该变量的值不能返回到主程序。 :/图示:子程序Private XX=1主程序:X=0?X :/内存变量的作用域
17、-本地变量3本地变量 本地变量是指只能在建立它的程序中有效的内存变量。即不能将本地变量传递到它的上一级或是下一级程序中。命令格式为:【格式】LOCAL :/图示:子程序Local XX=1主程序:X=0?X :/重要提示 但凡过程中未经说明的内存变量,系统一律认为是局部变量,这种方式叫做隐式定义方式。也可以使用专门命令来定义局部变量,即显式定义方式。 在同一过程中,用隐式或显式定义的局部变量的作用域完全相同。在主程序或上级过程中未经Private语句定义的局部变量,在下级过程中也未经显式定义,它的新值可以返回主程序或上级过程;假设在下级过程中进行了显式定义,即定义为同名变量,那么其新值不能返回
18、主程序。 :/习题&MAIN.PRGPUBLIC AA=1B=2?A,BDO SUB?A,B,C,D&SUB.PRGPRIVATE BPUBLIC CA=11B=12C=13D=14?A,B,C,DRETURNA=11,B=12,C=13,D=14A=11,B=2,C=13,D= :/过程的带参数调用1.带参数调用调用过程语句,即执行已有的过程,并为调用过程提供过程参数。【格式】: DO 子程序名 WITH 语句功能:执行以过程名为名的过程。该处的参数表又称为实参表。其中的参数为常量、已赋值的变量或数值表达式。 :/过程的带参数调用2.接收参数【格式】PARAMETERS 语句功能:该命令必须
19、位于被调用过程的第一条可执行语句处。此处的参数表称为形参表,其中的参数一般为内类变量。形参与实参的个数应相等、数据类型和个数要对应相同。 :/重要提示1.值传递方式分为:变量传递与参数传递。2.在参数传递过程中,如果实参是常量或是表达式,称为按值传递,即把实参的值传给形参,形参不能返回到实参;如果实参是变量,称为按引用传递,即把实参的地址传给形参,形参可以将值返回给实参;3.在参数传递过程中,如果实参不是变量,它将作为变量传递到它的下级过程中。4. 假设形参被显示定义为局部变量,仍然可以返回到上级程序。带参数的过程传递是利用参数将值传递到主程序,不是通过变量来传递值。 :/读程序第7题X1=1
20、X2=2DO P1 WITH X1,X2?X1,X2X1=1X2=2DO P1 WITH X1,X1+X2?X1,X2RETURN&程序P1.prgPARA W1,W2W1=W1*3W2=W2*4RETURN X1=1,X2=2X1=1,X1+X2=3W1=3X1=3 X2=2X1=3 X2=8 :/自定义函数自定义函数和过程一样,可以以独立的程序文件形式单独存储在磁盘上,也可以放在过程文件或直接放在程序文件中自定义函数具有如下语法结构: FUNCTION PARAMETER RETURN 自定义函数的调用语法与系统函数的调用相同。 :/例题:【例】计算圆面积(example.prg)INPUT 请输入圆的半径: TO R? 圆的面积为:,AREA(R)SET TALK ONFUNCTION AREA & 计算面积的函数PARAMETER X & 形参说明RETURN (3.1416*X*2) :/内部过程内部过程:把多个过程组织在一个文件中(这个文件称之为过程文件),或者把过程放在调用它的程序文件的末尾。Visual FoxPro为了识别过程文件或者程序文件中的不同过程,规定过程文件或者程序文件中的过程必
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度砂石料开采与环境保护合作协议3篇
- 二零二五年度个人消费分期贷款质押担保合同书2篇
- 2025版铁路货运特点与业务流程规范合同3篇
- 香烟店卫生标准规范
- 二零二五年度高校科研成果转化委托实施协议3篇
- 2025版环保设备维修与改造承包协议书2篇
- 二零二五版学生顶岗实习实习单位实习教育与培训合作协议3篇
- 二零二五年大学食堂食品安全保障协议范本3篇
- 二零二五版新风机销售与技术支持合作合同2篇
- 二零二五年度个人二手房交易房屋租赁续约合同
- 2025年病案编码员资格证试题库(含答案)
- 2025新译林版英语七年级下单词表
- 新疆2024年中考数学试卷(含答案)
- 魏宁海超买超卖指标公式
- 2024-2030年中国连续性肾脏替代治疗(CRRT)行业市场发展趋势与前景展望战略分析报告
- (正式版)FZ∕T 80014-2024 洁净室服装 通 用技术规范
- 跨学科主题学习:实施策略、设计要素与评价方式(附案例)
- 场地委托授权
- 剪映专业版:PC端短视频制作(全彩慕课版) 课件 第3章 短视频剪辑快速入门
- 湖南省长沙市开福区青竹湖湘一外国语学校2023-2024学年九年级下学期一模历史试题
- 2024年四川省成都市龙泉驿区中考数学二诊试卷(含答案)
评论
0/150
提交评论