程序设计基础课件_第1页
程序设计基础课件_第2页
程序设计基础课件_第3页
程序设计基础课件_第4页
程序设计基础课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础VisualFoxPro有两种工作方式,人机交互方式和程序方式。1.交互方式有两种:(1)命令方式VisualFoxpro的命令方式是利用命令窗口来实现的。用户在命令窗口中输入命令,可实现对数据库的各种操作。(2)菜单方式

这种方式直观、方便。2.程序方式程序是能够完成指定任务的命令序列的组合,可以通过菜单方式或命令方式建立、编辑修改或运行。这组命令以扩展名为.PRG的文件形式保存就叫做程序文件或称为命令文件。与交互式方式相比,采用程序方式有许多好处:

8.1VisualFoxPro的工作方式程序设计的基本步骤包括(1)对问题进行说明,描述程序的目标。(2)分解问题成各独立步骤。(3)编制各模块。(4)测试并完善各模块。(5)组装全部模块。(6)整体测试。

8.2程序文件的建立与编辑8.2.1程序文件的建立与修改命令方式命令格式:MODIFY

COMMAND

[<文件名>]命令功能:建立或编辑修改指定的命令文件,并打开VisualFoxPro6.0文本编辑器,进入命令文件编辑窗口。若文件名是一个已有的文件,则此命令表示打开此文件进行修改;若没有这个文件名,则表示新建一个程序文件,并以此作为程序文件名。

2.以菜单方式

3.在项目管理器中,选定“代码”选项卡中的“程序”项。

4.利用建立、编辑文本文件的工具软件。

5.利用设计工具编写代码:

8.2.2程序文件的保存1.从“文件”菜单中选择“保存”命令或按Ctrl+W键保存文件。若要放弃本次修改,可选择选择“文件”菜单中的“还原”命令或按Esc键。2.若要关闭一个没有保存的命令文件,则会弹出相应对话框,提示用户是保存还是放弃已作的修改。3.若保存了一个由项目管理器创建的程序,则该程序被加入项目中。4.若保存一个尚未命名的新程序,则会打开“另存为”对话框,然后在“另存为”对话框中指定程序文件的存放位置和文件名(*.prg),并单击“保存”命令按钮。程序保存后,可以运行或修改它。8.2.3程序文件的执行1.命令方式命令格式:DO

<命令文件名>命令功能:将指定的命令文件调入内存并从第一条命令语句开始执行。2.菜单方式(1)单击“程序”菜单的“运行”命令,打开“运行”对话框;(2)从文件列表框中选择要执行的命令文件,并单击“运行”命令按钮。3.若程序包含在一个项目中,则在项目管理器中选定它并选择“运行”命令。当程序文件被执行时,文件中包含的命令将被依次执行,直到所有的命令被执行完毕,或者执行到以下命令:(1)CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口;(2)DO<程序>:转去执行另一个程序;(3)RETURN:结束当前程序的执行,返回到调用它的上级程序,若无上级程序则返回到命令窗口;(4)QUIT:退出Visual

FoxPro系统,返回到操作系统。8.3程序中常用的命令8.3.1结构化程序结构化程序由顺序结构、分支结构和循环结构三种基本结构组成。⑴顺序结构:程序执行顺序是根据程序中语句的书写顺序。⑵分支结构:程序执行顺序是根据条件的成立与否,选择执行不同的程序语句。⑶循环结构:程序执行顺序是在条件成立时反复执行某段程序语句。由三种基本结构构成的程序,可以处理任何复杂的问题。VisualFoxPro程序的组成部分从功能上看,VisualFoxPro程序可以分为三个部分:(1)程序的注释部分,一般用于说明程序的功能、文件名等需要说明的有关信息。(2)程序运行环境的设置及初始化部分。(3)数据处理部分。通常任何一个有意义的程序,总是要有一些原始数据,否则,这个程序就没有处理对象。同样,程序运行的结果也有必要显示或打印出来,否则,用户将不知道程序干了一些什么。因此,这部分程序常包括下列三个部分,依次为:提供原始数据部分、数据处理部分、输出结果部分。这部分是程序核心部分。(4)控制返回部分。它控制程序返回到调用该程序的调用处。8.3.2顺序结构例8.1试编程完成下列功能。从键盘上随机输入一个正数,以此数为半径,求圆周长和圆面积,并输出结果。程序如下:*求圆周长和圆面积程序VFP8-1.PRG &&注释语句CLEAR &&清屏语句SETTALKOFF &&系统参数设置语句INPUT"半径="TOR &&输入圆半径值L=2*PI()*R &&计算圆周长S=PI()*R*R &&计算圆面积"圆周长=",L &&显示圆周长值?"圆面积=",S &&显示圆面积值SETTALKON &&恢复参数设置语句RETURN &&返回语句8.3.3分支结构1.IF…ELSE…ENDIF语句语句格式:IF

<条件><语句序列1>[ELSE

<语句序列2>]ENDIF语句功能:判断给定的条件是否成立。成立,则执行语句序列1;否则执行语句序列2。

功能说明:

(1)ELSE是一个可选项。当ELSE子句缺省时,如果条件不成立,将不执行任何语句。直接转向ENDIF后的下一条语句。(2)IF和ENDIF必须成对出现,IF是本结构的入口,ENDIF是本结构的出口。(3)条件语句可以嵌套,但不能出现交叉。在嵌套时,为了使程序清晰、易于阅读,可按缩进格式书写。

例8.2改写例8.1的程序,当输入半径大于零时,计算圆周长和圆面积,否则显示“半径值不能小于等于零”的提示信息。*求圆周长和圆面积程序VFP8-1.PRG

CLEAR SETTALKOFF INPUT"半径="TORIFR>0 L=2*PI()*R S=PI()*R*R

?"圆周长=",L ?"圆面积=",S ELSE?”半径值不能小于等于零”ENDIFSETTALK2.

DOCASE…ENDCASE语句

DOCASE

CASE<条件1>

<语句序列1>

CASE

<条件2>

<语句序列2>

……

CASE<条件n>

<语句序列n>

[OTHERWISE

<语句序列>]ENDCASE语句功能:语句执行时,依次判断CASE后面的条件是否成立。当发现某个CASE后面的条件成立时,就执行该CASE和下一个CASE之间的命令序列,然后执行ENDCASE后面的命令。如果所有的条件都不成立,则执行OTHERWISE与ENDCASE之间的命令序列,然后转向ENDCASE后面的语句。

功能说明:(1)不管有几个CASE条件成立,只有最先成立的那个CASE条件的对应命令序列被执行。DOCASE与第一个CASE之间不能有任何语句。(2)如果所有CASE条件都不成立,且没有OTHERWISE子句,则直接跳出本结构。(3)DOCASE和ENDCASE必须成对出现,DOCASE是本结构的入口,ENDCASE是本结构的出口。(4)DOCASE…ENDCASE语句可以嵌套使用。8.3.4循环结构1.基于条件的循环:DOWHILE–ENDDO语句(1)语句格式:

DO

WHILE

<条件

>

<语句序列1>[LOOP]<语句序列2>[EXIT]<语句序列3>ENDDO(2)执行过程:(3)功能说明:①

如果第一次判断条件时,条件即为假,则循环体一次都不执行。②

如果循环体包含LOOP命令,那么当遇到LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回DOWHILE处重新判断条件。③

如果循环体包含EXIT命令,那么当遇到EXIT时,就结束该语句的执行,转去执行ENDDO后面的语句。

通常LOOP或EXIT出现在循环体内嵌套的选择语句中,根据条件来决定是LOOP回去,还是EXIT出去。

例8.4计算连续自然数之和,并且显示和刚大于1000的最后一个自然数。STORE0TOAA,BBDOWHILEAA<=1000 BB=BB+1 AA=AA+BBENDDO?BB2.基于“计数”的循环:FOR–ENDFOR语句(1)语句格式:FOR<循环变量

>=<初值

>TO<终值

>[STEP<步长>]

<循环体

>

ENDFOR|NEXT(2)执行过程:(3)功能说明:①<循环变量名>既是一个内存变量,也可以是某数组的一个下标变量。若不存在,则自动建立。②<数字表达式1>为循环变量置初值,<数字表达式2>给出循环变量的终值,<数字表达式3>给出循环变量值每次变化的值(缺省STEP子句时,默认为1)。③ENDFOR和NEXT是等价的,都是FOR循环结束语句,选用哪一个都可以。

(1)语句格式:Scan[<范围>][For<条件表达式1>]

[While<条件表达式2>]

<语句序列>

EndScan(2)执行过程:执行该语句时,记录指针自动、依次地在当前表的指定范围内满足条件的记录上移动,对每一条记录执行循环体内的命令,搜索完范围内最后一条记录后,SCAN语句执行完毕。

范围的默认值是ALL

(3)语句功能:①SCAN为循环起始语句,ENDCAN为循环结束语句。

②本语句对范围内满足条件的记录执行<循环体>。默认范围值为ALL。

使用循环语句应注意的几点:(1)DoWhile和EndDo、For和EndFor、Scan和EndScan必须配对使用。

(2)语句序列或循环体可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。在嵌套使用时,注意不要互相交叉(3)循环变量应是数值型的内存变量或数组元素。(4)Exit和Loop命令嵌入在循环体内,不能单独使用

8.4过程及其调用8.4.1定义过程或过程文件过程是以特定的命令开始又以特定的命令结束的模块,被放置在程序文件或过程文件中。

1.定义过程

命令格式:PROCDURE<过程名><命令序列>[RETURN[<表达式>]][ENDPROC]过程定义说明:(1)PROCDURE命令表示一个过程的开始,并命名过程名;(2)过程名必须以字母或下划线开头,字母、数字和下划线的组合;(3)RETURN命令是过程返回命令,当过程执行到RETURN命令时,控制将转回到调用程序(或命令窗口),并返回表达式的值,若省略表达式,则返回逻辑值.T.;

(4)缺省RETURN命令,则在过程结束处自动执行一条隐含的RETURN命令;(5)ENDPROC命令表示一个过程的结束,缺省时,过程结束于下一条PROCDURE命令处或文件结束处。(6)用户也可以自定义函数,格式如下:FUNCTION<函数名><命令序列>[RETURN[<表达式>]][ENDFUNC]2.定义过程文件命令格式:PROCEDURE<过程名1>

<命令序列1>[RETURN[<表达式>]][ENDPROC]……PROCEDURE<过程名n>

<命令序列>[RETURN[<表达式>]][ENDPROC]3.子程序或过程的返回语句

命令格式:RETURN[<表达式>/TOMASTER/TO<过程名>]命令功能:将程序控制权返回给调用程序,并返回表达式值。命令说明:

(1)<表达式>短语:指定返回给调用程序的表达式值。如果省略RETURN命令或省略返回表达式,则自动将“.T.”返回给调用程序。(2)TOMASTER短语:将控制权返回给最外层的调用程序。(3)TO<过程名>短语:将控制权返回给指定的过程。

1.调用过程命令格式:DO<过程名>[IN<程序文件名>][WITH<参数表>]命令功能:执行过程名所指定的子程序。WITH用于主程序和子程序间参数的传递。命令说明:

(1)<过程名>>短语:指定要执行的过程名称。

(2)IN<程序文件名>:

(3)[WITH<参数表>]:指定要传递给程序或过程的参数。

8.4.2调用过程或过程文件2.调用过程文件命令格式:SETPROCEDURETO[<过程文件1>[,<过程文件2>,...]][ADDITIVE]命令功能:打开指定的过程文件。命令说明:(1)ADDITIVE表示并不关闭已打开的过程文件。(2)调用其他命令文件中的过程要先打开此命令文件,才能调用。(3)调用过程文件中的过程。也要先打开过程文件,再用Do<过程名>或

<过程名>()调用。

(4)在主程序中应先打开过程文件,将过程文件中的所有过程都调入内存(打开一个过程文件只算打开了一个文件)。

3.关闭过程文件语句当过程文件不再用时应将其关闭,以节省内存空间。命令格式1:SETPROCEDURETO命令功能:关闭所有已打开的过程文件。命令格式2:RELEASEPROCEDURE<过程文件1>[,<过程文件2>,...]

命令功能:关闭所指定的过程文件。

4.参数传递(1)调用程序向被调用过程传递参数的命令:命令格式1:

DO

<过程名>

WITH

<实参1>[,<实参2>,…]命令格式2:<过程名>

WITH

<实参1>[,<实参2>,…]说明:①DO

WITH语句中的参数也叫实在参数。②实在参数可以是任何类型的常量、变量和表达式,有多个参数时,各参数之间用逗号分隔。

③若参数表中的内存变量与库文件的字段名相同时,则内存变量前应冠以m->,以区别同名字段变量,否则字段变量优先于内存变量。

④参数表中的内存变量必须先定义或赋值才能使用。⑤采用命令格式1,如果实参是常量,称为按值传递,即把实参的值传给形参;如果实参是变量,称为按引用传递,即把实参的地址传给形参;

⑥采用命令格式2,默认情况下都以按值方式传递参数,如果实参是变量,可以通过命令SETUDFPARMS重新设置参数传递的方式。

(2)在过程中接收参数的命令:命令格式1:PARAMETERS

<形参变量1>[,<形参变量2>,…]命令格式2:LPARAMETERS

<形参变量1>[,<形参变量2>,…]说明:①PARAMETERS语句中的参数也叫形式参数,形式参数只能是变量。②PARAMETERS语句只能在过程中使用,且必须作为过程中PROCEDURE语句后的第一条可执行语句。③形参的数目不能少于实参的数目,多余的形参变量初值为逻辑假.F.,形式参数与实在参数要类型对应一致

④PARAMETERS中形式参数默认为私有变量,LPARAMETERS中形式参数默认为局部变量,过程结束后,即被清除。若与其对应的实在参数为变量,则其值可以传回主程序。

变量的作用域指的是变量在什么范围内是有效或能够被访问的,VFP中,以变量的作用域来分,内存变量分三类:公用变量、私有变量及局部变量。

1.公用变量公用变量也称为全局变量,是在主程序和子程序中都有效的变量。建立公用变量命令如下。命令格式:PUBLIC

<内存变量名1>[,<内存变量名2>,<内存变量名3>...]命令功能:定义公用变量。8.4.3变量的作用域(3)在执行CLEARMEMORY、

RELEASE、QUIT等命令后,公共变量才被释放;2.私有变量私有变量是在程序中直接使用而由系统自动隐含建立的变量。私有变量可以在使用中建立,如:STORE23TOXY1说明:私有

温馨提示

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

评论

0/150

提交评论