VF程序文件的建立与设计_第1页
VF程序文件的建立与设计_第2页
VF程序文件的建立与设计_第3页
全文预览已结束

下载本文档

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

文档简介

/VF程序文件的建立和设计程序文件的建立和设计:VisualFoxPro程序文件,是一个以(.PRG)为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建和编辑VisualFoxPro程序文件。这些文本编辑工具,可以是VisualFoxPro系统供应的内部编辑器,也可以是其它常用文本编辑软件。在文本编辑环境下,不仅可以对程序文件进行输入和修改,还可以实现字符串查找、替换、删除和编辑功能。建立、编辑程序文件有两种方式:1.吩咐方式:MODIFYCOMMAND〈程序文件名〉2.菜单方式:打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;在“程序文件”编辑窗口,输入程序文件并保存,此时建立程序文件的操作结束。程序文件的调用:即运行程序文件,是程序文件建立的最终目的。在VisualFoxPro系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。1.吩咐方式:在Command窗口中,输入如下吩咐,则程序文件被调用。吩咐格式:DO〈程序文件名〉2.菜单方式以菜单方式调用程序文件,操作方法如下:(1)在VisualFoxPro系统主菜单下,打开“程序”菜单,选择“运行”。(2)在“运行”窗口,输入被调用的程序文件名即可。程序的基本结构:VisualFoxPro系统供应的吩咐丰富,且功能强大,把这些吩咐和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。VisualFoxPro系统的程序有两个特点:一是程序限制流模式,由依次、分支、循环三种基本结构构成。二是面对对象可视化的结构程序模块,在每个模块的内部也是由程序限制流组成。常见的限制结构如下:1.依次结构(第35套)依次结构是在程序执行时,依据程序中语句的书写依次依次执行的吩咐序列。VisualFoxPro系统中的大多数吩咐都可以作为依次结构中的语句。2.分支结构:分支结构是在程序执行时,依据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3.循环结构循环结构则能够使某些语句或程序段重复执行若干次。假如某些语句或程序段须要在一个固定的位置上重复操作,运用循环是最好的选择。4.过程结构在很多应用程序中,有一些程序段须要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的很多位置上重复执行,可将其和嵌入它的程序分开,形成独立的程序序列,待运用时再调入程序中,以实现不同位置上的重复操作。这样做增加了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。分支结构-单向分支分支结构形式有如下三种:1.单向分支:即依据用户设置的条件表达式的值,确定某一操作是否执行。(1)语句格式:IF〈条件表达式〉〈吩咐行序列〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈吩咐行序列〉;否则,执行ENDIF后面的第一条吩咐。2.双向分支:即依据用户设置的条件表达式的值,选择两个操作中的一个来执行。(1)语句格式:IF〈条件表达式〉〈吩咐行序列1〉ELSE〈吩咐行序列2〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈吩咐行序列1〉中的吩咐;否则,执行〈吩咐行序列2〉中的吩咐;执行完〈吩咐行序列1〉或〈吩咐行序列2〉后都将执行ENDIF后面的第一条吩咐。3.多向分支:,即依据多个条件表达式的值,选择执行多个操作中的一个对应执行。(1)语句格式:DOCASECASE〈条件表达式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和DOCASE……ENDCASE必需配对运用,DOCASE和第一个CASE〈条件表达式〉之间不应有任何吩咐。(2)〈条件表达式〉可以是各种表达式或函数的组合,其值必需是逻辑值。(3)〈吩咐行序列〉可以由一个或多个吩咐组成,可以是条件限制语句组成的嵌套结构。(4)DOCASE……ENDCASE吩咐,每次最多只能执行一个〈吩咐行序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈吩咐行序列〉,然后执行ENDCASE的后面的第一条吩咐。循环结构-“当”型循环常用的循环语句有以下三种形式:1.“当”型循环限制语句,即依据条件表达式的值,确定循环体内语句的执行次数。(1)语句格式:DOWHILE〈条件表达式〉〈吩咐行序列〉 [LOOP/EXIT]ENDDO语句功能:该语句通过〈条件表达式〉的值来限制循环。执行语句时,反复推断〈条件表达式〉的值,当〈条件表达式〉的值为“真”时,执行〈吩咐行序列〉;否则,结束循环,并执行ENDDO后面的第一条吩咐。循环结构-“计数”型循环2.“计数”型循环限制语句,即依据用户设置的循环变量的初值、终值和步长,确定循环体内语句的执行次数据。(1)语句格式:FOR〈循环变量〉=〈循环变量初值〉TO〈循环变量终值〉[STEP〈循环变量步长〉]〈吩咐行序列〉 [LOOP/EXIT]ENDFOR|NEXT语句功能:该语句用〈循环变量〉来限制〈吩咐行序列〉的执行次数。执行语句时,首先将〈循环变量初值〉赋给〈循环变量〉,然后推断〈循环变量〉是否大于或小于〈循环变量终值〉,若结果为“真”,则结束循环,执行ENDFOR后面的第一条吩咐;否则,执行〈吩咐行序列〉,〈循环变量〉自动按〈循环变量步长〉增加或削减,再重新推断〈循环变量〉当前的值是否大于或小于〈循环变量终值〉,直到其结果为真。循环结构-“指针”型循环3.“指针”型循环限制语句,即依据用户设置的表中的当前记录指针,确定循环体内语句的执行次数据。(1)语句格式:SCAN[〈范围〉][FOR〈条件表达式〉 〈吩咐行序列〉 [LOOP/EXIT]ENDSCAN(2)语句功能:该语句在指定的范围内,用数据记录指针来限制循环次数。执行语句时,首先推断函数EOF()的值,若其值为“真”,则结束循环,否则,结合〈条件表达式1〉或〈条件表达式2〉,执行〈吩咐行序列〉,记录指针移到指定的范围和条件内的下一条记录,重新推断函数EOF()的值,直到函数EOF()的值为真时结束循环。运用循环语句时应留意的几点DOWHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必需配对运用。(2)〈吩咐行序列〉可是任何FoxPro吩咐或语句,也可以是循环语句,即可以为多重循环。(3)〈循环变量〉应是数值型的内存变量或数组元素。(4)EXIT和LOOP吩咐嵌入在循环体内,可以变更循环次数,但是不能单独运用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条吩咐;LOOP的功能是转回到循环的起先处,重新对“条件”进行推断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN吩咐,它可以变更〈吩咐行序列〉中部分吩咐的执行次数。EXIT、LOOP可以出现在〈吩咐行序列〉的随意位置。过程在VisualFoxPro系统中,程序是独立存放在磁盘上的程序文件,运用时用户通过文件名调用并执行。为了实现用户的某种目的,很可能须要由多个程序完成。1.调用过程语句,即执行已有的过程。(1)语句格式:DO〈过程名〉(2)语句功能:执行以〈过程名〉为名的过程。2.过程返回语句,即返回过程的调用处。(1)语句格式:RETURN[TOMASTER|TO〈过程名〉](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<内存变量表>例:PublicX,Y&&X、Y被显示定义为全局变量Z=0&&Z变量被隐式定义?Y,Z&&Y=.F.Z=0,变量的初始值为.F.【说明】(1)当定义多个变量时,各变量名之间用逗号隔开;(2)用PUBLIC语句定义过的内存变量,在程序执行期可以在任何层次的程序模块中运用;(3)变量定义语句要放在运用此变量的语句之前,否则会出错;2.局部变量,指在建立它的程序以及被此程序调用的子程序中有效的内存变量。在程序中没有被显示定义为全局变量的内存变量都被看作局部变量。局部变量可以用PRIVATE说明.吩咐格式为:【格式】PRIVATE<内存变量表>【说明】(1)用PRIVATE语句说明的内存变量,只能在本程序及其下属过程中运用,退出程序时,变量自动释放;(2)用PRIVATE语句在过程中说明的局部变量,可以和上层调用程序出现的内存变量同名,但它们是不同的变量,在执行被调用过程期间,上层过程中的同名变量将被隐藏。即:在下级程序中再运用PRIVATE显示定义,就为同名变量,该变量的值不能返回到主程序。重要提示:凡是过程中未经说明的内存变量,系统一律认为是局部变量,这种方式叫做隐式定义方式。也可以运用特地吩咐来定义局部变量,即显式定义方式。在同一过程中,用隐式或显式定义的局部变量的作用域完全相同。在主程序或上级过程中未经Private语句定义的局部变量,在下级过程中也未经显式定义,它的新值可以返回主程序或上级过程;若在下级过程中进行了显式定义,即定义为同名变量,则其新值不能返回主程序。过程的带参数调用1.带参数调用:调用过程语句,即执行已有的过程,并为调用过程供应过程参数。【格式】:DO〈子程序名〉WITH<参数表>语句功能:执行以〈过程名〉为名的过程。该处的参数表又称为实参表。其中的参数为常量、已赋值的变量或数值表达式。接收参数【格式】PARAMETERS<参数表>语句功能:该吩咐必需位于被调用过程的第一条可执行语句处。此处的参数表称为形参表,其中的参数一般为内类变量。形参和实参的个数应相等、数据类型和个数要对应相同。重要提示1.值传递方式分为:变量传递和参数传递。2.在参数传递过程中,假如实参是常量或是表达式,称为按值传递,即把实参的值传给形参,形参不能返回到实参;假如实参是变量,称为按引用传递,即把实参的地址传给形参,形参可以将值返回给实参;3.在参数传递过程中,假如实参不是变量,它将作为变量传递到它的下级过程中。4.若形参被显示定义为局部变量,仍旧可以返回到上级程序。带参数的过程传递是利用参数将值传递到主程序,不是通过变量来传递值。读程序第7题(答案见课件)X1=1X2=2DOP1WITHX1,X2?X1,X2X1=1X2=2DOP1WITHX1,X1+X2?X1,X2RETURN自定义函数自定义函数和过程一样,可以以独立的程序文件形式单独存储在磁盘上,也可以放在过程文件或干脆放在程序文件中自定义函数具有如下语法结构:FUNCTION<函数名>PARAMETER<参数表><函数体吩咐序列>RETURN<表达式>自定义函数的调用语法和系统函数的调用相同。例题:计算圆面积(example.prg) INPUT”请输入圆的半径:”TOR ?”圆的面积为:”,AREA(R) SETTALKO

温馨提示

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

评论

0/150

提交评论