《VisualFoxPro程序设计》第6章结构化程序设计.ppt
《《VisualFoxPro程序设计》第6章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《《VisualFoxPro程序设计》第6章结构化程序设计.ppt(81页珍藏版)》请在三一文库上搜索。
1、Visual FoxPro 6.0 程序设计.课件,-1-,第6章 结构化程序设计,6.1 程序文件 6.2 程序控制结构 6.3 过程与过程调用 6.4 程序的调试,提示:单击各个标题前的动画符号“ ” ,链接到相应的章节。,Visual FoxPro 6.0 程序设计.课件,-2-,在程序设计的方法中,结构化程序设计是程序设计的基本方法。结构化程序设计的基本思想是逐步求精、模块化和自顶向下,将一个复杂的程序系统的设计任务分成多个易于控制和处理的子任务,每个子任务都是可独立编程的子程序、过程或函数模块。其程序控制结构有顺序结构、分支结构和循环结构三种。,Visual FoxPro 6.0 程
2、序设计.课件,-3-,6.1 程序文件,6.1.1 程序文件建立 6.1.2 简单的交互方式输入输出命令 6.1.3 应用程序的调试与执行,Visual FoxPro 6.0 程序设计.课件,-4-,6.1 程序文件,前面已经介绍了Visual FoxPro的交互式操作方式:菜单操作方式和命令操作方式。这两种方式对于需要大量重复操作的数据库管理工作来说,效率低下;而且这两种方式都要求用户熟练掌握Visual FoxPro中的各种数据操作,这在实际应用环境中并不现实。因此,Visual FoxPro提供了程序文件方式来管理数据库,即通过程序文件编辑工具,将数据库操作的命令、函数等编制成一个有序序
3、列存放在程序文件中,然后通过菜单操作方式或命令操作方式运行该程序文件,即可完成相应的一系列操作,程序文件的扩展名为.PRG。,Visual FoxPro 6.0 程序设计.课件,-5-,6.1.1 程序文件的建立,Visual FoxPro中编写的代码都存放在纯文本格式的文件中,因此任何可以建立、编辑文本文件的工具都可以创建和编辑Visual FoxPro程序文件,通常使用的是Visual FoxPro提供的内部编辑器。程序文件建立的方法有多种,常用的有下列3种方法。 1.菜单方式 单击“文件”|“新建”命令,在弹出的“新建”对话框中,选择文件类型为“程序”,然后单击“新建文件”按钮,即可打开
4、如图所示的程序编辑窗口。,在编辑窗口中可以逐条输入命令,程序文件建立好后,可以单击“文件”“保存”命令来保存该程序文件。,Visual FoxPro 6.0 程序设计.课件,-6-,2.项目管理器方式,(1)单击“文件”|“新建”命令,在弹出的“新建”对话框中,选择文件类型为“项目”,然后单击“新建文件”按钮,在打开的“创建”对话框中输入项目文件名后,单击“保存”按钮,即可打开“项目管理器”对话框。 (2)在“项目管理器”对话框的“全部”选项卡中,单击“代码”前的“+”号展开“代码”文件夹,选择“程序”选项,然后单击“新建”按钮,如图所示,也可打开程序编辑窗口。,Visual FoxPro 6
5、.0 程序设计.课件,-7-,3.命令方式,命令格式如下: MODIFY COMMAND 在命令窗口中输入该命令后,也会打开程序编辑窗口。 其中各参数的说明如下: 如果命令中给出,若该文件不存在,则打开以该文件名为标题的程序编辑窗口;若该文件已存在,则在程序编辑窗口中打开该文件,可以重新进行编辑修改。 如果命令中缺省,则会打开默认以“程序1”、“程序2”为标题的程序编辑窗口,在保存时,用户应重新为程序文件命名。 若中未给出包含盘符和路径的绝对路径,默认保存在当前文件中;中可以缺省程序文件的扩展名,系统会自动加上扩展名.PRG。,Visual FoxPro 6.0 程序设计.课件,-8-,6.1
6、.2 简单的交互方式输入输出命令,在程序的执行过程中,经常需要从键盘输入数据,或将运行结果在屏幕上显示出来,这就需要在程序设计中使用到交互式的输入输出命令。 1.输入单字符命令 输入单字符命令的格式如下: WAIT TO 其中各参数的说明如下: 表示在等待用户输入时,在屏幕上显示的提示内容,通常是一个字符串,需用单引号、双引号或方括号作为定界符括起来,也可以是字符串变量。若省略该项,屏幕上显示的是系统默认的提示信息“按任意键继续”。 TO 表示将输入的单个字符赋给内存变量。输入字符时,不需输入字符的定界符,否则内存变量得到的是第一个定界符;若未输入字符就按回车键或单击鼠标,则内存变量得到空值。
7、若省略该项,则输入的字符不能保留。 注意:该命令一般只是为了显示提示信息,等待用户按任意键后继续执行。,Visual FoxPro 6.0 程序设计.课件,-9-,2.输入字符串命令,输入字符串命令的格式如下: ACCEPT TO 其中各参数的说明如下: 表示在等待用户输入时,在屏幕上显示的提示内容,通常是一个字符串,需用单引号、双引号或方括号作为定界符括起来,也可以是字符串变量。 TO 表示将输入的字符串赋给内存变量。输入字符串时,不需输入字符串的定界符,否则定界符也会作为字符串的一部分被赋给内存变量;若未输入字符就按回车键或单击鼠标,则内存变量得到空值。若省略该项,则输入的字符不能保留。
8、【例6-1】编写程序文件prog.prg,要求根据键盘输入的学生姓名,显示该学生的学生信息。 分析:要在表中查询满足条件的记录,首先应打开该表,根据题目要求,本题应先打开的是学生信息表student,再用ACCEPT命令将所输入的学生姓名存放到内存变量中,再根据该值在表中进行查询并显示,所有操作结束后应关闭该表。,Visual FoxPro 6.0 程序设计.课件,-10-,程序编辑窗口的输入如图6-3所示,运行时在屏幕中输入“王燕燕”,结果如图6-4所示。,图6-3 程序编辑窗口的输入,图6-4 结果显示,Visual FoxPro 6.0 程序设计.课件,-11-,3.输入任意数据命令,输
9、入任意数据命令的格式如下: INPUT TO 其中各参数的说明如下: 表示在等待用户输入时,在屏幕上显示的提示内容,通常是一个字符串,需用单引号、双引号或方括号作为定界符括起来,也可以是字符串变量。 TO 表示将输入的数据赋给内存变量。INPUT命令可以接受字符型、数值型、逻辑型、日期型和日期时间型数据,可以接受常量、变量或一般表达式。数值型常量可直接输入,字符型常量必须加定界符,逻辑型常量必须加圆点定界符(如.T.或.F.),日期型和日期时间型常量既可按严格格式输入,也可利用相应的转换函数输入(如2008/5/27、2008-5-27 11:14:20a、CTOD(“05-27-08“)、C
10、TOT(“05-27-08 11:14:20a“))。若未输入直接按回车键,屏幕会继续显示提示信息等待输入。,Visual FoxPro 6.0 程序设计.课件,-12-,4.非格式输出命令,该命令的格式如下: ?|? 该命令的功能是在Visual FoxPro的主窗口中换行或不换行输出中各个表达式的值,其中,?表示换行输出,即中各个表达式的值在当前主窗口中最后一次输出位置的下一行输出;?表示不换行输出,即中各个表达式的值在当前主窗口中最后一次输出位置后直接输出,并不换行。,Visual FoxPro 6.0 程序设计.课件,-13-,5.格式输入输出命令,该命令格式如下: SAY GET R
11、EAD 其中各参数的说明如下: :表示在Visual FoxPro的主窗口中指定的位置输入输出。起始行列号均为0,行和列可以是常量值,也可以是数值型表达式。 SAY GET :如果后面没有READ选项,将在指定的位置输出表达式和变量的值;如果后面有READ选项,则对变量的原有值进行编辑修改,并将结果保存在变量中。其中的变量可以是已赋值的内存变量,也可以是字段变量,类型可以是数值型、字符型、逻辑型、日期型、日期时间型、备注型、通用型等。,Visual FoxPro 6.0 程序设计.课件,-14-,图6-5 程序编辑窗口的输入,图6-6 结果显示,【例6-2】编写程序prog2.prg,使用格式
12、输入输出命令,修改学生信息表student中指定学号的学生记录的字段值。 程序编辑窗口的输入如图6-5,运行时在屏幕中输入“王燕燕”,运行结果如图6-6。,Visual FoxPro 6.0 程序设计.课件,-15-,6.其他辅助命令,(1)清屏命令 清屏命令主要用于清除VFP主窗口中的内容,清除完后光标回到窗口的左上角,该命令格式如下:CLEAR (2)终止程序命令 该命令的功能是终止程序的运行,返回VFP的主窗口,同时释放所有私有变量,其格式如下:CANCEL (3)退出系统命令 该命令的功能是退出VFP系统,回到操作系统,退出前将关闭所有文件,清除所有变量,其格式如下:QUIT (4)设
13、置会话状态命令 该命令的格式如下:SER TALK ON|OFF 该命令用于设置是否显示命令执行过程中的状态信息,默认时为SET TALK ON,即打开会话状态。通常在执行单命令或调试程序时,设置为ON状态;而在程序执行时设置为OFF状态。,Visual FoxPro 6.0 程序设计.课件,-16-,6.1.3 应用程序的执行,运行程序文件的方法有多种,常用的方法主要有以下3种: 单击“程序”|“运行”命令,在打开的“运行”对话框中选择要运行的程序文件,然后单击“运行”按钮即可运行该程序文件。 在“项目管理器”对话框的“全部”选项卡中,先选中要运行的程序,然后单击“运行”按钮,即可执行该程序
14、。 在命令窗口中输入命令:DO ,也可以执行相应的程序文件。 事实上,在程序输入完毕后,不关闭程序编辑窗口,直接单击工具栏的“运行”按钮可以直接运行程序,若程序无语法错误,可以得到运行结果,若程序中存在语法错误,则会弹出“程序错误”对话框,给出错误的提示信息,此时,可以单击“取消”按钮,或按【Esc】键终止程序的运行,再根据错误提示修改程序。,Visual FoxPro 6.0 程序设计.课件,-17-,6.2 程序控制结构,6.2.1 顺序结构程序设计 6.2.2 分支结构程序设计 6.2.3 循环结构程序设计,Visual FoxPro 6.0 程序设计.课件,-18-,6.2程序控制结构
15、,程序的控制结构包括顺序结构、分支结构和循环结构3种,每一种控制结构可以包含一个或多个语句,任何程序都是由这3种基本控制结构构成的。,Visual FoxPro 6.0 程序设计.课件,-19-,6.2.1 顺序结构,顺序结构是程序设计中最简单、最常用的基本结构,在该结构中,程序按照命令语句书写的先后顺序依次执行,该结构的流程图如图6-7所示。顺序结构是任何程序的主体基本结构,在分支结构和循环结构内部,也常以顺序结构作为其子结构,前面介绍的例子使用的都是顺序结构。 顺序结构的基本组成语句是数据的输入输出、赋值语句等,数据的输入和输出已在上一节介绍,下面介绍顺序结构中常用的赋值语句和语句的续行与
16、注释功能。,Visual FoxPro 6.0 程序设计.课件,-20-,1.赋值语句,程序设计中经常要使用变量,变量在使用之前需要设定一个初始值,使用过程中也可能要重新赋值,因此可以使用赋值语句将指定的值赋给变量或对象的某个属性,赋值语句主要有如下两种格式: (1)使用赋值符号“=” 该语句的格式如下:= 该语句的意思是将表达式的值计算出来后赋给变量名所代表的存储单元。 (2)使用STORETO命令 该命令的格式如下:STORE TO 该命令是将表达式的值计算出来后赋值变量名表中的每个变量。如:STORE 3*5 TO a,b,c,d 是将变量a,b,c,d同时赋值为15,Visual Fo
17、xPro 6.0 程序设计.课件,-21-,在使用赋值语句时需要注意以下几点: 应注意区分赋值符号与数学中的等号。a=3应读作“将数值3赋给变量a”,a=a+1表示将原来a的值加上1后再放到原来a的存储单元中,即将原来a的值加上1后再赋给a。因此,下面两个语句的意思是不同的: X=y &表示将y的值赋给x y=x &表示将x的值赋给y 若要对日期型或日期时间型内存变量赋值,如果表达式是同样类型的常量,必须用花括号“ ”括起来并在前面加一个“”符号,如果表达式是字符串,则应用转换函数将其转换为相应的类型。 例如:t1=2008/5/27 t2=2008-5-27 11:14:20a t3=CTO
18、D(“05-27-08“) t4=CTOT(“05-27-08 11:14:20a“) 赋值符号的左边只能是变量,不能是表达式,如x+y=z是错误的赋值语句。,Visual FoxPro 6.0 程序设计.课件,-22-,2.语句的续行,当一条语句很长时,在程序编辑窗口中书写或阅读都不方便,例如: select top 50 percent 学号,姓名,身高,year(出生日期) 出生年份from student order by 出生年份 desc,身高 这时,为了便于书写和理解,可以使用语句的续行功能,用分号“;”将较长的语句分为两行或多行。因此上述语句可以改写为: select top
19、50 percent 学号,姓名,身高,year(出生日期) 出生年份; from student; order by 出生年份 desc,身高 注意:作为续行符的分号只能出现在行尾。,Visual FoxPro 6.0 程序设计.课件,-23-,3.语句的注释,为了提高程序的可读性,通常在程序的适当位置加上相应的注释,Visual FoxPro中提供了两种注释语句。 (1)程序注释 该语句的格式如下:NOTE|* 该语句通常单独放置一行,用于对程序进行注释,程序运行时,不执行以NOTE或*开头的行。 (2)行注释 语句格式如下:& 该语句通常放在某行命令之后,用于对该行命令进行注释。 注意:
20、不能在命令语句行的续行分号后面加入注释。,Visual FoxPro 6.0 程序设计.课件,-24-,6.2.2 分支结构,分支结构也称为选择结构,是在程序执行时,根据不同的条件,选择执行不同的语句。Visual FoxPro中提供了两种分支结构语句,分别是IF语句和DO CASE语句。 1.IF语句 IF语句主要有两种形式:单分支形式和双分支形式。 (1)单分支形式 单分支形式的格式如下: IF ENDIF 注意:IF和ENDIF必须成对使用,并分两行书写。,Visual FoxPro 6.0 程序设计.课件,-25-,其中条件表达式是关系表达式或逻辑表达式,语句执行时,首先计算条件表达式
21、的值,若为真(.T.)则执行语句块中的语句,否则不执行语句块。无论是否执行语句块中的语句,程序都将转向ENDIF后面的下一条语句继续执行。 流程图如图。,Visual FoxPro 6.0 程序设计.课件,-26-,【例6-3】从键盘上输入两个数x和y,比较大小,若x小于y,则交换两个变量值,使得x不小于y。 分析:根据题目要求,若满足“x小于y”这个条件,则执行“交换两个变量值”的操作,因此IF后面的应是“x,应是“交换两个变量值”。 由于计算机内存有易被覆盖的特点,因此计算机中交换两个变量的值只能借助于第三个中间变量来间接交换,如图6-9所示,则交换两个变量值的代码应为: t=x x=y
22、y=t,Visual FoxPro 6.0 程序设计.课件,-27-,本题程序代码如下: *prog3.prg input “x=“ to x input “y=“ to y if xy t=x x=y y=t endif ?“x=“,x ?“y=“,y,Visual FoxPro 6.0 程序设计.课件,-28-,(2)双分支形式,双分支格式: IF ELSE ENDIF 语句执行时,根据条件表达式的值选择执行两个语句块中的一个。若条件表达式的值为真(.T.),则执行IF后面的语句块1,然后执行ENDIF后面的语句;若条件表达式的值为假(.F.),则执行ELSE后面的语句块2,然后执行END
23、IF后面的语句。其流程图如图6-10所示。,Visual FoxPro 6.0 程序设计.课件,-29-,用双分支实现,其程序代码如下: if x=0 y=cos(x)+sqrt(x2+1) else y=log(x2)+x-10 endif 也可用单分支实现,其程序代码如下: y=cos(x)+sqrt(x2+1) if x0 y=log(x2)+x-10 endif,【例6-4】计算分段函数:,Visual FoxPro 6.0 程序设计.课件,-30-,(3)IF语句的嵌套,IF语句的上述两种形式中的语句块可以包含任何合法的VFP语句,当然也可以包含另一条IF语句,这就构成了IF语句的嵌
24、套,利用IF语句的嵌套可以实现多分支的选择结构, 【例6-5】从键盘上输入3个数a、b、c,求这3个数的最大值并输出。 分析:假设ab且ac,则最大值肯定是a,若这个条件不满足,而所满足的条件是ba且bc,则最大值肯定是b,否则最大值肯定是c。,Visual FoxPro 6.0 程序设计.课件,-31-,程序代码如下:,*prog5.prg input “请输入a的值“ to a input “请输入b的值“ to b input “请输入c的值“ to c if ab and ac t=a else if ba and bc t=b else t=c endif endif ?“三个数中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro程序设计 VisualFoxPro 程序设计 结构
链接地址:https://www.31doc.com/p-2152688.html