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

下载本文档

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

文档简介

1、2021-10-211程序设计基础程序设计基础2021-10-212本章主要内容本章主要内容l程序设计的基本概念程序设计的基本概念l程序文件建立与运行程序文件建立与运行 l三种程序控制结构三种程序控制结构 l多模块程序多模块程序 l程序调试程序调试 2021-10-213程序设计的基本概念程序设计的基本概念一、一、vfpvfp的工作方式的工作方式l命令工作方式(或交互工作方式)命令工作方式(或交互工作方式) 通过菜单选择的方法或在命令窗口中逐条输入通过菜单选择的方法或在命令窗口中逐条输入命令的方法来执行的。命令的方法来执行的。l程序工作方式程序工作方式 根据解决实际问题的需要,将一系列符合根据

2、解决实际问题的需要,将一系列符合visual foxprovisual foxpro要求的命令按一定的逻辑结构编排要求的命令按一定的逻辑结构编排成一个完整的应用程序,然后输入到计算机内自动成一个完整的应用程序,然后输入到计算机内自动地、连续地加以执行。地、连续地加以执行。 2021-10-214程序设计的基本概念程序设计的基本概念二、二、 vfpvfp的编程方式的编程方式l 面向过程编程方式面向过程编程方式 用结构化编程语言来编写结构化的程序,它把用结构化编程语言来编写结构化的程序,它把一个复杂的程序分成较小的过程,每个过程可以单一个复杂的程序分成较小的过程,每个过程可以单独进行调试。独进行调

3、试。l 面向对象编程方式面向对象编程方式 用面向对象的技术编程,它把编程工作主要集用面向对象的技术编程,它把编程工作主要集中在描述的对象上,程序是事件驱动的,在执行过中在描述的对象上,程序是事件驱动的,在执行过程中,等待的是一个事件程中,等待的是一个事件。 对于制作简单短小的应用程序,对于制作简单短小的应用程序,使用过程编程方式比较容易,使用过程编程方式比较容易,同时,这也是面向对象编程方同时,这也是面向对象编程方式的基础。本章重点介绍面向式的基础。本章重点介绍面向过程的程序设计。过程的程序设计。 2021-10-215程序设计的基本概念程序设计的基本概念三、程序设计的步骤三、程序设计的步骤

4、分析问题或任务,总结或抽象出问题的数学模型分析问题或任务,总结或抽象出问题的数学模型根据数学模型确定解决问题的算法思想根据数学模型确定解决问题的算法思想确定要建立的数据表或数据库的基本结构及其数据表之间确定要建立的数据表或数据库的基本结构及其数据表之间的关系的关系画出程序流程图画出程序流程图编写程序,实现功能要求,并在计算机上调试通过编写程序,实现功能要求,并在计算机上调试通过 用典型数据对所编写的程序进行测试,验证程序的可靠性用典型数据对所编写的程序进行测试,验证程序的可靠性 编写使用说明书,整理有关资料,进行总结编写使用说明书,整理有关资料,进行总结 2021-10-2166.1 6.1

5、程序文件建立与运行程序文件建立与运行l程序文件程序文件程序是由命令组成的程序是由命令组成的asciiascii码文本文件,所以码文本文件,所以程序文件也称为命令文件。该文件可用任何文本编程序文件也称为命令文件。该文件可用任何文本编辑器或字处理软件来建立。辑器或字处理软件来建立。 l程序文件扩展名程序文件扩展名源文件的扩展名是源文件的扩展名是.prg.prg,程序在运行时,会产,程序在运行时,会产生主文件名与生主文件名与.prg.prg程序主文件名相同,扩展名程序主文件名相同,扩展名为为.fxp.fxp的目标文件。的目标文件。 2021-10-2176.1.1 6.1.1 程序文件建立程序文件建

6、立 建立程序最简单的方法是用系统本建立程序最简单的方法是用系统本身提供的编辑器。身提供的编辑器。 vfpvfp有有2 2种方式进入程种方式进入程序编辑器窗口序编辑器窗口:菜单方式和命令方式:菜单方式和命令方式 2021-10-218菜单方式建立程序文件菜单方式建立程序文件 用菜单建立程序的步骤为:用菜单建立程序的步骤为: 单击菜单单击菜单“文件文件”“新建新建”命令或者单击常用命令或者单击常用工具栏的工具栏的“新建新建”按钮,打开按钮,打开“新建新建”对话框。对话框。 打开打开“程序程序1”1”的程序编辑新窗口。的程序编辑新窗口。2021-10-219命令方式建立程序文件命令方式建立程序文件格

7、式:格式:modify command modify command |?|?功能:打开程序编辑窗口,从中可以修改或功能:打开程序编辑窗口,从中可以修改或 创建程序文件。创建程序文件。几点说明:几点说明:l :指定修改或创建的程序文件名。:指定修改或创建的程序文件名。l如果用如果用modify command ?modify command ?,则出现,则出现“打开打开”对对话框,如图所示。话框,如图所示。2021-10-2110命令方式建立程序文件命令方式建立程序文件 在用命令建立程序文件时,最好在命令后加上程在用命令建立程序文件时,最好在命令后加上程序文件名,这样可以直接创建或修改用户给出

8、的程序文件名,这样可以直接创建或修改用户给出的程序文件。序文件。 建好的文件将保存在建好的文件将保存在“默认目录默认目录”指定的文件夹指定的文件夹下,默认的扩展名是下,默认的扩展名是.prg.prg。如果需要保存在其它文。如果需要保存在其它文件夹下,还可在命令中指定路径。如:件夹下,还可在命令中指定路径。如: modi comm d:excerciseexamplemodi comm d:excerciseexample2021-10-2111程序输入与保存程序输入与保存 例例 6-1 6-1 在程序编辑窗口输入如下在程序编辑窗口输入如下6 6条命令。条命令。clearclear & &将屏幕

9、输出窗口内容清空将屏幕输出窗口内容清空a=12a=12 & &将数值将数值1212赋值给变量赋值给变量a ab=18b=18 & &将数值将数值1818赋值给变量赋值给变量b bc=a+bc=a+b & &将变量将变量a a与与b b和计算出来,赋值给变量和计算出来,赋值给变量c c?a,b,c &?a,b,c &输出变量输出变量a a、b b、c c的值的值return &return &表示程序结束表示程序结束2021-10-2112程序输入与保存程序输入与保存在输入一个程序时,请用户注意以下几点:在输入一个程序时,请用户注意以下几点:l一个命令语句中只能有一个命令动词。一个命令语句中只能

10、有一个命令动词。l每输入完一个语句按回车键表示该语句结束。每输入完一个语句按回车键表示该语句结束。l程序中用到的所有作为程序中用到的所有作为“分隔符号分隔符号”的标点符号的标点符号一律用英文半角符号。一律用英文半角符号。l输入或修改结束按输入或修改结束按“ctrl+w”存盘,存盘,“ctrl+q”取取消本次输入或修改结果。还可使用消本次输入或修改结果。还可使用“文件文件”“另另存为存为”命令将编辑好的程序以另外的名称存盘。命令将编辑好的程序以另外的名称存盘。2021-10-21136.1.2 6.1.2 程序运行程序运行l 菜单方式运行程序菜单方式运行程序 单击菜单单击菜单“程序程序”“运行运

11、行”命令,打开命令,打开“运运行行”对话框。选定定要执行的程序文件,如选择:对话框。选定定要执行的程序文件,如选择:cx1 cx1 ,单击,单击“运行运行”按钮,即可运行程序。按钮,即可运行程序。2021-10-21146.1.2 6.1.2 程序运行程序运行l 命令方式运行程序命令方式运行程序格式:格式:do do 功能:将指定的程序文件调入内存并运行。功能:将指定的程序文件调入内存并运行。如在命令窗口里输入:如在命令窗口里输入:do cx1do cx1将在屏幕输出程序计算结果:将在屏幕输出程序计算结果: 12 18 3012 18 302021-10-21156.1.2 6.1.2 程序运

12、行程序运行l 单击常用工具栏上单击常用工具栏上“!”!”命令按钮执行该程序命令按钮执行该程序 在程序打开并且为当前程序的情况下,在程序打开并且为当前程序的情况下,单击常用工具栏上单击常用工具栏上“!”!”命令按钮可执行该程命令按钮可执行该程序。序。 2021-10-21166.1.2 6.1.2 程序运行程序运行l 程序错误对话框程序错误对话框 在程序执行过程中,如果程序出现运行错误或用户按下了在程序执行过程中,如果程序出现运行错误或用户按下了“esc”esc”键,将键,将弹出弹出“程序错误程序错误”对话框,如图所示。对话框,如图所示。 单击单击“取消取消”按 钮 可 取 消按 钮 可 取 消

13、程序的执行程序的执行。 单击单击“挂起挂起”按钮,可暂时停按钮,可暂时停止程序的运行,可在命令窗口止程序的运行,可在命令窗口里输入命令:里输入命令:resumeresume,或单击,或单击菜单菜单“程序程序”“继续执行继续执行”命令可继续执行程序命令可继续执行程序 。单击单击“忽略忽略”命令命令按钮忽略程序的错按钮忽略程序的错误继续执行程序误继续执行程序 。单击单击“帮助帮助”命命令按钮可提示相令按钮可提示相关帮助信息。关帮助信息。 2021-10-21176.1.3 6.1.3 程序辅助命令程序辅助命令 以前介绍的所有以前介绍的所有visual foxprovisual foxpro命令都可

14、命令都可以用在程序设计中。另外以用在程序设计中。另外visual foxprovisual foxpro还提还提供了一些辅助命令,这些命令能使程序更好供了一些辅助命令,这些命令能使程序更好地阅读和有效地运行。本小节介绍:地阅读和有效地运行。本小节介绍:l 程序注释命令程序注释命令 l 程序结束命令程序结束命令l 信息对话框函数信息对话框函数messagebox messagebox l 运行环境设置命令运行环境设置命令 2021-10-2118程序注释命令程序注释命令 visual foxprovisual foxpro提供了提供了3 3种注释命令:种注释命令:格式格式1 1: note no

15、te 格式格式2 2: * * 功能:使功能:使 notenote或或* * 后面的内容成为注释内容。后面的内容成为注释内容。格式格式3 3: & & 功能:功能: 对对&左面的命令做出解释或给左面的命令做出解释或给出运行结果,又称为行尾注释命令。出运行结果,又称为行尾注释命令。 2021-10-2119格式格式1 1:returnreturn功能:返回到上一级模块。如果本程序是以菜单方功能:返回到上一级模块。如果本程序是以菜单方式或在命令窗口中调用执行的,则返回到命令交互式或在命令窗口中调用执行的,则返回到命令交互状态。状态。格式格式2 2:cancelcancel功能:终止程序运行,清除程

16、序中的私有变量,返功能:终止程序运行,清除程序中的私有变量,返回到命令窗口。回到命令窗口。格式格式3 3:quitquit功能:关闭功能:关闭visual foxprovisual foxpro,返回到操作系统。,返回到操作系统。程序结束命令程序结束命令 2021-10-2120信息对话框函数信息对话框函数messageboxmessagebox messagebox messagebox函数用于显示一个信息对话框,可以在函数用于显示一个信息对话框,可以在程序运行过程中,显示一些信息,例如提示信息、错误程序运行过程中,显示一些信息,例如提示信息、错误信息等。其构成如图所示。信息等。其构成如图所

17、示。信息对话框的信息对话框的“标标题题”部分。部分。信息对话框信息对话框的的“图标图标”部分。部分。信 息 对 话 框 的信 息 对 话 框 的“提示信息提示信息”部部分。分。信 息 对 话 框 的信 息 对 话 框 的“按钮按钮”部分。部分。2021-10-2121信息对话框函数信息对话框函数messageboxmessagebox格式:格式: messagebox(messagebox(,)2)功能:供用户定义信息对话框,按下相应的按钮返功能:供用户定义信息对话框,按下相应的按钮返回一个数值。回一个数值。说明:说明:l 用于指定在对话框中显示的信息用于指定在对话框中显示的信息文本。文本。l

18、 用于根据表用于根据表6-1的内容设置对话框中的内容设置对话框中的按钮、图标和默认按钮,缺省该参数表示取的按钮、图标和默认按钮,缺省该参数表示取0。2021-10-2122信息对话框函数信息对话框函数messageboxmessagebox2021-10-2123信息对话框函数信息对话框函数messageboxmessageboxl 2用于指定对用于指定对话框标题栏的显示文本。话框标题栏的显示文本。缺省该参数表示在标题栏缺省该参数表示在标题栏显示显示“microsoft visual microsoft visual foxpro”foxpro”。 l函数值返回一个数值,用函数值返回一个数值,

19、用户可根据操作时按下的按户可根据操作时按下的按钮来获得相应的返回值,钮来获得相应的返回值,返回值见表返回值见表6-26-2,用户编程,用户编程时根据返回值来设置动作。时根据返回值来设置动作。 2021-10-2124信息对话框函数信息对话框函数messageboxmessagebox举例举例 例例 6-3 6-3 在信息对话框中使用在信息对话框中使用2 2个按钮个按钮“是是”和和“否否”,使用使用“问号问号”图标,默认按钮为第二个按钮,显示图标,默认按钮为第二个按钮,显示“真真的要退出系统吗?的要退出系统吗?”信息,对话框标题为信息,对话框标题为“提示信息提示信息”。 在命令窗口里输入:在命令

20、窗口里输入:a=messagebox(a=messagebox(真的要退出系统吗?真的要退出系统吗?,4+32+256,4+32+256,提示信息提示信息) 就会显示如图所示的信息对话框。就会显示如图所示的信息对话框。2021-10-2125运行环境设置命令运行环境设置命令 在程序中运用一些环境设置命令,可使程在程序中运用一些环境设置命令,可使程序正常而高效地运行。运行环境设置命令大序正常而高效地运行。运行环境设置命令大多数是由多数是由setset命令设置的,它一般有命令设置的,它一般有onon和和offoff两个选项,当为两个选项,当为onon状态时,设置有效,为状态时,设置有效,为offo

21、ff状态时设置无效。有的状态时设置无效。有的setset命令用命令用toto指定设置指定设置值。常用的环境设置命令如表值。常用的环境设置命令如表6-36-3所示。所示。 2021-10-2126运行环境设置命令运行环境设置命令 2021-10-21276.1.4 6.1.4 交互式输入命令交互式输入命令 根据解决实际问题的需要,往往在程序运根据解决实际问题的需要,往往在程序运行的过程中,由用户向程序输入一些数据或行的过程中,由用户向程序输入一些数据或信息,完成这种功能的一些命令称为交互式信息,完成这种功能的一些命令称为交互式输入命令。输入命令。visual foxprovisual foxpr

22、o提供了多种交互式提供了多种交互式输入命令。本小节介绍三种命令:输入命令。本小节介绍三种命令:l acceptacceptl input inputl wait wait2021-10-2128字符型数据输入命令字符型数据输入命令acceptaccept 格式:格式:accept accept to to 功能:暂停程序的执行,等待用户输入一个字符串给变量。功能:暂停程序的执行,等待用户输入一个字符串给变量。说明:说明:(1 1),是在屏幕上出现的提示信息。它可以是字,是在屏幕上出现的提示信息。它可以是字符串,此时必须用双引号将其括起来,也可以是字符型内存变符串,此时必须用双引号将其括起来,也

23、可以是字符型内存变量,该内存变量必须预先赋值。量,该内存变量必须预先赋值。(2 2)用户在键盘输入的任何字符信息都被赋值给)用户在键盘输入的任何字符信息都被赋值给“内存变量内存变量”。输入的数据将作为字符型数据处理,不需要定界符括起来,如输入的数据将作为字符型数据处理,不需要定界符括起来,如果输入了定界符,则这些定界符也被作为输入字符的一部分。果输入了定界符,则这些定界符也被作为输入字符的一部分。(3 3)输入完需要的信息后,按)输入完需要的信息后,按“enter”enter”键结束本命令的输入。键结束本命令的输入。如果没有输入其他信息,只按回车键,将把一个空字符串赋值如果没有输入其他信息,只

24、按回车键,将把一个空字符串赋值给内存变量。给内存变量。 2021-10-2129acceptaccept使用举例使用举例 例例 6-4 6-4 编一程序,将人事数据表打开,在程序编一程序,将人事数据表打开,在程序运行中输入人员姓名,显示指定姓名的人员记录。运行中输入人员姓名,显示指定姓名的人员记录。程序代码如下:程序代码如下:note note 该程序用于从人事数据表中查找用户指定姓名的人员信息。该程序用于从人事数据表中查找用户指定姓名的人员信息。clearclearuse rsbuse rsbaccept accept 请输入要查找的姓名:请输入要查找的姓名: to name to name

25、locate for alltrim(locate for alltrim(姓名姓名)=name)=namedisplaydisplayreturnreturn2021-10-2130表达式输入命令表达式输入命令inputinput格式:格式:inputinput to to 功能:暂停程序的执行,接受用户输入合法的表达式并将表功能:暂停程序的执行,接受用户输入合法的表达式并将表达式的值赋值给内存变量。达式的值赋值给内存变量。说明:说明:(1 1),同,同“accept”accept”命令中的命令中的。(2 2)用户可输入任何一个合法的数值型()用户可输入任何一个合法的数值型(n n)、字符型

26、)、字符型(c c)、日期型()、日期型(d d)、逻辑型()、逻辑型(l l)表达式,系统先计算表)表达式,系统先计算表达式的值并将该值赋值给内存变量。达式的值并将该值赋值给内存变量。(3 3)如果输入字符串信息,则必须加上双引号或单引号定)如果输入字符串信息,则必须加上双引号或单引号定界符,如界符,如abcabc。(4 4)按)按“enter”enter”键结束输入,如果输入的是非法表达式,键结束输入,如果输入的是非法表达式,系统将提示重新输入。系统将提示重新输入。2021-10-2131inputinput使用举例使用举例 例例 6-5 6-5 已知圆半径为已知圆半径为r r,求圆面积,

27、求圆面积s s(要求四舍五入保留(要求四舍五入保留三位小数)。三位小数)。分析:假设圆的半径为分析:假设圆的半径为r r,则计算圆面积,则计算圆面积s s的公式为:的公式为:s=rs=r2 2,计算圆面积公式的计算圆面积公式的visual foxprovisual foxpro表达式为:表达式为:pi()pi()* *r2 r2 。程。程序代码如下:序代码如下:* * 该程序用于计算用户指定半径的圆的面积。该程序用于计算用户指定半径的圆的面积。clearclearinput input 请输入圆半径请输入圆半径r= to rr= to rs=round(pi()s=round(pi()* *r

28、2,3) r2,3) &pi()&pi()为圆周率函数为圆周率函数,roundround函数为四舍五入函数函数为四舍五入函数?该圆半径为:该圆半径为:,r,r?该圆面积为:该圆面积为:,s,sreturnreturn2021-10-2132接收单字符命令接收单字符命令waitwait 格式:格式:wait wait to to windows at windows at , timeout timeout nowait nowait功能:暂停程序,用户按任意键或者时间超过等待功能:暂停程序,用户按任意键或者时间超过等待的秒数后,程序继续执行。如果包含的秒数后,程序继续执行。如果包含to to

29、短语,将用户所按键盘字符赋值给指定的内存短语,将用户所按键盘字符赋值给指定的内存变量。变量。2021-10-2133接收单字符命令接收单字符命令waitwait说明说明(1 1),指定要显示的自定义信息。若,指定要显示的自定义信息。若省略该参数,则省略该参数,则 visual foxpro visual foxpro 显示默认的信息显示默认的信息“按任意键继续按任意键继续”。如果该参数为空字符,则不。如果该参数为空字符,则不显示信息。显示信息。(2 2)windowswindows:在:在 visual foxpro visual foxpro 主窗口右上角主窗口右上角的系统信息窗口中,显示提

30、示信息。如果指定的系统信息窗口中,显示提示信息。如果指定at at ,,则该窗口在指定屏幕坐标位置,则该窗口在指定屏幕坐标位置显示。显示。2021-10-2134接收单字符命令接收单字符命令waitwait说明说明 (3 3)timeout timeout :指定在执行:指定在执行 wait wait 命令命令之后,程序暂停的时间,之后,程序暂停的时间, 参数指定等待的参数指定等待的时间秒数。时间秒数。(4 4)nowaitnowait子句指在前述指定的子句指在前述指定的windowswindows窗口中显示窗口中显示waitwait信息的同时,程序继续执行而不暂停。信息的同时,程序继续执行而

31、不暂停。2021-10-2135waitwait使用举例使用举例 下列命令将在屏幕下列命令将在屏幕1616行、行、1616列位置处显示一列位置处显示一含有提示信息的小窗口,如图所示,此时单击含有提示信息的小窗口,如图所示,此时单击鼠标按键、按下键盘上任意一个按键或小窗口鼠标按键、按下键盘上任意一个按键或小窗口在屏幕上停留在屏幕上停留7 7秒后,从屏幕上消失。秒后,从屏幕上消失。wait wait 请稍后,程序将继续执行请稍后,程序将继续执行.。 windows at 16,16 timeout 7 windows at 16,16 timeout 72021-10-21366.2 6.2 程序

32、控制结构程序控制结构 结构化程序包括三种基本结构,即结构化程序包括三种基本结构,即l 顺序结构顺序结构l 选择结构选择结构l 循环结构循环结构 2021-10-21376.2.1 6.2.1 顺序结构顺序结构 顺序结构是程序设计中最基本的顺序结构是程序设计中最基本的结构,该结构按照程序命令出现的结构,该结构按照程序命令出现的先后顺序依次执行。事实上,如果先后顺序依次执行。事实上,如果不进行特殊说明,程序中的命令就不进行特殊说明,程序中的命令就自动按其前后排列顺序执行。自动按其前后排列顺序执行。 2021-10-2138顺序结构程序举例顺序结构程序举例1 1 例例 6-6 6-6 假设我国假设我

33、国20072007年国民生产总值为年国民生产总值为200,000200,000亿元,按每年平均亿元,按每年平均10%10%的速度递增,编程计的速度递增,编程计算到算到20202020年我国国民生产总值将会达到多少?年我国国民生产总值将会达到多少? 国民生产总值计算公式为:未来值国民生产总值计算公式为:未来值p1=p1=初值初值p0p0(1+1+速度速度a a)时间间隔时间间隔n n 这里,初值这里,初值 p0=200000 p0=200000 亿元,速度为亿元,速度为 a=0.1a=0.1,时间间隔时间间隔 n=2020-2007=13n=2020-2007=13,p1p1为未来待计算的值。为

34、未来待计算的值。visual foxprovisual foxpro计算表达式为:计算表达式为:p1=p0p1=p0* *(1+a)n (1+a)n 。该程序流程图如图所示。该程序流程图如图所示。 2021-10-2139顺序结构程序举例顺序结构程序举例1 1程序代码如下:程序代码如下:clearclearp0=200000p0=200000a=0.1a=0.1n=13n=13p1=p0p1=p0* *(1+a)n(1+a)n?我国我国20072007年的国民生产总值为:年的国民生产总值为:,p0, ,p0, 亿元。亿元。 ?我国我国20202020年的国民生产总值为:年的国民生产总值为:,p

35、1, ,p1, 亿元。亿元。 returnreturn2021-10-2140顺序结构程序举例顺序结构程序举例2 2 例例 6-7 6-7 在人事数据表中,根据从屏幕在人事数据表中,根据从屏幕上输入的职工姓名来查询该职工的姓名、性上输入的职工姓名来查询该职工的姓名、性别、职称、出生日期、工作日期。别、职称、出生日期、工作日期。用用acceptaccept命令输入和命令输入和? ?命令输出,程序代命令输出,程序代码如下。码如下。2021-10-2141顺序结构程序举例顺序结构程序举例2 2clearclearuse rsbuse rsbaccept accept 请输入被查询职工的姓名:请输入被

36、查询职工的姓名: to name to namelocate for alltrim(locate for alltrim(姓名姓名)=name)=name?姓名:姓名:+姓名姓名?性别:性别:+性别性别?职称:职称:+职称职称?出生日期:出生日期:+dtoc(+dtoc(出生日期出生日期) )?工作日期:工作日期:+dtoc(+dtoc(工作日期工作日期) )useusereturnreturn2021-10-21426.2.2 6.2.2 选择结构选择结构选择结构,是一种常用的基本结构,是根选择结构,是一种常用的基本结构,是根据所给条件是否为真,选择执行某一分支的据所给条件是否为真,选择执

37、行某一分支的相应操作。按照选择结构执行路径的多少,相应操作。按照选择结构执行路径的多少,可分为:可分为:l简单分支结构简单分支结构l双分支选择结构双分支选择结构l多分支选择结构多分支选择结构2021-10-2143简单分支结构简单分支结构 格式:格式: if if 命令序列命令序列 endif endif功能:根据条件的逻辑值来确定是否执行功能:根据条件的逻辑值来确定是否执行 命命令序列令序列 。 2021-10-2144简单分支结构说明简单分支结构说明(1 1)根据)根据 的逻辑值进行判断。如果的逻辑值进行判断。如果 的的逻辑值为逻辑值为.t.t.,就依次执行,就依次执行 命令序列命令序列

38、,执行完后就,执行完后就转去执行转去执行endifendif之后的命令。如果之后的命令。如果 的逻辑值的逻辑值为为.f.f.,则,则ifif 和和endifendif之间的所有命令都不执行,之间的所有命令都不执行,而直接转到而直接转到endifendif之后的命令。之后的命令。 (2 2)ifif语句和语句和endifendif语句必须成对出现,且各占一行。语句必须成对出现,且各占一行。(3 3)为了程序阅读方便,便于以后维护修改,建议)为了程序阅读方便,便于以后维护修改,建议对于对于 命令序列命令序列 部分采取向右缩进书写的方式。部分采取向右缩进书写的方式。2021-10-2145简单分支结

39、构举例简单分支结构举例1 1 例例 6-8 6-8 铁路托运行李,按规定每张客铁路托运行李,按规定每张客票托运行李不超过票托运行李不超过5050公斤时,每公斤公斤时,每公斤0.250.25元,元,如超过如超过5050公斤,超过部分按每公斤公斤,超过部分按每公斤0.450.45元计元计算。编写一个程序,把行李重量输入计算机,算。编写一个程序,把行李重量输入计算机,计算出运费,并打印出付款清单。计算出运费,并打印出付款清单。 问题分析:设行李重量为问题分析:设行李重量为w w公斤,应付运公斤,应付运费为费为p p元,则运费公式为:元,则运费公式为: 当当w50w50, p=0.25p=0.25w

40、w 当当w w5050, p=50p=500.25+(w-50)0.25+(w-50)0.450.452021-10-2146简单分支结构举例简单分支结构举例1 1该问题计算机程序框图如该问题计算机程序框图如右右图所示。图所示。 程序代码如下:程序代码如下:note note 计算铁路托运行李费,计算铁路托运行李费,w w为行李重量,为行李重量,p p为运费。为运费。clearclearinput input 请输入行李重量:请输入行李重量: to w to wp=0.25p=0.25* *w wif w50if w50 p=50 p=50* *0.25+(w-50)0.25+(w-50)*

41、*0.450.45endifendif?行李重量为:行李重量为:,w,w,公斤公斤 ?应付运费为:应付运费为:,p,p,元元 returnreturn2021-10-2147简单分支结构举例简单分支结构举例2 2 例例 6-9 6-9 程序运行时,从键盘输入两个程序运行时,从键盘输入两个数数a a、b b,如果,如果abab,则将二者的数据交换。,则将二者的数据交换。程序代码如下:程序代码如下:2021-10-2148简单分支结构举例简单分支结构举例2 2clearclearinput input 请输入给变量请输入给变量a a的数值:的数值: to a to a input input 请输

42、入给变量请输入给变量b b的数值:的数值: to b to b ?a?a与与b b交换之前的值分别是:交换之前的值分别是:+alltrim(str(a,10)+,+alltrim(str(b,10)+alltrim(str(a,10)+,+alltrim(str(b,10)if abif ab c=a & c c=a & c为中间变量为中间变量 a=ba=b b=c b=cendifendif?a?a与与b b交换之后的值分别是:交换之后的值分别是:+alltrim(str(a,10)+,+alltrim(str(b,10)+alltrim(str(a,10)+,+alltrim(str(b,

43、10)returnreturn2021-10-2149双分支选择结构双分支选择结构 格式:格式: if if 命令序列命令序列11 else else 命令序列命令序列22 endif endif功能:根据条件的逻辑值来决定程序执行功能:根据条件的逻辑值来决定程序执行 命命令序列令序列11还是还是 命令序列命令序列22。 2021-10-2150双分支选择结构说明双分支选择结构说明 (1 1)如果)如果 的逻辑值为的逻辑值为.t.t.,就执行,就执行 命令序命令序列列11,执行完后就转到执行,执行完后就转到执行endifendif之后的命令。如之后的命令。如果果 的逻辑值为的逻辑值为.f.f.

44、,就执行,就执行 命令序列命令序列22,完,完成后,转去执行成后,转去执行endifendif之后的命令。之后的命令。(2 2)elseelse语句单独占一行,语句单独占一行,ifif语句和语句和endifendif语句必语句必须成对出现,且各占一行。须成对出现,且各占一行。2021-10-2151双分支选择结构举例双分支选择结构举例 例例 6-10 6-10 设出租车不超过设出租车不超过2 2公公里时一律收费里时一律收费7 7元钱,超过时则超过元钱,超过时则超过部分每公里加收部分每公里加收2.62.6元。试根据里程元。试根据里程数编程计算并显示出应付车费(用数编程计算并显示出应付车费(用双分

45、支选择结构编程)。双分支选择结构编程)。程序代码如下:程序代码如下:2021-10-2152双分支选择结构举例双分支选择结构举例clearclearinput input 请输入里程数:请输入里程数: to k to kif k=2if k=2 cf=7 cf=7elseelse cf=7+(k-2) cf=7+(k-2)* *2.62.6endifendif?里程为:里程为:,k,k,公里公里 ?车费为:车费为:,cf,cf,元元 returnreturn2021-10-2153分支结构嵌套分支结构嵌套 在分支结构的在分支结构的 中,可以中,可以包含任何包含任何visual foxprovi

46、sual foxpro命令语句,也可命令语句,也可以包括另外一个或几个合法的分支结构以包括另外一个或几个合法的分支结构语句,也就是说分支结构可以嵌套。对语句,也就是说分支结构可以嵌套。对于嵌套的分支结构语句,一定注意内外于嵌套的分支结构语句,一定注意内外层分支结构层次分明,即注意各个层次层分支结构层次分明,即注意各个层次的的ififelseelseendifendif语句的配对情况语句的配对情况。2021-10-2154分支结构嵌套举例分支结构嵌套举例 例例 6-11 6-11 永立公司对销售人员的报酬计算永立公司对销售人员的报酬计算方法如下:每月销售方法如下:每月销售1010万元(含万元(含

47、1010万元)以下者,万元)以下者,只得基本工资只得基本工资10001000元;每月销售元;每月销售1010万元以上至万元以上至3030万元(含万元(含3030万元)者,则超过万元)者,则超过1010万元以上部分万元以上部分按按2%2%提成;每月销售提成;每月销售3030万至万至5050万(含万(含5050万元)万元)者,超过者,超过3030万元部分按万元部分按5%5%提成;超过提成;超过5050万元部分万元部分按按10%10%提成。以上各个级别的计算实行累加计算。提成。以上各个级别的计算实行累加计算。编程按输入每个销售人员编号和销售额,计算每编程按输入每个销售人员编号和销售额,计算每个销售人

48、员的报酬(报酬结果按四舍五入规则取个销售人员的报酬(报酬结果按四舍五入规则取整)。整)。2021-10-2155分支结构嵌套举例分支结构嵌套举例 编程思路:为了编程方便,先将每个级别编程思路:为了编程方便,先将每个级别的基准报酬计算出来,再根据销售额的多少用的基准报酬计算出来,再根据销售额的多少用嵌套分支结构判断计算。该程序代码如下:嵌套分支结构判断计算。该程序代码如下:clearclearaccept accept 销售员编号:销售员编号: to salenumber to salenumberinput input 销售额:销售额: to salevolume to salevolumep

49、ay1=1000pay1=1000pay2=pay1+round(300000-100000)pay2=pay1+round(300000-100000)* *0.02,0)0.02,0)pay3=pay2+round(500000-300000)pay3=pay2+round(500000-300000)* *0.05,0)0.05,0)2021-10-2156分支结构嵌套举例分支结构嵌套举例if salevolume=100000if salevolume=100000 pays=pay1 pays=pay1elseelse if salevolume=300000 if salevolu

50、me=300000 pays=pay1+round(salevolume-100000) pays=pay1+round(salevolume-100000)* *0.02,0)0.02,0) else else if salevolume=500000 if salevolume=500000 pays=pay2+round(salevolume-300000) pays=pay2+round(salevolume-300000)* *0.05,0)0.05,0) else elsepays=pay3+round(salevolume-500000)pays=pay3+round(salev

51、olume-500000)* *0.1,0)0.1,0) endif endif endif endifendifendif?salenumber+?salenumber+号销售员工作报酬:号销售员工作报酬:+str(pays,6,0)+str(pays,6,0)+元。元。 return return 2021-10-2157多分支选择结构多分支选择结构 格式:格式:do casedo case case case 1 1 case case 2 2 . . . . case case n n otherwise otherwise n+1endcaseendcase功能:根据功能:根据 是否

52、成立来决定是否执行其下的命令序列。是否成立来决定是否执行其下的命令序列。 2021-10-2158多分支选择结构说明多分支选择结构说明(1 1)多分支选择结构执行的过程是:系统依次判断各)多分支选择结构执行的过程是:系统依次判断各 是否满足,若某一是否满足,若某一 为为.t.t.,就执行该,就执行该 下的下的 ,执行后不再判断其它,执行后不再判断其它 ,而转去执行而转去执行endcaseendcase后面的第一条命令。如果没有一个后面的第一条命令。如果没有一个 为为.t.t.,就执行,就执行otherwiseotherwise后面的后面的 命令序列命令序列n+1n+1,直到直到endcasee

53、ndcase;如果没有;如果没有otherwiseotherwise,则不作任何操作,则不作任何操作就转向就转向endcaseendcase之后的第一条命令。之后的第一条命令。(2 2)do casedo case语句和语句和endcaseendcase语句必须成对出现,各占语句必须成对出现,各占一行。一行。2021-10-2159多分支选择结构说明多分支选择结构说明(3 3)多分支选择结构中各)多分支选择结构中各casecase语句后的语句后的 是按是按其先后顺序判断执行的,因此对实际问题进行编程其先后顺序判断执行的,因此对实际问题进行编程时,应认真考虑各个条件排列的先后顺序。时,应认真考虑

54、各个条件排列的先后顺序。 2021-10-2160多分支选择结构举例多分支选择结构举例 例例 6-12 6-12 用多分支选择结构编程计算用多分支选择结构编程计算 例例 6-116-11。程序代码如下:。程序代码如下: clearclearaccept accept 销售员编号:销售员编号: to salenumber to salenumberinput input 销售额:销售额: to salevolume to salevolumepay1=1000pay1=1000pay2=pay1+round(300000-100000)pay2=pay1+round(300000-100000)

55、* *0.02,0)0.02,0)pay3=pay2+round(500000-300000)pay3=pay2+round(500000-300000)* *0.05,0)0.05,0)2021-10-2161多分支选择结构举例多分支选择结构举例do casedo case case salevolume=100000 case salevolume=100000pays=pay1pays=pay1 case salevolume=300000 case salevolume=300000pays=pay1+round(salevolume-100000)pays=pay1+round(sa

56、levolume-100000)* *0.02,0)0.02,0) case salevolume=500000 case salevolume=500000pays=pay2+round(salevolume-300000)pays=pay2+round(salevolume-300000)* *0.05,0)0.05,0) otherwise otherwisepays=pay3+round(salevolume-500000)pays=pay3+round(salevolume-500000)* *0.1,0)0.1,0)endcaseendcase?salenumber+?salenu

57、mber+号销售员工作报酬:号销售员工作报酬:+str(pays,6,0)+str(pays,6,0)+元。元。 return return 2021-10-21626.2.3 6.2.3 循环结构循环结构 在程序设计中,有时需要从某处开始在程序设计中,有时需要从某处开始有规律地反复执行某些类似的操作,这有规律地反复执行某些类似的操作,这些类似的操作一般用循环结构程序设计些类似的操作一般用循环结构程序设计来解决。在来解决。在visual foxprovisual foxpro中,提供了中,提供了3 3种循环结构,即:种循环结构,即:l 当型循环结构当型循环结构l 步长型循环结构步长型循环结构l

58、 表扫描型循环结构表扫描型循环结构2021-10-2163当型循环结构当型循环结构 格式:格式: do while do while 命令序列命令序列 enddo enddo功能:根据功能:根据 是否满足来决定是否执行是否满足来决定是否执行 命令序列命令序列 。2021-10-2164当型循环结构说明当型循环结构说明 (1 1)当型循环执行的过程是:根据)当型循环执行的过程是:根据 的逻辑值,进的逻辑值,进行判断。如果行判断。如果 的逻辑值为的逻辑值为.t.t.,则执行,则执行do whiledo while和和enddoenddo之间的之间的 命令序列命令序列 (也称为循环体),当(也称为循

59、环体),当 命令序列命令序列 包含的所有命令执行完毕后,程序自动返回到包含的所有命令执行完毕后,程序自动返回到do whiledo while语语句,每执行一遍就判断一次句,每执行一遍就判断一次do whiledo while语句中的语句中的 。如。如果果 仍然为仍然为.t.t.,则继续执行,则继续执行do whiledo while和和enddoenddo之间的之间的 命令序列命令序列 ,直到,直到 的逻辑值为的逻辑值为.f.f.,结束循环,转,结束循环,转去执行去执行enddoenddo之后的第一条命令。之后的第一条命令。(2 2)do whiledo while和和enddoenddo语

60、句应配对使用,各占一行。语句应配对使用,各占一行。2021-10-2165当型循环结构说明当型循环结构说明 (3 3)在)在 命令序列命令序列 的适当位置可以放置的适当位置可以放置exitexit和和looploop语句,用以对循环过程作特殊处理。语句,用以对循环过程作特殊处理。exitexit的功能是:的功能是:结束循环命令,转去执行结束循环命令,转去执行enddoenddo之后的第一条命令。之后的第一条命令。looploop语句的功能是:终止本次循环命令,返回到循环语句的功能是:终止本次循环命令,返回到循环入口。入口。exitexit和和looploop语句只能在循环结构中使用,并且语句只

温馨提示

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

评论

0/150

提交评论