《VFP结构化程序设计课件.ppt》由会员分享,可在线阅读,更多相关《VFP结构化程序设计课件.ppt(83页珍藏版)》请在优知文库上搜索。
1、VFP程序设计基础程序设计基础-第五章第五章 1. 程序文件的建立与运行程序文件的建立与运行 2. VFP的基本语句的基本语句 3. 输入命令和输出命令输入命令和输出命令 4. 顺序结构程序设计顺序结构程序设计 5. 分支结构程序设计分支结构程序设计 6.循环结构程序设计循环结构程序设计 7.模块结构程序设计模块结构程序设计1.1 1.1 程序文件的建立程序文件的建立 1.2 1.2 程序文件的运行程序文件的运行 1.3 1.3 程序文件的修改程序文件的修改 第一章第一章VFP的的工作方式有哪工作方式有哪两种?两种?交互操作方式交互操作方式程序执行方式程序执行方式将将一批一批经常要执行的命令编
2、写成经常要执行的命令编写成程序,并将其存储为程序,并将其存储为程序文件程序文件程序文件可用程序文件可用VFPVFP自身提供的编辑器,也自身提供的编辑器,也可用任一可用任一文本编辑器文本编辑器来建立和修改来建立和修改建立方式:建立方式:菜单方式菜单方式命令方式命令方式格式:格式:MODIFY COMMAND 利用项目管理器利用项目管理器 程序文件的扩展名为程序文件的扩展名为.prg注意注意【例1】:在默认目录上建立一个查看xsda表结构和内容的命令文件 MODIFY COMMANDMODIFY COMMAND W1W1 CLEARCLEAR USE USE XSDAXSDA LIST STRUC
3、TURE LIST STRUCTURE LIST LIST USE USE菜单方式(程序菜单方式(程序运行)运行)命令方式命令方式格式: Do 程序名【例2】:运行已建立的文件W1.PRGdo W1.PRG &扩展名可省略扩展名可省略在项目管理器中运行程序在项目管理器中运行程序程序运行时,系统自动编译程序运行时,系统自动编译产生扩展名为产生扩展名为.FXP 的文件的文件注意注意菜单方式菜单方式“打开” 选择程序文件。命令方式命令方式modify command modify command 2.1 2.1 赋值语句赋值语句2.2 2.2 语句的换行语句的换行 2.3 2.3 注释语句注释语句2
4、.4 2.4 暂停语句暂停语句2.5 2.5 常用显示语句常用显示语句2.6 2.6 结束程序运行命结束程序运行命令令 Store to 名称列表名称列表=左边只能是一个变量名,不能左边只能是一个变量名,不能是表达式是表达式X=33=xX=3+2=2+y?表达式?表达式 &换行输出换行输出?表达式?表达式 &不换行输出不换行输出程序中每条命令都以回车键结尾,一行程序中每条命令都以回车键结尾,一行只能写一条命令。若命令需分行书写,应只能写一条命令。若命令需分行书写,应在一行终了时键入续行符在一行终了时键入续行符“;”,然后按,然后按回车回车例如:例如:Thisform.label1.captio
5、n=“太长了,我要太长了,我要”+;“换行了换行了”注意:注意:作为续行符的作为续行符的;只能出现在行尾只能出现在行尾功能:提高程序的可读性功能:提高程序的可读性行首注释行首注释格式:格式:NoteNote * * 行尾注释行尾注释格式:格式:& & 格式:格式:WAITWAITTOTOWINDOWATWINDOWAT,TIMEOUT nTIMEOUT n若省略,默认的信息是若省略,默认的信息是“按任意键继续按任意键继续”将按下的键以字符形式保存到将按下的键以字符形式保存到变量中,若变量不存在,则创变量中,若变量不存在,则创建一个。注:单击鼠标,则存建一个。注:单击鼠标,则存储空字符串储空字符
6、串指定自动等待键盘或鼠标输入指定自动等待键盘或鼠标输入的秒数,若有此项,必须放语的秒数,若有此项,必须放语句的最后句的最后【例3】:在w2.prg文件里删除编号为1的记录,在删除前用wait语句暂停并提示信息。和和命令命令功能:输出文本功能:输出文本两者区别:两者区别:换行输出;换行输出;不换行输出不换行输出如:如:这是显示文本的例子这是显示文本的例子不换行不换行结束结束? 命令命令功能:将字符串表达式的值发送到打印机功能:将字符串表达式的值发送到打印机ReturnReturn To MasterCANCELQUIT1、返回到上级程序模块、返回到上级程序模块2、返回到最上级主程序、返回到最上级
7、主程序3、强行停止程序执行,关闭所有文件,返回系统交互状态、强行停止程序执行,关闭所有文件,返回系统交互状态4、停止所有程序运行,关闭所有文件,退回到操作系统中、停止所有程序运行,关闭所有文件,退回到操作系统中说明说明3.1 INPUT3.1 INPUT命令命令 3.2 ACCEPT3.2 ACCEPT命令命令 3.3 .SAY|GET3.3 .SAY|GET命令命令 格式:格式:Input Input 提示语提示语 toto 变量名变量名 可以接收可以接收数值、字符、日期、逻辑数值、字符、日期、逻辑等类型等类型的常量、变量,不能接收空表达式。的常量、变量,不能接收空表达式。字符常量必须定界字
8、符常量必须定界【例例】 input input “输入任意字符均可输入任意字符均可” to to nnnn?nnnn格式:格式:AcceptAccept 提示语提示语 toto 变量名变量名只可以接收字符常量,字符不定界【例例】 Accept Accept “输入任意字符输入任意字符” to nnto nn?nnnn程序执行时,按先后顺序依次执行。程序执行时,按先后顺序依次执行。除非:除非:遇到RETURN命令遇到文件尾(EOF)遇到另一个Procedure或Function关键字是程序中最基本的常用的结构。是程序中最基本的常用的结构。语句语句1语句语句2语句语句n【例4】在屏幕的指定位置显示
9、系统日期和时间见程序见程序w3.prgw3.prgset talk onset talk onoffoff 命令功能:选择选择OFFOFF状态则执行的中间结果不状态则执行的中间结果不显示显示缺省时为缺省时为ONON状态状态【例例5 5】求求1+2+3+41+2+3+4的结果(见的结果(见w4.prgw4.prg)set talk offset talk offn=0n=0n=n+1 n=n+1 n=n+2n=n+2n=n+3n=n+3n=n+4n=n+4?n?ncancelcanceloutput: output: 1010 n=0+1=1n=0+1=1n=1+2=3n=1+2=3n=3+3=
10、6n=3+3=6n=6+4=10n=6+4=10【例例6 6】: :编一个程序,将编一个程序,将华氏华氏温度温度F=68F=68度度变变换成换成摄摄氏氏温度温度, ,,并将结果显示出来(见,并将结果显示出来(见w5.prgw5.prg)计算公式为:计算公式为:C=5C=5* *(F-32)/9(F-32)/9set talk offset talk offF=68F=68C=5C=5* *(F-32)/9(F-32)/9? ? “摄氏摄氏: :”+STR(C,4)+STR(C,4)+“度度”+ +“, ,”+ +“华华氏氏: :”+STR(F,4)+STR(F,4)+“度度”cancelcan
11、cel output:output:摄氏:20度, 华氏:68度【改编程序改编程序】:将任意将任意华氏华氏温度温度变变换成换成摄氏摄氏温度(见温度(见w5_1.prgw5_1.prg)计算公式为:计算公式为:C=5C=5* *(F-32)/9(F-32)/9 set talk offset talk offInputInput“请输入华氏温度:请输入华氏温度:” to Fto FC=5C=5* *(F-32)/9(F-32)/9? ? “华氏华氏: :”+STR(F,4)+STR(F,4)+“度度”+ +“, ,”+ +“摄摄氏氏: :”+STR(C,4)+STR(C,4)+“度度”cance
12、lcancel简单分支结构简单分支结构选择分支结构选择分支结构分支嵌套结构分支嵌套结构多路分支结构多路分支结构体现计算机的逻辑判断能力根据给定的不同逻辑条件,转向根据给定的不同逻辑条件,转向执行不同的程序语句,进行相应的执行不同的程序语句,进行相应的处理处理这些不同的转向就构成了这些不同的转向就构成了分支结分支结构构格式:格式:ifif条件表达式条件表达式ThenThen 语句组语句组endifendif语句组语句组判断判断TF其他语句其他语句简单分支流程图简单分支流程图【例例7 7】: : 给出两个数,从大到小排列。给出两个数,从大到小排列。(见(见w6.prgw6.prg) input i
13、nput “请输入第一个数:请输入第一个数:” to xto x input input “请输入第二个数:请输入第二个数:” to yto y ifif xy xy t=x t=x x=y x=y y=t y=t endif endif ?x,y ?x,y cancel cancel语句格式:语句格式:IFIF条件表达式条件表达式 语句组语句组1 1ELSEELSE 语句组语句组2 2ENDIFENDIF语句功能:语句功能:当条件为真时,先执行当条件为真时,先执行语句组语句组1 1然后再去执行然后再去执行ENDIFENDIF后面的语句后面的语句当条件为假时,先执行当条件为假时,先执行语句组语
14、句组2 2后再转去执行后再转去执行ENDIFENDIF后面的语句后面的语句语句组语句组1语句组语句组2判断判断FT选择分支流程图选择分支流程图【改编程序改编程序】: : 实现实现华氏华氏温度与温度与摄氏摄氏温度的转换温度的转换. . 计计算公式为为:C=5C=5* *(F-32)/9(F-32)/9 、 F=CF=C* *9/5+329/5+32 set talk off set talk offinput input “请选择转换请选择转换方式:1:1、华华氏转换转换成摄摄氏;2;2、摄摄氏转转换换成华华氏” to zto zif z=1if z=1 Input Input “请输请输入华华
15、氏温温度:” to Fto F C=5 C=5* *(F-32)/9(F-32)/9 ? ? “华华氏”+STR(F,4)+STR(F,4)+“度, , 摄摄氏”+STR(C,4)+STR(C,4)+“度”elseelse Input Input “请输请输入摄摄氏温温度:” to Cto C F=C F=C* *9/5+329/5+32 ? ? “摄摄氏”+STR(C,4)+STR(C,4)+“度, , 华华氏”+STR(F,4)+STR(F,4)+“度”endifendifcancelcancel(见(见w7.prg)【例例8 8】:铁路托运行李,假设每张车票可按每公斤:铁路托运行李,假设
16、每张车票可按每公斤0.50.5元托元托运运5050公斤以内的行李,如果超过公斤以内的行李,如果超过5050公斤时,超过的部分每公斤公斤时,超过的部分每公斤加价加价0.30.3元。元。 (见(见w8.prg)计算公式如下:计算公式如下:X=0.5X=0.5W W=50W W50(W-50) W50 SET TALK OFF SET TALK OFF INPUT INPUT 请输入行李的重量为:请输入行李的重量为: TO W TO W IF IF W=50 W0 ? “是正数是正数!”Else if num=90 ? “成绩等级:成绩等级:” + “优秀优秀”Else if score=80 ? “成绩等级:成绩等级:” + “良好良好” else if score=70 ? “成绩等级:成绩等级:” + “中等中等” else if score=60 ? “成绩等级:成绩等级:” + “及格及格” else ? “成绩等级:成绩等级:” + “不及格不及格” endif endif endif endifcancel【例例1010】 :把成绩转换成等级分数:把成绩转换成等级分数(见(见w