结构化程序设计课件.ppt

上传人:石*** 文档编号:47503235 上传时间:2022-10-02 格式:PPT 页数:73 大小:2.53MB
返回 下载 相关 举报
结构化程序设计课件.ppt_第1页
第1页 / 共73页
结构化程序设计课件.ppt_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《结构化程序设计课件.ppt》由会员分享,可在线阅读,更多相关《结构化程序设计课件.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、结构化程序设计第1页,此课件共73页哦1 1、VFPVFP数据库管理系统提供了交互执行和程序执行二种工作方式。数据库管理系统提供了交互执行和程序执行二种工作方式。所所谓谓程程序序执执行行方方式式,就就是是将将实实现现某某一一功功能能的的VFPVFP命命令令序序列列,在在编编辑辑器器中中编编成成特特定定的的程程序序文文件件,存存放放在在磁磁盘盘中中,其其文文件件扩扩展展名名为为PrgPrg。当当我们需要实现这一功能时,就执行该程序。我们需要实现这一功能时,就执行该程序。2 2、程序文件编辑的注意事项、程序文件编辑的注意事项输入程序时要注意以下三点:输入程序时要注意以下三点:按回车键表明完成一条命

2、令(语句)的输入。按回车键表明完成一条命令(语句)的输入。一一条条命命令令(语语句句)可可以以在在一一行行写写完完,也也可可以以分分多多行行写写完完,当当分分多多行行写写时时,除最后一行外,每行结尾处放入一个除最后一行外,每行结尾处放入一个分号(;)分号(;),表明下行继续。,表明下行继续。在文本输入窗口中,输入程序时应注意各关键符号为在文本输入窗口中,输入程序时应注意各关键符号为英文状态英文状态。(4)(4)可以利用鼠标器和键盘,在编辑窗口中完成各种编辑操作。可以利用鼠标器和键盘,在编辑窗口中完成各种编辑操作。9.1 9.1 程序文件的建立、执行和编译程序文件的建立、执行和编译第2页,此课件

3、共73页哦一、一、程序文件的建立程序文件的建立 1 1命令方式命令方式 Modify Command Modify Command 2 2菜单方式菜单方式 单击系统菜单单击系统菜单“文件文件”、“新建新建”,弹出,弹出“新新 建建”窗口。窗口。在在“新建新建”窗口中,选择窗口中,选择“程序程序”、“新建文新建文 件件”,进入,进入“程序文件编辑程序文件编辑”窗口。窗口。在在“程序文件编辑程序文件编辑”窗口中,逐条输入命令行。窗口中,逐条输入命令行。结束后,单击系统菜单结束后,单击系统菜单“文件文件”、“保存保存”,在,在 窗口的窗口的“保存文档为:保存文档为:”对话框中,输入程序文对话框中,输

4、入程序文 件名,默认的文件类型为件名,默认的文件类型为*.Prg.Prg,单击,单击“保存保存”按钮,建立程序文件的操作结束。按钮,建立程序文件的操作结束。第3页,此课件共73页哦二、二、程序文件的执行程序文件的执行 程序文件保存在磁盘上,在需要运行时可从磁盘程序文件保存在磁盘上,在需要运行时可从磁盘调入内存执行。调入内存执行。注意:程序运行后,会自动产生一个文件类型注意:程序运行后,会自动产生一个文件类型为为.Fxp.Fxp的同名的编译程序。的同名的编译程序。1 1命令方式命令方式 DoDo程序文件名程序文件名2 2菜单方式菜单方式 单击系统菜单的单击系统菜单的“程序程序”、“运行运行”,在

5、弹出的,在弹出的“运行运行”窗口中,选择路径、双击需要运行的程序名。窗口中,选择路径、双击需要运行的程序名。第4页,此课件共73页哦二、二、程序设计中的常用语句程序设计中的常用语句程序设计中的常用语句包括输入语句、输出语程序设计中的常用语句包括输入语句、输出语句、终止程序执行语句、清屏与注释语句。句、终止程序执行语句、清屏与注释语句。1、输入、输出语句输入、输出语句输入语句是程序运行时人机交互的界面,用于输入程输入语句是程序运行时人机交互的界面,用于输入程序运行时所需要的数据。而输出语句是用于输出程序运序运行时所需要的数据。而输出语句是用于输出程序运行的结果。行的结果。第5页,此课件共73页哦

6、1 1输入语句输入语句 输入语句提供了在程序运行的过程中暂停程序的执输入语句提供了在程序运行的过程中暂停程序的执行,等待用户从键盘上输入数据,当用户以回车键结行,等待用户从键盘上输入数据,当用户以回车键结束输入时,系统将表达式的值存入指定的内存变量,束输入时,系统将表达式的值存入指定的内存变量,程序继续运行。输入语句有程序继续运行。输入语句有非格式化非格式化输入命令和输入命令和格式化格式化输入命令两种。输入命令两种。(1 1)非格式化输入命令)非格式化输入命令 非格式化输入命令共有三条:非格式化输入命令共有三条:InputInput、AcceptAccept和和WaitWait。Input I

7、nput To To内存变量内存变量Accept Accept To To内存变量内存变量Wait Wait To To内存变量内存变量第6页,此课件共73页哦参数说明:参数说明:InputInput命令能接受除备注型、通用型以外的数据类型,命令能接受除备注型、通用型以外的数据类型,但数据为字符型、日期型或逻辑型时应使用相应的但数据为字符型、日期型或逻辑型时应使用相应的定界定界符符。AcceptAccept命令只接受字符型数据。输入字符串时,命令只接受字符型数据。输入字符串时,不不需要需要用定界符。用定界符。Wait Wait To To内存变量内存变量 命令只接受命令只接受单个字符单个字符。

8、如果执行不带任何参数的。如果执行不带任何参数的WaitWait命令会弹出命令会弹出“按任意键继续按任意键继续”的提示。的提示。第7页,此课件共73页哦例例9-19-1:在学生档案表中,按学号直接定位查询学生记录。:在学生档案表中,按学号直接定位查询学生记录。Use Use 学生档案表学生档案表accept请输入查询学生的学号:请输入查询学生的学号:ToA1LocateFor学号学号=A1Display例例9-29-2:在学生档案表中,按年龄顺序定位查询学生记:在学生档案表中,按年龄顺序定位查询学生记录。录。Use Use 学生档案表学生档案表 Input“Input“请输入查询学生的年龄:请输

9、入查询学生的年龄:”To A2”To A2 Locate For Locate For 年龄年龄=A2=A2 Display Display Continue Continue Display Display第8页,此课件共73页哦例例9-3:在学生档案数据表中,以性别和年龄为表达式索:在学生档案数据表中,以性别和年龄为表达式索引定位查询学生记录。引定位查询学生记录。Use学生档案表学生档案表IndexOn性别性别+Str(年龄年龄,2)ToXbnlInput“请输入查询学生的年龄:请输入查询学生的年龄:”ToA4Accept“请输入查询学生的性别:请输入查询学生的性别:”ToA5SeekA5

10、+Str(A4,2)Display第9页,此课件共73页哦(2 2)屏幕格式输入语句)屏幕格式输入语句 在在指定行、列指定行、列的位置,从键盘上为变量赋值。这的位置,从键盘上为变量赋值。这个变量可以是个变量可以是内存变量内存变量,也可以是,也可以是字段变量字段变量。如果是内存变量,必须如果是内存变量,必须事先定义好事先定义好。如果是字段。如果是字段变量,必须事先变量,必须事先打开打开相应的数据表。相应的数据表。Say Say Get Get 第10页,此课件共73页哦参数说明:参数说明:Say:作为被编辑的变量前面出现的提示,:作为被编辑的变量前面出现的提示,一般都是用字符串表示。一般都是用字

11、符串表示。Get:变量可以是内存变量,也可以是字段变量。:变量可以是内存变量,也可以是字段变量。若是内存变量必须在使用前先定义。如果是字段变量,若是内存变量必须在使用前先定义。如果是字段变量,则要先打开相应的数据表。则要先打开相应的数据表。数据类型可以是数据类型可以是数值型、字符型、日期型、逻辑型或备注型。数值型、字符型、日期型、逻辑型或备注型。Get命令,必须用命令,必须用Read语句来激活才能完成对语句来激活才能完成对数据的编辑。多个数据的编辑。多个Get命令,可以用命令,可以用一个一个READ语句来语句来激活。激活。第11页,此课件共73页哦例例9-59-5:用屏幕格式输入语句输入数值,

12、计算公式:用屏幕格式输入语句输入数值,计算公式C=2A+3BC=2A+3B的值。的值。A=0B=010,20Say请输入请输入A的值:的值:GetA11,20Say请输入请输入B的值:的值:GetBRead?C=2a+2b=+Str(2*A+2*B)第12页,此课件共73页哦思考:请编辑一个程序,能根据学号和课程代码来修改成思考:请编辑一个程序,能根据学号和课程代码来修改成绩。绩。Xh=Space(7)Kcdm=Space(4)cj=0UseE:课件课件vf程序设计程序设计VF2006-2007.2vfsy学生成绩表学生成绩表Excl10,20Say请输入要修改成绩的学号请输入要修改成绩的学号

13、GetXh12,20Say请输入要修改成绩的课程代码请输入要修改成绩的课程代码GetKcdmReadLocateFor学号学号=Xh.And.课程代码课程代码=Kcdm14,20Say请输入修改成绩请输入修改成绩Get成绩成绩Readuse第13页,此课件共73页哦例例9-8用屏幕格式输入法设计一个程序,向用屏幕格式输入法设计一个程序,向“专业代码表专业代码表”中增中增加一条新记录。加一条新记录。Use专业代码表专业代码表AppendBlankGotoBottom10,20say专业代码专业代码:get专业代码专业代码12,20say专业名称专业名称:get专业名称专业名称Readuse第14

14、页,此课件共73页哦2输出语句输出语句(1)非格式化输出命令)非格式化输出命令格式:格式:?表达式表表达式表格式格式2:?表达式表表达式表格式格式3:?表达式表表达式表计算表达式的值并输出。计算表达式的值并输出。参数说明:参数说明:“?”表示在当前行的下一行的首位输出,表示在当前行的下一行的首位输出,”?”表示在当前行光标表示在当前行光标所处输出,所处输出,”?”表示向打印机输出。表示向打印机输出。如果是字符、日期、逻辑常量应使用如果是字符、日期、逻辑常量应使用定界符定界符。如果是一个表达式的各部分的数据类型如果是一个表达式的各部分的数据类型必须一致必须一致。如果是如果是,各表达式之间用逗号,

15、各表达式之间用逗号“,”分隔。分隔。第15页,此课件共73页哦例例9-9:显示当前的日期和时间与表达式的值。显示当前的日期和时间与表达式的值。?”今天的日期是今天的日期是:”,DATE(),”时间是时间是:”,TIME()&如果用如果用“+”连接该如何表达连接该如何表达A=10B=20?“A*10-B=”,Str(A*10-B),Space(2)?“A*20-B=”+Str(A*20-B,4)例例9-10:显示字符型表达式的值。:显示字符型表达式的值。?“祝贺祝贺”+北京申奥北京申奥+成功成功&字符串的连接字符串的连接第16页,此课件共73页哦(2 2)屏幕格式输出命令)屏幕格式输出命令 SA

16、Y SAY 在指定在指定行、列位置行、列位置上输出表达式的值,输出数据的格式由上输出表达式的值,输出数据的格式由PicturePicture选项或选项或FunctionFunction选项中的控制符控制。选项中的控制符控制。SizeSize、FontFont、StyleStyle和和ColorColor选项是用来控制输出结果的字符范围、字体、字型、选项是用来控制输出结果的字符范围、字体、字型、字号大小和颜色的。字号大小和颜色的。参数说明参数说明:Say Say:表达式可以是常量(字符、日期、逻辑常量需:表达式可以是常量(字符、日期、逻辑常量需要使用相应的定界符)、内存变量、字段变量以及由它们组

17、成的表要使用相应的定界符)、内存变量、字段变量以及由它们组成的表达式。表达式只能是一个,而且,表达式的各部分的数据类型必须达式。表达式只能是一个,而且,表达式的各部分的数据类型必须一致。一致。第17页,此课件共73页哦例例9-119-11:显示字符串常数。:显示字符串常数。3,5 Say 3,5 Say 这是一个显示字符串常数的例子这是一个显示字符串常数的例子“例例9-129-12:显示学生档案表的第四条记录的字段内容。:显示学生档案表的第四条记录的字段内容。Use Use 学生档案表学生档案表 Goto 4Goto 4 6,6 Say“6,6 Say“学号:学号::”+:”+学号学号 7,6

18、 Say“7,6 Say“姓名:姓名::”+:”+姓名姓名 9,6 Say“9,6 Say“入学年龄:入学年龄:”+Str(+Str(入学年龄入学年龄,2)&,2)&数数据类型必须一致据类型必须一致 10,6 Say“10,6 Say“出生日期:出生日期:”+Dtoc(+Dtoc(出生日期出生日期)第18页,此课件共73页哦例例9-13:屏幕格式输出命令常用来制作应用系统的主菜单。屏幕格式输出命令常用来制作应用系统的主菜单。Clear2,30Say*3,30Say学籍档案管理系统学籍档案管理系统4,30Say1.建立数据表建立数据表5,30Say2.添加数据添加数据6,30Say3.查询数据查

19、询数据7,30Say4.退出系统退出系统8,30Say*11,30Say请输入相应的操作序号:请输入相应的操作序号:GetARead第19页,此课件共73页哦二、二、清屏与注释语句清屏与注释语句1清屏语句清屏语句Clear清除屏幕上所有显示的内容。清除屏幕上所有显示的内容。2注释语句注释语句Note*&Note和和“*”注释语句在程序中单独作为一行,作为程序注释语句在程序中单独作为一行,作为程序的注释。的注释。&注释语句一般写在命令的后面,作为该命令的注释。注释语句一般写在命令的后面,作为该命令的注释。第20页,此课件共73页哦三、三、终止程序执行语句终止程序执行语句1Return或或Canc

20、el终止程序的执行,关闭打开的命令文件,返回到终止程序的执行,关闭打开的命令文件,返回到Foxpro系统的命令窗口。系统的命令窗口。2Quit终止程序的执行,关闭打开的命令文件,返回到终止程序的执行,关闭打开的命令文件,返回到windows操作系统状态。操作系统状态。3Retry终止程序的执行,返回到调用行本身,可以实现程序终止程序的执行,返回到调用行本身,可以实现程序的重复调用。的重复调用。第21页,此课件共73页哦8-3 8-3 结构化程序设计概述结构化程序设计概述 所谓结构化,就是指程序或算法的控制结构必须并且只能由所谓结构化,就是指程序或算法的控制结构必须并且只能由顺序顺序结构结构,分

21、支结构分支结构和和循环结构循环结构所构成,程序的执行是由这三种结构所构成,程序的执行是由这三种结构来控制的。来控制的。这三大基本程序结构可以设计任何复杂问题的程序。这三大基本程序结构可以设计任何复杂问题的程序。一、一、顺序结构程序设计顺序结构程序设计 顺序结构是最基本、最普通的结构形式。运行时,也是按照顺序结构是最基本、最普通的结构形式。运行时,也是按照命令书写时的先后次序来执行,在程序执行的过程中不改变命令命令书写时的先后次序来执行,在程序执行的过程中不改变命令执行次序的一种结构。执行次序的一种结构。第22页,此课件共73页哦例例9-15:编写一个求梯形面积的程序。编写一个求梯形面积的程序。

22、Input请输入梯形的上底:请输入梯形的上底:ToMInput请输入梯形的下底:请输入梯形的下底:ToNInput请输入梯形的高:请输入梯形的高:ToH?梯形面积梯形面积=,Str(M+N)*H/2,10,2)Return例例9-169-16:编写一个在:编写一个在“学生档案表学生档案表”中查询年龄大于中查询年龄大于1818岁的岁的9898级浙级浙江籍的学生记录的程序(注意:假设数据表字段中只有出生日期而江籍的学生记录的程序(注意:假设数据表字段中只有出生日期而无年龄字段、学号前二位为年级)。无年龄字段、学号前二位为年级)。ClearUse学生档案表学生档案表ListForYear(Date(

23、)-Year(出生日期出生日期)23.And.Subs(学号学号,1,2)=98.And.籍贯籍贯=浙江浙江UseReturn第23页,此课件共73页哦二、二、分支选择结构分支选择结构编写顺序结构程序虽然简单,但在实际应用中,经编写顺序结构程序虽然简单,但在实际应用中,经常需要对事物做出一定的判断,并依据判断的结果采常需要对事物做出一定的判断,并依据判断的结果采取不同的处理行为。取不同的处理行为。例如:求圆的面积,对半径要做处判断,是否大例如:求圆的面积,对半径要做处判断,是否大于于0,如果是才能参加运算,否则不能运算,输出参数错,如果是才能参加运算,否则不能运算,输出参数错误信息。误信息。分

24、支结构有三种基本格式:单分支选择、二分支分支结构有三种基本格式:单分支选择、二分支选择(选择函数)和多分支选择。选择(选择函数)和多分支选择。第24页,此课件共73页哦1 1单分支选择单分支选择 If If 1 Endif Endif 2 Return Return参数说明:参数说明:单分支选择结构是当条件表达式为真时,执行单分支选择结构是当条件表达式为真时,执行 1,然后,再执行,然后,再执行EndIfEndIf后面的后面的 2。如果。如果 条件表达式为假,则直接执行条件表达式为假,则直接执行EndIfEndIf后面的后面的 2。IFIF和和EndIfEndIf必须成对出现,缺一不可。必须成

25、对出现,缺一不可。可以是表达式或表达式的逻辑组合,表可以是表达式或表达式的逻辑组合,表 达式的值必须是逻辑值。达式的值必须是逻辑值。第25页,此课件共73页哦例例9-17:从键盘上输入一个数,若是偶数,则输出。:从键盘上输入一个数,若是偶数,则输出。Input“请输入数据:请输入数据:”ToXIfInt(X/2)=X/2?X,”为偶数为偶数”EndifReturn例例9-18:在学生档案表中,查询王启明的籍贯是否为在学生档案表中,查询王启明的籍贯是否为“江西江西”。如果是,则输出本记录的姓名、学号、班级和年龄。如果是,则输出本记录的姓名、学号、班级和年龄。ClearUse学生档案表学生档案表L

26、ocateFor姓名姓名=王启明王启明&定位姓名为王启明的记录定位姓名为王启明的记录If籍贯籍贯=江西江西?姓名:姓名:,姓名姓名,学号:学号:,学号学号,班级:班级:,班级班级,年龄:年龄:,年龄年龄EndifUse第26页,此课件共73页哦例例9-19:任意输入三角形三边:任意输入三角形三边,求此三角形的面积。求此三角形的面积。Input输入三角形的输入三角形的a边:边:ToAInput输入三角形的输入三角形的b边:边:ToBInput输入三角形的输入三角形的c边:边:ToCIfA+BC.And.B+CA.And.C+ABP=(A+B+C)/2S=Sqrt(P*(P-A)*(P-B)*(P

27、-C)?三角形的面积为:三角形的面积为:,SEndifReturn第27页,此课件共73页哦以上程序并不完善,即当条件不满足时,程序中不能做以上程序并不完善,即当条件不满足时,程序中不能做出进一步的处理。这就说明单分支的功能是有限的,不能完出进一步的处理。这就说明单分支的功能是有限的,不能完善地解决分支处理问题。而二分支选择结构就可以处理好这善地解决分支处理问题。而二分支选择结构就可以处理好这个问题。个问题。2二分支选择结构二分支选择结构If条件表达式条件表达式A系列命令系列命令ElseB系列命令系列命令EndifD系列命令系列命令Return第28页,此课件共73页哦 二分支选择结构,首先判

28、断二分支选择结构,首先判断条件表达式条件表达式的逻辑值,若的逻辑值,若条件为条件为“真真”时,执行时,执行A A系列命令系列命令。然后,再执行。然后,再执行ENDIFENDIF后后面的面的D D系列命令系列命令。若条件为。若条件为“假假”时,执行时,执行ElseElse后面的后面的B B系系列命令列命令。然后,再执行。然后,再执行ENDIFENDIF后面的后面的D D系列命令系列命令。第29页,此课件共73页哦例例9-20:当行李重量:当行李重量W20KG时,其超过部分则加倍计算收费。时,其超过部分则加倍计算收费。Input“请输入行李重量:请输入行李重量:”ToWIfWC.And.B+CA.

29、And.C+AB P=(A+B+C)/2 S=Sqrt(P*(P-A)*(P-B)*(P-C)?三角形的面积为:,S Else?输入的边长有错,无法构成三角形!Endif Return第31页,此课件共73页哦n n思考:从键盘上输入一个整数,判断该数是否满足(被3除余2、被5除余3)设计步骤:输入数值、判断条件、输出结果第32页,此课件共73页哦3IIF()选择函数 IIF()函数是双分支选择语句IfElseEndif的简单形式。在某些情况下,可以用IIF()函数代替IfElseEndif语句,从而简化条件描述,提高程序的执行速度。IIF(,)参数说明:若的值为真,则函数返回的值。否则,返回

30、的值。返回值的类型可以是字符型、日期型、数值型和逻辑型。与的数据类型必须是一致。第33页,此课件共73页哦例9-23:在工资管理数据表中,如果基本工资小于700时,将基本工资加150。否则,加120。Use 工资管理数据表 Repl All 基本工资 With 基本工资+iif(基本工资=0):TO XX=IIF(X=200,X+20,X+50)?X=,XRETURN若程序运行时输入100,则运行结果为?第35页,此课件共73页哦4分支语句的嵌套 对于二分支以上的问题,二分支的结构也不能解决,它需要使用分支语句的嵌套。VFP中允许在程序的任何位置进行嵌套。第36页,此课件共73页哦 注意层次关

31、系,要求各个层次的IF语句之间不能交叉,每一层的If、Else以及EndIf必须一一对应。当然,这种分支语句嵌套结构,在编写的过程中,稍不注意就会使层次交叉。在VFP中提供了更为简单方便的多重分支结构。第37页,此课件共73页哦例9-25:成绩用优秀(90)、良好(80-90)、中(70-80)及格(60-70)与不及格(=90?你的成绩是:优秀else if cj=80?你的成绩是:良好 else if cj=70?你的成绩是:中 else if cj=60?你的成绩是:及格 else?你的成绩是:不及格 endif endif endifendif第38页,此课件共73页哦习题习题:编编写

32、程序,写程序,计计算函数算函数Y的的值值。1/x+5 x0Y=10 x=0 X2+12 x0第39页,此课件共73页哦5多重分支选择结构 虽然可用IF语句嵌套的方式解决多分支选择问题。但是,如果选择的分支很多,则编写的程序可读性差且易出错。这时,一般使用DO CASE-ENDCASE多重分支选择结构来解决。第40页,此课件共73页哦第41页,此课件共73页哦参数说明:执行多重分支选择结构时,会依次判断至的逻辑值,只要一遇到条件表达式为真时,就执行该条件表达式下面的语句序列。执行结束后,立即转向执行Endcase之后的语句。其余的Case语句,即使条件成立,也不执行判断。当所有的Case语句条件

33、都不成立时,如果有Otherwise选项,则执行Otherwise选项下面的语句。否则,转向执行Endcase之后的语句。Do CaseEndcase必须配套。Do Case与第一个Case之间不允许插入任何可执行语句。第42页,此课件共73页哦例9-26、用多分支选择结构改写9-25(学生成绩),其程序为:CLEARINPUT 请输入该同学的分数:TO fs DO CASECASE fs=60 and fs=70 and fs=80 and fs90?你的成绩为:良好OTHERWISE?你的成绩为:优秀ENDCASE第43页,此课件共73页哦法二:CLEARINPUT 请输入该同学的分数:T

34、O fs DO CASECASE fs=60?你的成绩为:及格CASE fs=70?你的成绩为:中CASE fs=80?你的成绩为:良好OTHERWISE?你的成绩为:优秀ENDCASE法一:CLEARINPUT 请输入该同学的分数:TO fs DO CASEcase fs90?你的成绩为:优秀CASE fs=80?你的成绩为:良好CASE fs=70?你的成绩为:中CASE fs=60?你的成绩为:及格OTHERWISE?你的成绩为:不及格ENDCASE第44页,此课件共73页哦例9-27、利用DO CASEEND CASE语句实现菜单选择。第45页,此课件共73页哦例9-28、执行下面的程

35、序,当输入10之后,输出的结果是_。INPUT 请任意输入一个数:X=TO XDO CASECASE X10Y=2*X+5case x15 and x20y=x+5OTHERWISEY=10*X-5ENDCASE?Y=,Y第46页,此课件共73页哦set talk off clearaa=1do case?12345case aa=1 bb=1endcase?bbreturn 思考思考:阅读下面程序,输出的结果是阅读下面程序,输出的结果是_第47页,此课件共73页哦4.循环结构程序设计循环结构程序设计 我们已经学习了顺序结构和分支结构,这种结构的特点是任何一我们已经学习了顺序结构和分支结构,这

36、种结构的特点是任何一条语句至多只执行一次,但是在处理实际问题的过程中,用这种条语句至多只执行一次,但是在处理实际问题的过程中,用这种结构来编写程序就长得不能忍受。比如:计算结构来编写程序就长得不能忍受。比如:计算S=1+2+3+4+5+1000就需要就需要1001条语句。条语句。S=0S=S+1S=S+2S=S+3。实际上这就是一种重复循环操作,实际上这就是一种重复循环操作,FoxPro提供了这种循环结提供了这种循环结构程序设计。事实上构程序设计。事实上70%以上的实际问题的处理过程都需要使用以上的实际问题的处理过程都需要使用循环结构,重点掌握循环结构程序设计是非常重要的循环结构,重点掌握循环

37、结构程序设计是非常重要的第48页,此课件共73页哦n在FoxPro中,循环结构有三种:n条件循环条件循环(DOWHILEENDDO)n计数循环计数循环(FORENDFOR)n库文件扫描循环库文件扫描循环(SCANENDSCAN)第49页,此课件共73页哦 条件循环条件循环n事先不知道循环次数的事件事先不知道循环次数的事件,用条件循环较好。格式:格式:格式:格式:DO WHILE 条件表达式条件表达式循环体语句循环体语句 ENDDO(2 2)流程图:)流程图:第50页,此课件共73页哦n n 说明:说明:DO WHILE 是循环语句的起始语句,ENDDO是循环语句的终端语句,必必须须配配套套使使

38、用用;中间是循环体。循循环环初初值值中中的的条条件件表表达达式式可以是是算算术术表表达达式式,例如:X=100等,可以是关关系系表表达达式式,例如:B等,也可以是逻逻辑辑表表达达式式。即凡符合FoxPro系统的一切表达式都可以。修改循修改循环变环变量的量的值值,防止,防止死循死循环环。n注意:注意:1.在在对对数数据据库库进进行行操操作作时时,必必须须用用相相应应的的命命令令来来控控制制记记记记录录录录指指指指针针针针的的的的移移移移动动动动,如如SKIP、CONTINUE.2.中中,还还可可以以包包含含另另一一种种循循环环结结构构,也也就就是是说说WHILE循环能循环能嵌套嵌套嵌套嵌套,但不

39、能出现交叉。,但不能出现交叉。第51页,此课件共73页哦(4)循环程序的五个主要部分)循环程序的五个主要部分n初始部分初始部分:写在起始语句前,给循环变量赋初值。:写在起始语句前,给循环变量赋初值。n起始起始语语句句:控制循环正常运行。:控制循环正常运行。n工作部分工作部分:循环体部分,完成循环的主要工作。:循环体部分,完成循环的主要工作。n修改部分修改部分:保证循环体在循环的过程中,使控制循环的:保证循环体在循环的过程中,使控制循环的条件能按一定的规律变化,修改循环变量的值条件能按一定的规律变化,修改循环变量的值,防止死防止死循环循环。在对数据库操作时,用。在对数据库操作时,用SKIP、CO

40、NTINUE;当条当条件表达式是关系表达式时用件表达式是关系表达式时用K=K+1来修改循环变量的值。来修改循环变量的值。n结结束部分束部分:循环的结束,退出循环,执行:循环的结束,退出循环,执行ENDDO后面的后面的语句。语句。第52页,此课件共73页哦(5 5)例题例题 例例1:任任意意输输入入1010个个自自然然数数,编编程程求求其其和和及及平平均值。均值。分分析析:依依题题意意用用循循环环控控制制输输入入1010个个自自然然数数并并求求和和,故故设设置置一一个个累累加加器器sumsum和和循循环环计计数数器器k k。第53页,此课件共73页哦n例例题题2、求求出出XSDA.DBF数数据据

41、库库中中99212、98321和其他班级的人数。和其他班级的人数。(DO WHILE和和DO CASE嵌套嵌套)n例题例题3、求、求12+22+32+.+1002的和的和n例题例题4 4、求1到100之间的奇数和。第54页,此课件共73页哦习题、执行以下程序,屏幕上显示的结果是_。SET TALK OFFCLEARNO=6DO WHILE NO0 7-NO,3 SAY STR(NO,1)NO=NO-1ENDDORETURN第55页,此课件共73页哦 带转移的条件循环结构带转移的条件循环结构 n在条件循环中,还有另外两种选项,在循环体中加入EXIT或LOOP语句。它们常与分支结构一起使用,其形式

42、如下:n 格式:格式:DO WHILE 条件条件1 语句行序列语句行序列1 IF 条件条件2 EXITLOOP ENDIF 语句行序列语句行序列2 ENDDO第56页,此课件共73页哦n 说明说明:n在循环语句中的LOOP语语句句(短短路路循循环环),其作用是终止本次循环的执行。返返回回DO DO WHILEWHILE语语句句,使LOOP后面的语句在这一次循环中不被执行,它可出现在循环体中的任意位置。n在循环体中的EXITEXIT语语句句是一种强强制制退退出出循循环环体体的语句。当执行到该语句时,不管循环语句运行在什么地方,也不管循环次数是否到,都强制转去执执行行ENDDOENDDO后面的语句

43、。后面的语句。第57页,此课件共73页哦n例题:n例:求1到100之间的奇数和。(P193)分析:判断某一数N是否为奇数,只要INT(N/2)N2,即该数除以2的商与取整后的结果一致,该数为偶数,否则为奇数。通过计数器N=N+1产生0100之间的数据,逐一进行判断,当为偶数时,用LOOP语句返回DOWHILE起始循环,当为奇数时进行累加求和。n例2:在学生档案(XSDA.DBF)中,按姓名查找某一同学,找到后输出该同学的情况,否则输出“查无此人”;要求进行多次查找要求进行多次查找。第58页,此课件共73页哦习题:阅读程序,写结果。STORE 0 TO N,SDO WHILE.T.N=N+1IF

44、 mod(N,3)=1S=S+NENDIFIF N=10EXITENDIFENDDO?“S=”,SRETURN第59页,此课件共73页哦 根根据据例例题题,我我们们可可以以看看出出,在在应应用用程程序序中中常常用用的的循循环环语语句句条条件件有有以以下几种:下几种:n 对于循环次数已知的情况,常用模式为:对于循环次数已知的情况,常用模式为:INPUT N=TO NK=1&置置K的初始值的初始值DO WHILE K=NK=N循环体语句循环体语句 K=K+1&K=K+1&修改循环变量值修改循环变量值 ENDDO在在“永永真真”循循环环中中,用用结结束束标标志志,通通过过EXIT退退出出循循环环,I

45、NPUT X=TO x DO WHILE .T.IF EXITEXITENDIF 改变改变x的值的语句的值的语句ENDDO第60页,此课件共73页哦n 对数据库的操作,常用模式为:对数据库的操作,常用模式为:USE 数据库名数据库名 置初始值置初始值 DO WHILE .NOT.EOF()()执行某一任务的语句系列执行某一任务的语句系列 SKIP ENDDO 对某些重复性的工作,由用户随意确定,可多可少。对某些重复性的工作,由用户随意确定,可多可少。yn=Y DO WHILE UPPER(yn)Y 执行某一任务的语句系列执行某一任务的语句系列 WAIT 还继续吗(还继续吗(YN)?)?TO y

46、n ENDDO第61页,此课件共73页哦 计数循环计数循环 对于事先已经知道事先已经知道某一个事件需要循环多少次需要循环多少次时,往往使用FOR循环结构。结构:结构:FOR=(初初值值)TO(终终值值)STEP(步步长)长)循环体语句LOOPEXITENDFOR第62页,此课件共73页哦 功能:功能:从初初值值到到终终值值,循循环环执执行行FOR和和ENDFOR之之间的语句。间的语句。该结构常用于已知循环次数已知循环次数的数值运算。说明:说明:FOR表示循环的开始,ENDFOR表示循环的结束,两者之间是循环体。循循环环变变量量:是循环计数器,是数值型的内存变量,不不必先定义必先定义。步步长长:

47、循循环环变变量量自自动动按按步步长长增增加加,它为可选项,省略,系统默认步长为1。若为正值,则为递增型循环;若为负值,则为递减型循环。LOOP和EXIT:为可选项,LOOP表示转到FOR执行下一个循环操作,EXIT表示强行结束循环。第63页,此课件共73页哦(4)例题 n例题例题1、FOR K=1 TO 4?k=,kENDFORRETURN例题例题2、FOR K=4 TO 1 STEP 1?k=,kENDFORRETURN第64页,此课件共73页哦n例题例题3 3、求、求1100的累加和。的累加和。n例例 题题4 4、完完 成成 下下 面面 实实 现现 计计 算算P=1+1/(2*2)+.1/

48、(10*10)的程序的程序 SET TALK OFF CLEAR P=0 FOR N=1 TO 10 ENDFOR?P RETURN第65页,此课件共73页哦 库文件扫描循环库文件扫描循环 在在数数据据库库应应用用程程序序中中,经经常常要要对对数数据据表表文文件件中中符符合合条条件件的的记记录录逐逐个个进进行行某某种种统统计计操操作作。虽虽然然可可用用DO DO WHILE not eof()来来处处理理,但但是是系系统统还还提提供供了了另另外外一一种种更更好好的的循循环环结结构构,即即库库文文件件扫扫描描循循环环。它它内内含含有有EOF()、SKIP的作用,不需移动记录指针。的作用,不需移动

49、记录指针。结构:SCAN 范范围围FOR条条件件表表达达式式1语语句句行序列行序列LOOPEXITENDSCAN第66页,此课件共73页哦n 功功能能:在当前工作区数据库的指定范围内,将满足条件的记录,依次执行循环体中所包含的语句行序列,直到文件尾结束。n 说明:说明:nSCAN,ENDSCAN必必须须配配套套使使用用。SCAN循循环环是是内内含含EOF()和()和SKIP的一种循环处理。的一种循环处理。FOR条件表达式1:其意义是仅对使条件为真的记录执行语句序列的操作。在在使使用用SCANENDSCAN之之前前必必须须先先打打开开被被操操作作的数据库的数据库。第67页,此课件共73页哦例题:

50、n n例例题题:在学生档案(XSDA.DBF)中,显示满足年龄大于23岁的学生姓名、年龄和学号。并统计其个数。n n例例题题2 2、在在数数据据库库XSDA.DBF中中,分分别别统统计计浙江、江西及其它各省浙江、江西及其它各省的人数的人数第68页,此课件共73页哦5、循环常用的三种控制方式小结循环常用的三种控制方式小结1、对对数据库文件数据库文件记录进行操作时的循环控制方式记录进行操作时的循环控制方式格式格式1、SCAN 循环语句体循环语句体 ENDSCAN 格式格式2、DO WHILE NOT EOF()()循环语句体循环语句体 SKIP ENDDO第69页,此课件共73页哦2、选择数据库文

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁