首页 《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第5章 程序设计基础

《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第5章 程序设计基础

举报
开通vip

《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第5章 程序设计基础第5章 结构化程序设计本章要点1.程序设计概述2.程序文件操作3.程序的基本结构4.函数、过程与子程序5.变量的作用域与参数传递1.程序设计概述程序是为了达到某一目标,由一系列相应语句或命令有序排列而成的集合。VisualFoxPro的程序是以扩展名为.PRG的形式存储在磁盘文件中。OPENDATABASExsglIFFILE("xsda.dbf")USExsdaBROWSEENDIFCLOSEDATABASE可以看出,程序方式有如下优点: 对于相同的要求,一次书写,多次执行; 若要求发生变化,...

《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第5章 程序设计基础
第5章 结构化程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 本章要点1.程序设计概述2.程序文件操作3.程序的基本结构4.函数、过程与子程序5.变量的作用域与参数传递1.程序设计概述程序是为了达到某一目标,由一系列相应语句或命令有序排列而成的集合。VisualFoxPro的程序是以扩展名为.PRG的形式存储在磁盘文件中。OPENDATABASExsglIFFILE("xsda.dbf")USExsdaBROWSEENDIFCLOSEDATABASE可以看出,程序方式有如下优点: 对于相同的要求,一次书写,多次执行; 若要求发生变化,可被修改并重新运行; 可以完成在命令窗口中无法完成的任务; 可以通过调用其他程序完成复杂的任务等。2.程序文件的操作VisualFoxPro程序文件,是一个以(.PRG)为扩展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建和编辑VisualFoxPro程序文件。这些文本编辑工具,可以是VisualFoxPro系统提供的内部编辑器,也可以是其它常用文本编辑软件。在文本编辑环境下,不仅可以对程序文件进行输入和修改,还可以实现字符串查找、替换、删除和编辑功能。(1)程序文件建立1)命令方式MODIFYCOMMAND<程序文件名>2)菜单方式打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;在“程序文件”编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。例如:编制程序CX1.PRG,显示XSDA.DBF中“男”同学信息。(2)程序文件的调用调用程序文件,即运行程序文件,是程序文件建立的最终目的。在VisualFoxPro系统中,调用程序文件有很多 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,在这里仅介绍其中两种方法。1)命令方式在“命令”窗口中,输入如下命令,则程序文件被调用。DO<程序文件名> 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 :如果没有指定扩展名,系统按:.EXE→.APP→.FXP→.PRG顺序执行。2)菜单方式以菜单方式调用程序文件,操作方法如下:(1)在VisualFoxPro系统主菜单下,打开“程序”菜单,选择“运行”。(2)在“运行”窗口,输入被调用的程序文件名即可。3.程序的基本结构VisualFoxPro系统提供的命令丰富,且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。VisualFoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。常见的控制结构如下:(1)顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。AB一个程序一般都包含数据输入、数据处理和数据输出三个部分。数据的输入和输出代码设计是编写许多程序都要面临的工作。(1)注释语句NOTE|*<注释内容>&&<注释内容>(2)清屏语句CLEAR(3)终止语句CANCELDO<文件名>RETURNQUIT(4)简单的键盘输入语句顺序结构1)WAIT语句【格式】WAIT[<字符 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式>][TO<内存变量>][WINDOW[AT<行号,列号>]][TIMEOUT秒数]【功能】暂停程序的执行,显示字符表达式的值作为提示信息,按任意键或单击鼠标时继续程序的执行。【说明】①<字符表达式>值为空,不显示任何提示信息。省略则显示默认的信息"按任意键继续……"。②<内存变量>为字符型,用来保存用户键入的字符。若用户按的是Enter键或单击了鼠标,那么<内存变量>中保存的将是空串。若不选TO<内存变量>短语,输入的单字符不保留。③一般情况下,提示信息被显示在VisualFoxPro主窗口或当前用户自定义窗口里。如果指定了WINDOW子句,则会出现一个WAIT提示窗口,用以提示信息。提示窗口一般定位于主窗口的右上角,也可用AT短语指定其在主窗口中的位置。④TIMEOUT子句用来设定等待时间(秒数)。一旦超时就不再等待用户按键,自动往下执行。2)ACCEPT语句【格式】ACCEPT[<字符表达式>]TO<内存变量>【功能】该命令等待用户从键盘输入字符串,当用户以回车键结束输入时,系统将该字符串存入指定的内存变量,程序继续运行。【说明】①如果选用<字符表达式>,那么系统会首先显示该表达式的值,作为提示信息。②该只能接收字符串。用户在输入字符串时,不需要加定界符,否则,系统会把它当作字符串的一部分。③如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。3)INPUT语句【格式】INPUT[<字符表达式>]TO<内存变量>【功能】等待用户从键盘输入数据,用户可以输入任意合法的表达式。当用户以回车键结束输入时,系统将表达式的值存入指定的内存变量中,程序继续运行。【说明】①<字符表达式>作为提示信息可省。②输入的数据可以是常量、变量,也可以是更为一般的表达式。但不能不输入任何内容直接按回车键。③输入字符串时必须加定界符,输入逻辑型常量时要用圆点定界(如.T.、.F.),输入日期时间型常量时要用大括号(如{^2001-03-01})。分支结构分支结构形式有如下三种:(1)单向分支单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。1)语句格式:IF<条件表达式><命令行序列>ENDIF2)语句功能:该语句首先计算<条件表达式>的值,当<条件表达式>的值为真时,执行<命令行序列>;否则,执行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后面的第一条命令。(4)使用分支语句应注意的几点1)IF…ENDIF和DOCASE…ENDCASE必须配对,2)<条件表达式>的值必须是逻辑值。3)<命令行序列>可以由一个或多个命令组成,还可是条件控制语句组成的嵌套结构。4)DOCASE与第一个CASE<条件表达式>之间不应有任何命令。且当有CASE项的<条件表达式>值为真时,只执行第一个<条件表达式>值为真后的<命令行序列>,然后执行ENDCASE的后面的第一条命令。例题1:邮费问题0.8x≤80y=0.8+0.05(x-80)x>80例题2:查询问题任意输入一个学生的姓名,查询学生的基本情况例题3:菜单问题1.显示表结构2.显示表信息3.退出查询循环结构常用的循环语句有以下三种形式:(1)“当”型循环控制语句“当”型循环控制语句,即根据条件表达式的值,决定循环体内语句的执行次数。1)语句格式:DOWHILE<条件表达式><命令行序列>[LOOP][EXIT]ENDDO2)语句功能:该语句通过<条件表达式>的值来控制循环。执行语句时,反复判断<条件表达式>的值,当<条件表达式>的值为“真”时,执行<命令行序列>;否则,结束循环,并执行ENDDO后面的第一条命令。(2)“计数”型循环控制语句“计数”型循环控制语句,即根据用户设置的循环变量的初值、终值和步长,决定循环体内语句的执行次数据。1)语句格式:FOR<循环变量>=<初值>TO<终值>[STEP<步长>]<命令行序列>[LOOP][EXIT]ENDFOR|NEXT2)语句功能:该语句用<循环变量>来控制<命令行序列>的执行次数。执行语句时,首先将<初值>赋给<循环变量>,然后判断<循环变量>是否大于或小于<终值>,若结果为“真”,则结束循环,执行ENDFOR后面的第一条命令;否则,执行<命令行序列>,<循环变量>自动按<步长>增加或减少,再重新判断<循环变量>当前的值是否大于或小于<终值>,直到其结果为真。(3)“指针”型循环控制语句“指针”型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。1)语句格式:SCAN[<范围>][FOR<条件1>][WHILE<条件2>]<命令行序列>[LOOP][EXIT]ENDSCAN2)语句功能:该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF()的值,若其值为“真”,则结束循环,否则,结合<条件1>或<条件2>,执行<命令行序列>,记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF()的值,直到函数EOF()的值为真时结束循环。(4)使用循环语句时应注意的几点:1)DOWHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须配对使用。2)<命令行序列>可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。3)<循环变量>应是数值型的内存变量或数组元素。4)EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP的功能是转回到循环的开始处,重新对“条件”进行判断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN命令,它可以改变<命令行序列>中部分命令的执行次数。EXIT、LOOP可以出现在<命令行序列>的任意位置。例题4:假设我国人口增长率为7‰,按现有人口13亿计算,多少年后达26亿。例题5:修改前面的查询问题、菜单问题程序,使之可多次选择。例题6:求1-100之间的数据和例题7:排序问题例题8:矩阵问题例题9:素数问题(乘法口诀表)例题10:统计男女生人数4.子程序、过程与自定义函数结构化的程序设计方法通常将一个复杂的规模较大的程序系统划分为若干个功能相关又相对独立的一个个较小的模块,再把这些模块划分为更小的用几十行语句实现的简单模块。将一个应用程序划分成一个个功能简单、单一的模块程序,不仅便于程序的开发,也利于程序的阅读和维护。模块是一个相对独立的程序段,它可以被其他模块所调用,也可以去调用其他的模块。通常,把被其他模块调用的模块称为子程序,把调用其他模块而没有被其他模块调用的模块称为主程序。在VisualFoxPro中,模块可以是命令文件,也可以是过程。VisualFoxPro通过PROCEDURE命令、FUNCTION命令以及其它相关的命令为这样的模块化设计提供支持。(1)过程与过程调用1)过程定义【格式】PROCEDURE<过程名>[PARRAMETERS∣LPARRAMETERS<参数列表>]<过程体>[RETURN]ENDPROC【说明】①PROCEDURE表示一个过程定义开始,同时给过程命名。②第二行说明过程可以接收的参数,各个参数之间用逗号分隔。参数说明必须紧跟在PROCEDURE的下一行。PARAMETERS说明的是私有变量,LPARAMETERS说明的是局部变量。没有参数传递时,本行可以省略。③ENDPROC表示一个过程的结束,如果缺省ENPROC那么过程结束于下一条PROCEDURE命令或文件结尾处。④当过程执行到RETURN命令时,控制将返回到调用程序(或命令窗口),并返回表达式的值。如果缺省RETURN命令,则在过程结束处自动执行一条隐含的RETURN命令。2)过程调用过程可以放置在程序文件代码的后面,也可以保存在称为过程文件的单独文件里。过程文件的建立仍使用MODIFYCOMMAND命令,文件的默认扩展名还是.PRG。过程文件里只包含过程,这些过程能被任何其他程序所调用。在调用过程文件中的过程之前首先要打开过程文件。打开过程文件的命令格式为:【格式】SETPROCEDURETO[<文件1>[,<文件2>,…]][ADDITIVE]【说明】打开一个或多个过程文件。一旦一个过程文件被打开,那么该过程文件中的所有过程都可以被调用。如果选用ADDITIVE,那么在打开过程文件时,并不关闭原先已打开的过程文件。关闭过程文件的命令格式为:SETPROCEDURETO上述格式将关闭所有打开的过程文件,如果不想一并关闭所有过程文件,而要关闭个别过程文件,可用如下格式的命令:【格式】RELEASEPROCEDURE<文件1>[,<文件2>,…]调用过程的格式有两种:【格式1】DO<过程名>[WITH<参数列表>]【格式2】<过程名>[(参数列表)]【说明】过程允许递归调用,但<过程名>不能包含扩展名。(2)自定义函数1)函数定义【格式】FUNCTION<函数名>[PARRAMETERS∣LPARRAMETERS<参数列表>]<函数体>[RETURN[<表达式>]]ENDFUNC【说明】①FUNCTION表示一个函数定义开始,同时给函数命名。ENDFUNC表示函数定义结束。②第二行参数说明部分与过程的参数说明部分类同,另外,VisualFoxPro规定参数说明也可以放在函数名后的括号内。③函数体是用户编写的命令序列。④RETURN给出函数的返回值,可以放在函数定义中的任何地方。省略时,函数返回.T.。2)函数调用用户自定义函数的调用有三种形式,一是可以象系统函数一样把函数放在表达式中,函数所需的参数放在函数名后的括号内,函数的返回值参与表达式的计算。函数允许递归调用。如果函数没有返回值,可以采用如下两种形式调用函数:=<函数名>([<参数列表>])或DO<函数名>[WITH<参数列表>]例:编制求n!的自定义函数编制已知三角形三边,求三角形面积自定义函数编制将系统日期转变成中文日期格式的自定义函数,例如:将05/14/03变成2003年5月14日。5.变量的作用域与参数传递(1)变量的作用域程序设计离不开变量。一个变量除了类型和取值之外,还有一个重要的属性就是它的作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在VisualFoxPro中,若以变量的作用域来分,内存变量可分为公共变量、私有变量和局部变量三类。1)公共变量在任何模块中都可以使用的变量称为公共变量。公共变量要先建立后使用,可用PUBLIC命令建立。【格式】PUBLIC<内存变量表>【说明】建立公共的内存变量,并为它们赋默认初值逻辑假.F.。公共变量一旦建立就一直有效,即使程序运行结束返回到命令窗口也不消失。只有当执行CLEARMEMORY、RELEASE、QUIT等命令后,公共变量才被释放。在命令窗口中直接使用而系统自动隐含建立的变量也是公共变量。2)私有变量【格式1】PRIVATE<内存变量表>【格式2】PRIVATEALL[LIKE|EXCEPT<通配符>]在程序中直接使用(没有通过PUBLIC和LOCAL命令事先声明)而由系统自动隐含建立的变量也是私有变量。私有变量的作用域是建立它的模块及其下属的各层模块。一旦建立它的模块程序运行结束,这些私有变量将自动清除。可以在子程序中使用PRIVATE命令隐藏主程序中可能存在的变量,使得这些变量在子程序中暂时无效。3)局部变量局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。当建立它的模块程序运行结束时,局部变量自动释放。局部变量用LOCAL命令建立:【格式】LOCAL<内存变量表>【说明】该命令建立指定的局部内存变量,并为它们赋初值逻辑假.F.。由于LOCAL和LOCATE前四个字母相同,故这条命令的命令动词不能缩写。局部变量要先建立后使用。(2)参数传递模块程序可以接收调用程序传递过来的参数,并能够根据接收到的参数控制程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 或对接收到的参数进行处理,从而大大提高模块程序功能设计的灵活性。接收参数的命令有PARAMETERS和LPARAMETERS。PARAMETERS命令声明的形参变量被看作是模块程序中建立的私有变量,LPARAMETERS命令声明的变量被看作是模块程序中建立的局部变量。除此之外,两条命令没有什么不同。不管是PARAMETERS命令还是LPARAMETERS命令,都应该是模块程序的第一条可执行命令。相应地,调用模块程序的格式为:【格式1】DO<文件名>|<过程名>WITH<实参1>[,<实参2>]【格式2】<文件名>|<过程名>(<实参1>[,<实参2>])【说明】实参可以是常量或变量,也可以是一般形式的表达式。调用模块程序时,系统会自动把实参传递给对应的形参。形参的数目不能少于实参的数目,否则系统会产生运行时错误.如果形参的数目多于实参的数目,那么多余的取初值逻辑假.F.。采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋值给相应的形参变量。这种情形称为按值传递。如果实参是变量,那么传递的将不是变量的值,而是变量的地址。这时形参和实参实际上是同一个变量(它们的名字可能不同),在模块程序中对形参变量值的改变,同样是对实参变量值的改变。这种情况称为按引用传递(又称为按地址传递)。采用格式2调用模块程序时,默认情况下都以按值方式传递参数。如果实参是变量,可以通过下列命令重新设置参数传递的方式。该命令的格式为:SETUDFPARMSTOVALUE|REFERENCE思考题1.VisualFoxPro6.0有几种工作方式?2.菜单和命令两种工作方式,各有什么优点?3.程序文件的基本结构是什么,使用时需要注意什么?4.过程和过程文件有什么不同?5.如何提高命令的使用效率?6.如何尽量减少程序中的语法错误?7.如何提高程序的可维护性?实验题目实训8程序设计——基本控制结构1.掌握建立程序文件建立、修改和运行的方法;2.掌握顺序结构、分支结构和循环结构的语法结构及其使用;3.能正确选择合适的基本结构编写程序,理解循环嵌套的作用;4.掌握程序的调试方法。实训9程序设计——函数、过程及其调试1.掌握子程序、过程及自定义函数的的定义与使用方法;2.熟悉全局变量、局部变量与私有变量的区别,能正确使用值传递与引用传递。3.掌握程序的调试方法。(详见配套实训)
本文档为【《Visual FoxPro程序设计(第二版)》-电子教案-王永国 第5章 程序设计基础】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
科技制造的艺术美
暂无简介~
格式:ppt
大小:470KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-11-02
浏览量:20