VFP结构化程序设计课件.ppt
《VFP结构化程序设计课件.ppt》由会员分享,可在线阅读,更多相关《VFP结构化程序设计课件.ppt(83页珍藏版)》请在课桌文档上搜索。
1、VFP程序设计基础,-第五章,本章内容,1.程序文件的建立与运行 2.VFP的基本语句,3.输入命令和输出命令 4.顺序结构程序设计,5.分支结构程序设计 6.循环结构程序设计,7.模块结构程序设计,1、程序文件的建立与运行,1.1 程序文件的建立 1.2 程序文件的运行 1.3 程序文件的修改,1.1 程序文件的建立与运行,第一章VFP的工作方式有哪两种?,交互操作方式程序执行方式将一批经常要执行的命令编写成程序,并将其存储为程序文件,1.1 程序文件的建立与运行,程序文件可用VFP自身提供的编辑器,也可用任一文本编辑器来建立和修改建立方式:菜单方式命令方式格式:MODIFY COMMAND
2、 利用项目管理器,举例,【例1】:在默认目录上建立一个查看xsda表结构和内容的命令文件 MODIFY COMMAND W1 CLEAR USE XSDA LIST STRUCTURE LIST USE,1.2 程序文件的运行,菜单方式(程序运行)命令方式格式:Do 程序名【例2】:运行已建立的文件W1.PRGdo W1.PRG&扩展名可省略在项目管理器中运行程序,1.3 程序文件的修改,菜单方式“打开”选择程序文件。命令方式modify command,2、VFP的基本语句,2.1 赋值语句2.2 语句的换行 2.3 注释语句2.4 暂停语句2.5 常用显示语句2.6 结束程序运行命令,St
3、ore to 名称列表=左边只能是一个变量名,不能是表达式X=33=xX=3+2=2+y,?表达式&换行输出?表达式&不换行输出,2.2 语句的续行,程序中每条命令都以回车键结尾,一行只能写一条命令。若命令需分行书写,应在一行终了时键入续行符“;”,然后按回车例如:Thisform.label1.caption=“太长了,我要”+;“换行了”注意:作为续行符的;只能出现在行尾,2.3 注释语句,功能:提高程序的可读性行首注释格式:Note*行尾注释格式:&,2.4 暂停语句,格式:WAITTOWINDOWAT,TIMEOUT n,若省略,默认的信息是“按任意键继续”,将按下的键以字符形式保存到
4、变量中,若变量不存在,则创建一个。注:单击鼠标,则存储空字符串,指定自动等待键盘或鼠标输入的秒数,若有此项,必须放语句的最后,举例,【例3】:在w2.prg文件里删除编号为1的记录,在删除前用wait语句暂停并提示信息。,2.5 常用显示语句,和命令功能:输出文本两者区别:换行输出;不换行输出如:这是显示文本的例子不换行结束?命令功能:将字符串表达式的值发送到打印机,2.6 结束程序运行命令,ReturnReturn To MasterCANCELQUIT,1、返回到上级程序模块2、返回到最上级主程序3、强行停止程序执行,关闭所有文件,返回系统交互状态4、停止所有程序运行,关闭所有文件,退回到
5、操作系统中,说明,3、输入命令和输出命令,3.1 INPUT命令 3.2 ACCEPT命令 3.3.SAY|GET命令,3.1 INPUT命令,格式:Input 提示语 to 变量名 可以接收数值、字符、日期、逻辑等类型的常量、变量,不能接收空表达式。字符常量必须定界【例】input“输入任意字符均可”to nn?nn,3.2 ACCEPT命令,格式:Accept 提示语 to 变量名只可以接收字符常量,字符不定界【例】Accept“输入任意字符”to nn?nn,4、顺序结构程序设计,程序执行时,按先后顺序依次执行。除非:遇到RETURN命令遇到文件尾(EOF)遇到另一个Procedure或
6、Function关键字是程序中最基本的常用的结构。,举例,【例4】在屏幕的指定位置显示系统日期和时间见程序w3.prg,说明,set talk onoff 命令功能:选择OFF状态则执行的中间结果不显示缺省时为ON状态,【例5】求1+2+3+4的结果(见w4.prg)set talk offn=0n=n+1 n=n+2n=n+3n=n+4?ncancel,output:10,【例6】:编一个程序,将华氏温度F=68度变换成摄氏温度,,并将结果显示出来(见w5.prg)计算公式为:C=5*(F-32)/9set talk offF=68C=5*(F-32)/9?“摄氏:”+STR(C,4)+“度
7、”+“,”+“华氏:”+STR(F,4)+“度”cancel,output:摄氏:20度,华氏:68度,【改编程序】:将任意华氏温度变换成摄氏温度(见w5_1.prg)计算公式为:C=5*(F-32)/9 set talk offInput“请输入华氏温度:”to FC=5*(F-32)/9?“华氏:”+STR(F,4)+“度”+“,”+“摄氏:”+STR(C,4)+“度”cancel,5、分支结构程序设计,简单分支结构,5.1,选择分支结构,5.2,分支嵌套结构,5.3,多路分支结构,5.4,体现计算机的逻辑判断能力根据给定的不同逻辑条件,转向执行不同的程序语句,进行相应的处理这些不同的转向
8、就构成了分支结构,5.1 简单分支结构,格式:if条件表达式Then 语句组endif,简单分支流程图,举例,【例7】:给出两个数,从大到小排列。(见w6.prg)input“请输入第一个数:”to x input“请输入第二个数:”to y if xy t=x x=y y=t endif?x,y cancel,5.2 选择分支结构,语句格式:IF条件表达式 语句组1ELSE 语句组2ENDIF语句功能:当条件为真时,先执行语句组1然后再去执行ENDIF后面的语句当条件为假时,先执行语句组2后再转去执行ENDIF后面的语句,选择分支流程图,【改编程序】:实现华氏温度与摄氏温度的转换.计算公式为
9、:C=5*(F-32)/9、F=C*9/5+32 set talk offinput“请选择转换方式:1、华氏转换成摄氏;2、摄氏转换成华氏”to zif z=1 Input“请输入华氏温度:”to F C=5*(F-32)/9?“华氏”+STR(F,4)+“度,摄氏”+STR(C,4)+“度”else Input“请输入摄氏温度:”to C F=C*9/5+32?“摄氏”+STR(C,4)+“度,华氏”+STR(F,4)+“度”endifcancel,(见w7.prg),【例8】:铁路托运行李,假设每张车票可按每公斤0.5元托运50公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.
10、3元。(见w8.prg)计算公式如下:X=0.5W W50 SET TALK OFF INPUT 请输入行李的重量为:TO W IF W=50 X=0.5*W ELSE X=0.5*50+0.8*(W-50)ENDIF?“行李的重量为:”+STR(W,6,2)+“公斤,其运费为:”+STR(X,6,2)+“元”CANCEL,根据学生档案表(XSDA.dbf),按输入的姓名查找其基本情况。分析:查找记录可以使用locate命令,判断是否找到记录可以使用found函数。SET TALK OFF CLEAR USE XSDA ACCEPT“”TO XM LOCATE FOR 姓名=XM IF FOU
11、ND()?”姓名:”+姓名?“性别:”,性别?“年龄:”+STR(年龄,2)?”出生年月:”+dtoc(出生年月)else?”对不起,没有查找到此人!”endif close all return,5.3 分支嵌套语句,有IF必有ENDIF,成对出现每一层的IF和ELSE及ENDIF必须一一对应IF-ELSE-ENDIF 每个命令各占一行,不能在同一行出现,第一层,ENDIF,ENDIF,IF 条件,ELSE,语句组3,第三层,ENDIF,第二层,【例9】:判断某个数是正数还是负数。Input“请输入一个数:”to numIf num0?“是正数!”Else if num0?“是负数!”els
12、e?“是0!”endifEndifcancel,(见w9.prg),Input“请输入成绩:”to scoreIf score=90?“成绩等级:”+“优秀”Else if score=80?“成绩等级:”+“良好”else if score=70?“成绩等级:”+“中等”else if score=60?“成绩等级:”+“及格”else?“成绩等级:”+“不及格”endif endif endif endifcancel,【例10】:把成绩转换成等级分数,(见w10.prg),DO CASE CASE 条件表达式1 语句组1 CASE 条件表达式2 语句组2:OTHERWISE 语句组 EN
13、DCASE,5.4 多路分支语句,执行多重选择,用于嵌套层数较多的情况,Input“请输入成绩:”to scoreDo case case score=90?“成绩等级:”+“优秀”case score=80?“成绩等级:”+“良好”case score=70?“成绩等级:”+“中等”case score=60?“成绩等级:”+“及格”case score60?“成绩等级:”+“不及格”Endcasecancel,【改编程序】:把成绩转换成等级分数,(见w10_1.prg),Set talk offClearUse xscjAccept“”to xmLocate for 姓名=xm平均分=in
14、t(语文+数学+外语+政治)/4If found()do case case 平均分=90 pd=“优秀”case 平均分=80 and 平均分90 pd=“良好”,根据学生成绩表(xscj)输入学生的姓名,并计算其平均成绩及等级。,(见li5-14.prg),case 平均分=70 and 平均分=60 and 平均分70 pd=“及格”otherwise pd=“不及格”Endcase?xm+”+str(平均分,6,2)+”等级为:”+pdElse?”对不起,没有找到这个人!”EndifClose allreturn,6、循环结构程序设计,当型循环结构,6.1,步长型循环结构,6.2,扫描
15、型循环结构,6.3,循环是指按照给定的条件去重复执行一段具有特定功能的程序,6.1 当型循环结构,语句格式:DO WHILE 条件表达式 语句组 ENDDO语句功能:当条件表达式的值为真时,执行语句;否则执行ENDDO后面的语句。,循环体,循环体可以是一个语句。一组语句。也可以是一个VFP子程序,说明,循环语句本身不会修改执行的条件要在循环体内设置修改循环条件的语句。否则会出现死循环。,循环语句流程图:,【例11】:以显示方式输出1到10的数字SET TALK OFFCLEARI1DO WHILE I=10?I II1ENDDO说明:语句II1就是用来修改循环条件,(见w11.prg),【例1
16、2】有程序如下:,(见w12.prg),STORE 0 TO C,WUSE XSDADO WHILE.NOT.EOF()DO CASE CASE 性别=.t.W=W+1 CASE 性别=.f.C=C+1 ENDCASE SKIPENDDO?“男生人数为:,W?“女生人数为:,CSET TALK ONCANCEL,转跳语句(LOOP),在DO WHILEENDDO循环体内提供了一条短路语句,可以起到转跳作用语句格式:LOOP语句功能:中断本次循环体的执行跳回到DO WHILE的开始处,重复条件的判断,说明:,LOOP语句一定要用在DOWHILE的循环体内才有意义LOOP语句使它后面的语句在本次循
17、环时不被执行在具有多重DO WHILEENDDO嵌套的程序中,LOOP只返回到与它本身所处的内层循环体相匹配的 DO WHILE语句,出口语句(EXIT),如果在循环的中途,需要结束循环而转到本层循环的后继命令去执行,可以用出口命令语句格式:EXIT语句功能:终止DO WHILEENDDO的正常循环无条件地转到ENDDO的后继命令去执行多重循环,只能跳出一层,多重循环中LOOP和EXIT的作用域,循环的嵌套:如果在一个循环程序的循环体内又包含着另一些循环,就构成了多层次(多重)循环LOOP和EXIT语句放在哪一个层次,它就只能在那个层次中起作用,这个层次就是它的作用域,DO WHILE DO
18、WHILE LOOP EXIT ENDDO LOOP EXITENDDO,【例13】:求0100之间奇数之和 SET TALK OFF X=0 Y=0 DO WHILE X100 X=X+1 IF INT(X/2)=X/2 LOOP ELSE Y=Y+X ENDIF ENDDO?0100之间的奇数之和为:,Y SET TALK ON CANCEL,用INT(X/2)是否等于X/2判断X是否为偶数是则执行LOOP语句,返回DO WHILE。如果INT(X/2)不等于X/2说明X的值为奇数。执行LOOP后面的语句,将奇数累加。,(见w13.prg),【例14】:计算123100的和SET TALK
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 结构 程序设计 课件
链接地址:https://www.desk33.com/p-245756.html