第7章结构化程序设计.ppt
《第7章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《第7章结构化程序设计.ppt(80页珍藏版)》请在课桌文档上搜索。
1、第 7 章结构化程序设计,理解程序的概念、掌握程序的建立与运行方法掌握程序设计中常用的输入、输出语句理解并掌握程序的基本控制结构:顺序结构、分支(选择)结构、循环结构理解并掌握过程与用户自定义函数,教 学 目 标,程序的概念、程序的建立与运行方法程序设计中常用的输入输出语句程序的控制结构:顺序结构、分支(选择)结构、循环结构过程的概念、用户自定义函数的目的与方法,难点是:程序设计算法、分支程序设计、循环程序设计,重 点、难 点,7.1程序的概念(1)定义:程序是能够完成一定任务的命令的集合。这组命令被存放在称为程序文件或命令文件的文本文件中,VFP默认的程序文件的扩展名为PRG。程序方式与单命
2、令处理方式有以下优势:可以利用编辑器,方便地输入、修改和修改程序。可以用多种方式、多次运行程序。可以在一个程序中调用另一个程序。,7.1 程序的概念,SET TALK OFFCLEAROPEN DATABASE student&打开数据库 USE jbqkb&打开表LISTCLOSE DATABASE&打开数据库、表SET TALK ONRETURN,示例程序:,程序的书写规则和说明:,程序一般以SET TALK OFF开头,以SET TALK ON、RETURN语句结束。SET TALK ON|OFF的意义是打开或关闭人机会话方式,控制VFP信息在主窗口、状态栏或用户自定义的窗口里是否显示。
3、&是在程序中插入的命令注释,注释为非执行代码,不影响程序的功能。以NOTE或*开头的代码行也是注释行。注释行能增强程序文件的易读性。VFP中的注释行显示为绿色。程序中每条命令以回车键结尾,一行只能写一条命令。若命令太长时需要分行书写,在一行末尾键入续行符“;”,再按回车键。,程序中常出现CANCEL、RETURN、QUIT、DO 等命令,其意义如下:CANCEL:终止程序运行,清楚所有私有变量,返回命令窗口。RETURN:结束当前程序的运行,返回调用它的上级程序,若无上级则返回到命令窗口。QUIT:退出VFP系统。DO:转去执行另一个程序。,程序的书写规则和说明:,(1)建立源程序有多种方法,
4、常用的有:执行“文件新建”命令,在对话框中选取择“程序”文件。在“项目管理器”中选定“代码”选取项卡中的“程序”项,选择“新建”按钮。在“命令”窗口执行命令:MODIFY COMMAND.|?在编辑过程中注意保存程序。修改程序的方法与建立程序的方法类似。,7.1.2.程序的建立与运行,(2)程序的运行方法:执行“程序运行”命令,在“运行”对话框中选择要运行的程序名在“项目管理器”中选定“代码”选取项卡中“程序”项下的程序,选择“运行”按钮在“命令”窗口中,输入:DO 选择多条命令,然后单击鼠标右键,在弹出的快捷菜单菜单中选择“运行所选区域”,可运行程序的一部分。,7.1.2.程序的建立与运行,
5、VFP程序文件通过编译、连编,可产生不同的目标代码文件,以不同的扩展名标识。用DO命令执行程序文件时,如果没有指定扩展名,系统将按以下顺序执行某种目标代码文件:EXE(VFP的可执行文件)、APP(VFP的应用程序文件)、FXP(VFP的编译文件)、PRG(VFP的源程序文件)。,7.1.3.常用的输入输出语句,(1)ACCEPT命令【格式】ACCEPT TO【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。【说明】若选用提示信息,系统将先显示提示信息的值作为提示信息,并将输入的字符串赋值给。该命令只能接收字符串,而不需加定界符,否则系统将把定界符作为字符串的一部分
6、。若不输入任何字符而直接按回车键,系统将把空串赋值给指定的内存变量。,SET TALK OFFCLEARACCEPT“请输入数据库名:”TO AAAOPEN DATABASE&AAA ACCEPT 请输入表名 TO BBBUSE&BBBLISTUSESET TALK ONRETURN,【例7-1】编程从键盘输入某数据库的文件名,要求打开该数据库、表并显示其内容。,(2)INPUT命令【格式】INPUT TO【功能】在程序执行过程中,将用户输入的内容赋值给指定内存变量【说明】若选用提示信息,系统将先显示提示信息的值作为提示信息,并将输入的数据赋值给。可以输入各种类型数据,也可以是常量、变量、函数
7、或表达式等形式,按回车键结束输入。输入非数值型数据要加定界符。如输入逻辑型常量时要用圆点定界(.T.)、输入日期型常量要用大括号2007-05-10等。,【例7-2】从键盘输入两个任意正数,编程求以两数为边长的长方形面积。程序文件名为PROG2.PRGSET TALK OFFCLEARINPUT 长方形一边的长为:TO AINPUT 长方形另一边的长为:TO BS=A*B?长方形的面积为:,SSET TALK ONRETURN,(3)WAIT命令【格式】WAIT 提示信息 TO WINDOW AT,NOWAITCLEAR|NOCLEARTIMEOUT【功能】显示信息并暂停程序执行,当按下任意键
8、或单击鼠标后继续执行。【说明】若选用提示信息,系统将先显示提示信息的值作为提示信息,并将输入的单字符赋值给。若不选用提示信息,则显示默认的提示信息“按任意键继续”。用来保存用户键入的单字符,其类型只能是字符型。若不选TO 短语,键入的单字符不保留。,如果指定WINDOW子句,则会出现一个WAIT提示窗口,在窗口中显示提示信息。提示窗口一般定位于WINDOW子句,也可用AT短语指定其在主窗口中的位置。若同时选用NOWAIT短语和WINDOW子句,系统不等待用户按键,直接向下执行。若选用NOCLEAR短语,则不关闭提示窗口,直到用户执行下一条WAIT WINDOW命令或WAIT CLEAR命令为止
9、。TIMEOUT 选项指在中断WAIT 命令之前,等待键盘或鼠标输入的秒数,一旦超时就不再等待用户按键,自动向下执行。,【例7-3】用WAIT 命令在信息提示窗口显示:谢谢使用Visual FoxPro!WAIT“谢谢使用Visual FoxPro!”WINDOWS TIMEOUT 10,三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。
10、,4)?|?输出命令【格式】?|?表达式1,表达式2【功能】计算表达式的值,输出计算结果。【说明】?计算表达式的值,输出一个回车换行符,再将计算结果输出到主窗口;若省略表达式,则显示或打印一空行。?功能同上,但不输出回车换行符,即同行输出。,4.格式化输入输出命令【格式】SAY GET【功能】在指定的行和列的位置上输出表达式的值,同时可以对GET后面的变量值进行修改或重新输入。【说明】行号、列号指信息在屏幕上显示的位置,第1行、第1列均为0。表达式通常为字符串。若选用GET,变量必须先赋初值,并反向显示。若要编辑GET变量,必须用READ激活。,【例7-3】设有如下自由表sb.dbf,记录内容
11、如下,编程:能根据记录号修改某设备的价格与部门编号。编号 名称 部门 价格 016-1 车床 21 1121100 016-2 钻床 21 2111000 016-3 磨床 22 1121300 016-4 微机 23 11000,Set talk offClear&清屏幕use sbjlh=1&设定get 变量的初值2,10 say“请输入记录号:”get jlhread&激活get 子句变量 jlh 用于编辑go jlh&指向第 jlh 条记录4,10 say“请修改第”+str(jlh,1)+“台设备的数据”&输出字串6,10 say“价格”get 价格&价格:字段变量8,10 say“
12、部门”get 部门read&激活get子句变量,用于编辑set talk on,7.2 程序的基本结构,Visual FoxPro系统的程序有两个特点:一是程序控制流模式,由顺序、分支、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。常见的控制结构如下:1顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。2分支结构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。,3循环结构 循环结构则能够使某些语句
13、或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不在一个固定的位置上,而是分散在程序的许多位置上重复执行,可将其与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性和模块化。我们称这种具有独立功能而且可以被其它程序调用的程序序列为过程。,7.2.1 分支结构,分支结构形式有如下三种:(1)单向分支单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。【格式】IF条件表达式 命令行序列 ENDIF【功能】该语句首先
14、计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行ENDIF后面的第一条命令。,【例7-4】求解一般一元二次方程AX2BXC0的实根。程序如下:SET TALK OFFCLEARINPUT TO AINPUT TO BINPUT TO CDB2-4*A*CIF D=0X1=(-B+SQRT(D)/(2*A)X2=(-B-SQRT(D)/(2*A)?X1,X2ENDIFSET TALK ON,双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。【格式】IF条件表达式 命令行序列1 ELSE 命令行序列2 ENDIF【功能】该语句首先计算条件表达式的值,当
15、条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行ENDIF后面的第一条命令。,【例7-5】编写一密码校验程序(假设密码为ABC)。SET TALK OFFCLEARACCEPT“请输入您的密码:”TO AAAIF AAA=”ABC”CLEAR?”欢迎使用本系统!”ELSE?”密码错误!”WAITQUITENDIFSET TALK ON,解一元二次方程的流程图,流程图,(3)多向分支 多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。(1)【格式】DO CASE CASE条件表达式1 命令行序列1
16、CASE条件表达式2 命令行序列2 CASE条件表达式N命令行序列N OTHERWISE 命令行序列N+1 ENDCASE,【功能】该语句根据给出的N个条件表达式的值,选择N+1个命令行序列中的一个执行。当所有CASE中条件表达式的值都是假时,如果有OTHERWISE项,则执行命令行序列N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。,使用分支语句应注意以下几点:(1)IF ENDIF和DOCASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。(2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值
17、。(3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。(4)DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。,4使用分支语句应注意的几点(1)IF ENDIF和DO CASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。(2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。(3)命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。(4)DO CASE EN
18、DCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行ENDCASE的后面的第一条命令。,要 点,SET TALK OFFCLEARINPUT“请输入收入:”TO PDO CASECASE P800 R=0CASE P2000 R=0.05,【例7-6】假设收入(P)与税率(R)的关系如下表,编程求税金。0 P800R=0.05 800 P2000 0.08 2000P5000 0.1 P5000,程序如下:SET TALK OFFCLEARINPUT“请输入收入:”TO PDO CASECASE P800 R
19、=0CASE P2000 R=0.05CASE P5000 R=0.08OTHERWISE R=0.1ENDCASETAX=P*R?”税金为:”,TAXSET TALK ON,7.2.2 循环结构,循环结构用于实现有规律性的重复操作,控制程序段的反复操作,直到满足某种条件为止,具有这种功能的程序构成循环结构。被重复执行的程序段称为循环体。VFP支持三种循环结构:当型 DO WHILEENDDO,步长型 FORENDFOR,指针型 SCANENDSCAN。,7.2.2 循环结构,循环结构,1.DO WHILE ENDDO循环语句(当型)【格式】DO WHILE LOOP EXIT ENDDO,【
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 程序设计

链接地址:https://www.desk33.com/p-750882.html