![VFP第7章结构化程序设计课件_第1页](http://file4.renrendoc.com/view/4f1fe51c9b845005183df1b9284788a1/4f1fe51c9b845005183df1b9284788a11.gif)
![VFP第7章结构化程序设计课件_第2页](http://file4.renrendoc.com/view/4f1fe51c9b845005183df1b9284788a1/4f1fe51c9b845005183df1b9284788a12.gif)
![VFP第7章结构化程序设计课件_第3页](http://file4.renrendoc.com/view/4f1fe51c9b845005183df1b9284788a1/4f1fe51c9b845005183df1b9284788a13.gif)
![VFP第7章结构化程序设计课件_第4页](http://file4.renrendoc.com/view/4f1fe51c9b845005183df1b9284788a1/4f1fe51c9b845005183df1b9284788a14.gif)
![VFP第7章结构化程序设计课件_第5页](http://file4.renrendoc.com/view/4f1fe51c9b845005183df1b9284788a1/4f1fe51c9b845005183df1b9284788a15.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章VisualFoxPro程序设计教学目标掌握程序与命令的区别
;掌握程序文件的建立与运行
;掌握结构化程序设计的三种基本结构及其特点;调试应用程序的基本方法。
双语课堂重点与难点:程序调试的基本方法与步骤,检测和排除程序中错误(尤其是逻辑错误)的方法与技巧
。7.1程序与程序文件例如:要计算圆面积,就要依次完成下列三步:步骤1:
给出圆半径r步骤2:
按公式S=лr*r计算圆柱体积步骤3:
输出圆面积
VFP程序是用命令来叙述这个过程,虽然这里选用计算圆面积并非典型的数据处理问题,但是编程思想是相似的,下面写出求半径为10cm的圆面积计算程序
r=10
}
输入
S=3.1415*r*r
}
处理
?″圆面积=″,S
}
输出
这3条命令的三大步骤决定了这个程序的逻辑性,只有执行了r=10后,才能计算S,之后才能输出S,否则会因变量找不到而终止程序。程序的通用性
程序可反复执行,故编制程序应具有通用性,使程序的应用范围更广。只能计算r=10的圆面积程序就价值不大,若对任意半径都能计算圆面积,则程序的功能就具有通用性。通常在程序执行过程中输入原始数据与处理要求,就能更加体现出程序的通用性。下面是一个完整的VFP程序
*功能说明:求圆形的面积。*文件名:E7_1.PRGCLEARSETTALKOFFINPUT
“请输入圆的半径,半径=”
TO
RS=PI()*R*R?“半径为”+ALLTRIM(STR(R))+“的圆,面积=”,SSETTALKONRETURN
程序书写规则①命令分行程序中每条命令都以回车键结束,一行只能写一条命令。若命令需分行书写,应在一行终了时键入续行符“;”,然后按回车键。VFP程序不区分命令动词和短语的大小写。②命令注释程序中可插入注释,以提高程序的可读性。
程序文件的创建与编辑通常采用文本编辑器来进行,例如Word、记事本等均能创建程序文件。一般情况是调用VFP系统内置的文本编辑器。通常有两种方法:命令方式与菜单方式。1.建立程序
命令方式:MODIFYCOMMAND
<程序名>
说明:<程序名>为主文件名,其扩展名的默认值为.PRG
示例:建立名为E7_2.PRG的应用程序,使其能够在学生表XS.DBF中,显示所有平均成绩最高和平均成绩最低的记录。命令窗口:MODICOMM
E7_2.PRG编辑窗口:
*L1.PRGSETTALKOFFUSEXSCLEARINDEXON
平均成绩
TO
CJIN
&&按平均成绩升序索引GOBOTTOMH=平均成绩
&&取最高成绩LISTFOR
平均成绩=H
&&显示所有平均成绩最高的记录GOTOPL=平均成绩
&&取最低成绩LISTWHILE
平均成绩=L
&&显示所有平均成绩最低的记录USESETTALKON
2.保存程序●
从【文件】菜单中选择【保存】命令。●
按Ctrl+W组合键。
(使用Ctrl+Q组合键,不存盘退出编辑窗口)●
若关闭一个没有保存的程序,会弹出相应对话框,提示用户是否保存已作的修改。●
若保存了一个由项目管理器创建的程序,则该程序被加入到项目中。
若保存一个尚未命名的程序,则会打开“另存为…”对话框,提示用户为程序指定程序名。程序保存后,可以运行或修改它。
●
选择【文件】菜单的【打开】命令,系统弹出“打开”对话框,在【文件类型】列表框中选择【程序】,然后在文件列表中选择要修改的程序,单击【确定】按钮。
●
若程序包含在一项目中,则在【项目管理器】中选定它并单击【修改】按钮。
使用“编辑”菜单中的选项“复制”、“剪切”和“粘贴”等功能可加速编辑过程。修改完成后保存。3.修改程序首先按以下方式打开想要修改的程序:●
在命令窗口键入命令:
MODIFYCOMMAND<程序文件名>4.运行程序运行程序的方法有以下三种:●
若程序包含在一个项目中,则可在项目管理器中选定它,并选择【运行】命令。●
在【程序】菜单中选择【运行】菜单项,然后在程序列表中,选择想要运行的程序,并单击【运行】按钮。●
在命令窗口中输入命令:DO
<程序文件名>在VFP系统中,一个程序文件通过编译、连编可产生不同的目标代码文件,这些目标代码文件名相同,但是扩展名不同。这些文件扩展名的含义如下:PRG:VFP源程序文件。FXP:VFP编译文件,一旦源程序文件被执行,自动产生FXP文件。APP:VFP应用程序文件。EXE:Windows可执行文件。
当DO命令执行程序文件时,如果没有指定文件扩展名,系统按下列顺序执行某个文件:EXEAPPFXPPRG7.2VFP程序设计中常用的命令1.WAIT命令功能:暂停正在运行的程序,直到输入一个字符为止。格式:
WAIT[<提示信息>][TO<内存变量名>][WINDOWS[AT<行,列>]][CLEAR][NOCLEAR][TIMEOUT<数值表达式>]说明:(1)若选择TO<内存变量名>子句,则将输入的单个字符存入指定的内存变量。若直接输入回车键,则内存变量中存入空字符串。内存变量的类型为字符型。(2)若选择<提示信息>子句,执行此命令时,屏幕上将显示提示信息,否则,屏幕上将显示“按任意键继续…”功能:暂停程序的执行,将从键盘上接收的字符串数据存入指定的内存变量中。提供此命令是为了向后兼容,在VFP中可以用格式输入命令实现。2.字符接收命令格式:ACCEPT
[<提示信息>]
TO
<内存变量名>参数描述:提示信息:指定提示信息字符串,其后是数据输入区。提示文本的字体与VFP主窗口的字体相同。但输入的字符数据用9磅FoxFont字体显示。提示信息缺省,屏幕上将有输出任何信息。内存变量名:指定存储字符数据的内存变量或数组元素。如果没有定义此内存变量,ACCEPT将自动创建。如果没有输入数据就按Enter键,内存变量或数组元素则为空字符串。说明:
ACCEPT命令允许直接向内存变量或数组元素输入字符数据,输入时不需要用定界符将字符括起来。执行此语句时,先在屏幕上显示<提示信息>,光标紧随其后,然后暂停程序运行,等待用户从键盘上输入信息。输入的信息可以是任何可显示的ASCII码字符串,并以回车键结束。系统将此字符串信息存入指定的内存变量中,然后,继续运行暂停的程序。3.通用数据接收命令ACCEPT语句只能给字符型内存变量提供数据。如果用户想给其他类型的内存变量提供数据,可以使用下列命令:
格式:INPUT[<提示信息>]
TO
<内存变量名>功能:接收从键盘上输入的表达式,并将计算结果存入指定的内存变量或数组元素中。包含此命令也是为了提供向后的兼容性。在VFP中,该命令也可以用格式输入命令实现。参数描述:提示信息:提示用户输入数据。内存变量名:指定一个内存变量或数组元素,存储从键盘输入的数据。如果指定的内存变量或数组元素不存在,VFP将自动创建该内存变量或数组。说明:INPUT语句与ACCEPT语句的执行过程相同,功能相似。<内存变量名>的数据类型取决于输入数据的类型。可以为数字型、字符型、日期型和逻辑型。<对话框类型>的值为三者之和,如“1+48+256”中:“1”表示在对话框中设置“确定”和“取消”两个按钮;“48”表示对话框中图标为“警告”(惊叹号);“256”则表示对话框中第2个按钮为默认按钮。<标题文字>:指定对话框标题栏的显示文本。缺省该参数则在标题栏显示“MicrosoftVisualFoxPro”。函数返回值是一个数值,意义见表7.2。用户将根据操作时按下的按钮来获得相应的返回值,编程时根据返回值来设置动作。
5.中止程序运行在程序运行过程中,按Esc键可以中止程序的运行,系统会显示警告对话框让用户选择:取消:
中止程序运行,这是缺省选择;挂起:
暂停程序运行,返回命令窗口。当选择【程序】菜单下的【继续执行】选项或在命令窗口中输入“Resume”命令,系统则从中止的地方继续程序的执行;忽略:
忽略所给的Esc,继续程序的执行。6.注释命令
格式一:NOTE
|
*
<注释字符串>
格式二:&&
<注释字符串>说明:上述命令不作任何操作,只是注释标记,用于说明程序或命令的功能等。注释内容不需要用定界符定界,执行时也不显示。注释信息如果在一行内没有写完,换行时也必须再写注释命令。NOTE或*是用于整行注释的,因此,它必须写在每一个注释行的开头;而&&命令是用于注释一行的部分内容的,因此,它可以写在行中(命令的尾部、注释信息的头部),这是程序中唯一可以在一个逻辑行写两个语句的命令。3.清屏命令
格式一:CLEAR
格式二:@
<行1,列1>
CLEARTO
<行2,列2>
功能:清除屏幕上所有显示内容,将光标置于屏幕左上角。
功能:清除屏幕上相应区域的显示内容。7.3程序的基本结构一.程序的结构顺序结构:命令按其在程序中书写的先后顺序执行。分支结构:根据给定的逻辑条件在一条或多条程序路径中选择一个执行。循环结构:在满足条件的情况下,重复执行某一命令序列,并在条件不成立的时候中止循环。二.分支结构程序设计格式:IF<条件> <语句序列1>
[ELSE <语句序列2>]ENDIF……语句序列2语句序列1ENDIF后的语句条件为真?YN1.IF语句参数描述:条件:指定要计算的逻辑表达式。如果<条件>的值为“真”,则执行IF语句之后的<语句序列1>;如果<条件>的值为“假”,而且包含ELSE语句和<语句序列2>,则执行<语句序列2>;如果<条件>的值为“假”,而且不包含ELSE语句和<语句序列2>,则程序忽略IF语句和ENDIF语句之间的所有语句,程序从ENDIF语句后的第一条命令开始继续往下执行其他程序。注意:(1)IF
和
ENDIF必须成对出现。(2)<条件>可以是各种表达式的组合,但其值必须是逻辑值“真”或“假”值。(3)语句序列可以是一组命令,也可以是其他程序的控制命令,命令可以嵌套写入(如IF的嵌套结构)。P160:例7.112.分支选择函数IIF()功能:当条件为真时,取表达式1的值作为函数返回值,否则取表达式2的值作为函数返回。例如:REPLACE
基本工资
WITH
;
基本工资+IIF(基本工资<=500,50,20)格式:
IIF(<条件>,<表达式1>,<表达式2>)
IF条件1……
IF条件2 …… IF条件3 …… ENDIF IF条件4 …… ENDIF
ELSE ……
ENDIF…… ELSE
IF条件5 ……ENDIFENDIF3.IF语句的嵌套结构P161:例7.14格式:DOCASE
CASE
<条件1>
<语句序列1>……CASE<条件n>
<语句序列n>[OTHERWISE
<语句序列n+1>]ENDCASE
条件1为真?……语句序列1语句序列n+1ENDCASE后的语句语句序列n条件n为真?yyn多分支语句流程图n4.CASE多分支语句参数描述:CASE
<条件表达式1><语句序列1>…:VFP在执行这条多分支选择命令时,按命令行中写出的条件表达式的顺序逐条检查<条件表达式>,当遇到第一个结果为“真”的<条件表达式>时,就执行它后面的语句序列。语句序列中的命令逐条被执行,直到遇到下一个CASE或OTHERWISE或ENDCASE,然后再从ENDCASE语句后的第一条命令开始继续执行其他命令。如果一个CASE<条件表达式>为“假”,就忽略它后面的语句序列。P162:例7.15二.循环结构程序设计1.基于条件的循环:DOWHILE
命令格式:DOWHILE
<条件>
循环体语句
ENDDO条件为真?ENDDO后面的语句……循环体语句YN参数描述:条件表达式:指定一个逻辑表达式,它的值决定是否执行DO
WHILE和ENDDO之间的命令集合。如果<条件表达式>的值为“真”,就执行命令集。语句序列:指定当<条件表达式>计算为“真”时要执行的VFP命令集。ENDDO:表明DOWHILE语句的结束。P164:例7.182.循环结构中的两条专用命令DOWHILE
<条件> <语句序列1>
[LOOP
<语句序列2>]ENDDO……条件为真?…………LOOP
YENDDO后面的语句
Y
N
N
格式一:
LOOPDOWHILE
<条件>
<语句序列1>
[EXIT
<语句序列3>]ENDDO条件为真?…………EXIT
YENDDO后面的语句
Y
N
N
格式二:
EXIT功能:LOOP:直接将程序控制返回到DOWHILE语句,并重新计算条件值。LOOP可以放在DOWHILE和ENDDO之间的任何位置。EXIT:将程序控制从DOWHILE和ENDDO循环的内部转到ENDDO后的第一条命令。EXIT可以放在DOWHILE和ENDDO之间的任何位置。例:
求连续N个不是7的倍数的自然数之和,当和是101的倍数时显示最后的自然数和它们的和。
STORE0TOAA,BB
&&定义两个变量,用以保存累加值和累加数DOWHILE.T.
BB=BB+1
IFMOD(BB,7)=0
&&判断BB是否为7的倍数
LOOP
&&如果BB是7的倍数则返回去将BB再加1
ENDIF
AA=AA+BB
&&将BB不是7的倍数的连续自然数累加求和
IFMOD(AA,101)=0
&&判断AA是否是101的倍数
EXIT
&&如果AA是101的倍数,则结束程序的循环
ENDIFENDDO?BB,AA
&&屏幕显示结果为207和18483
P167:例7.21FOR
<内存变量>=<初值>
TO<终值>
[STEP
<步长>]
<语句序列>
[LOOP][EXIT]ENDFOR|NEXT……变量←变量+步长变量超过终值?ENDFOR后面的语句
N
Y内存变量←初值语句序列3.基于计数的循环:FOR
循环参数描述:内存变量:指定作为计数器的内存变量或数组元素。在执行FOR…ENDFOR语句之前,此内存变量或数组元素不一定存在。初值TO终值:初值是计数器的初始值,而终值是计数器的终止值。STEP<步长>:是计数器递增或递减的步长。如果步长是负值,则计数器递减;如果省略STEP子句,计数器每次递增1。P169:例7.22……EOF()为真?语句序列条件为真?ENDSCAN后面的语句
Y
Y
N4.基于表的循环:SCAN
循环在指定范围内?SKIP
Y
N
NSCAN
[<范围>][FOR<条件1>]
[WHILE<条件2>]
<语句序列>
[LOOP][EXIT]ENDSCAN参数描述:范围:指定对当前表中记录扫描的范围。只有在范围之内的记录才有可能扫描到。SCAN命令的默认范围为ALL。FOR<条件>:只有条件表达式的计算结果为“真”的记录,才能对其执行命令。包含FOR子句可以筛选出不想扫描的记录。WHILE<条件>:指定一个逻辑表达式作为执行命令的条件,只要逻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代产品设计中的民族图案与色彩研究
- 现代纹样设计在商业品牌推广中的应用实践
- 现代办公环境下的AI餐厅服务应用研究
- 现代物流行业的服务创新与升级
- 现代办公环境下的报告制作技巧
- 2024年五年级语文上册 第六单元 口语交际:父母之爱说课稿 新人教版
- Module7 Unit2 This little girl can't walk(Period 1) (说课稿) -2024-2025学年外研版(三起)英语五年级上册
- 7《什么比猎豹的速度更快》说课稿-2024-2025学年五年级上册语文统编版001
- 13美丽的冬天 说课稿-2024-2025学年道德与法治一年级上册统编版
- 2024-2025学年高中化学 第1章 第4节 第2课时 有机物分子式与分子结构的确定说课稿 新人教版选修5
- 福建省泉州市晋江市2024-2025学年七年级上学期期末生物学试题(含答案)
- 医美注射类知识培训课件
- 2025年春新人教版物理八年级下册课件 第十章 浮力 第4节 跨学科实践:制作微型密度计
- 货运车辆驾驶员服务标准化培训考核试卷
- 财务BP经营分析报告
- 三年级上册体育课教案
- 2024高考物理二轮复习电学实验专项训练含解析
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 高中英语:倒装句专项练习(附答案)
- 2025届河北衡水数学高三第一学期期末统考试题含解析
- 2024年山东省青岛市普通高中自主招生物理试卷(含解析)
评论
0/150
提交评论