第7章-结构化程序设计PPT学习课件_第1页
第7章-结构化程序设计PPT学习课件_第2页
第7章-结构化程序设计PPT学习课件_第3页
第7章-结构化程序设计PPT学习课件_第4页
第7章-结构化程序设计PPT学习课件_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

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

文档简介

第7章结构化程序设计,7.1程序文件的建立与运行7.2顺序结构程序设计7.3分支结构程序设计7.4循环结构程序设计7.5模块结构程序设计7.6数组及其应用,1,VFP两种工作方式交互工作方式、程序工作方式程序是为了完成某项指定的任务而需执行的命令序列。程序文件命令序列以一定的结构有序地编排在一起,并以文件的形式存储在磁盘上。VFP的程序设计方法面向过程的程序设计、面向对象的程序设计,2,7.1.1程序文件的建立,程序是命令的有序集合,文件扩展名是.PRG程序由命令组成,程序中的命令也叫做语句一行只能写一条语句,写完后按回车键换行一条语句可分行书写,各行末输入分号后回车程序输入完后要先存盘再关闭窗口程序每次都是从第一条语句开始自动、连续的执行,程序文件的特点:,3,程序文件的建立,文件新建程序新建文件命令格式:MODIFYCOMMAND,程序文件的运行,程序运行命令格式:DO单击工具栏的运行按钮,中断程序的运行,程序运行过程中,可用Esc键中断。,4,程序的注释是非执行部分,格式有三种:NOTE*SELECT姓名,书名,借书日期;FROMstudent,borrow;WHEREstudent.姓名=xm;ANDstudent.学号=borrow.学号USEe7_2LIST,10,格式:INPUTTO与ACCEPT相似,区别为能接受任意类型。输入字符串需要定界符,按回车结束。,表达式输入命令,单字符输入命令(等待命令),格式:WAITTO;WINDOWSAT行,列TIMEOUT暂停程序执行,显示提示信息并等待按键,按一个键后,系统自动执行下面的程序。,11,例题编写一程序,用于计算长方形的面积CLEARWINDOWSTIMEOUT10,14,三种语句的相同点,都是显示提示信息的内容,停机等待用户输入数据。提示信息的显示位置不能指定。ACCEPT和INPUT,输入完数据按下回车键。一条语句只能为一个变量输入值。既在程序中使用,也在命令窗口中使用。,15,三种语句的区别,ACCEPT只能接收字符型数据,输入时不必加定界符。INPUT可接收任何类型数据,输入字符串时必须加定界符。WAIT只能输入一个字符,输入时不必加定界符。,16,输入格式:GET输出格式:SAY结合使用:SAYGET输入激活:READ在指定的行、列位置输出SAY定义的信息,并将用户输入内容保存到GET后指定的变量里。内存变量必须先赋值;字段变量,则它所属的数据表文件必须已在当前工作区中打开。变量的类型和宽度决定了输入数据的类型和宽度。,定位输出与输入命令,17,Range,规定了输入的数值型或日期型数据的范围。表达式类型必须与变量类型一致。Valid规定输入的变量值要符合的条件。如果不符合条件,重新输入。,GET字句的可选短语,18,例7-5为数据库添加记录(一个程序文件)UsezgdaAppendBlank5,5SAY“姓名:”Get姓名7,5SAY“性别:”Get性别;valid性别$”男女”9,5SAY“年龄:”Get年龄;range18,60ReadBrowseReturn,19,第7章结构化程序设计,7.1程序文件的建立与运行7.2顺序结构程序设计7.3分支结构程序设计7.4循环结构程序设计7.5模块结构程序设计7.6数组及其应用,20,程序的基本结构,顺序结构-在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。分支结构-在程序执行时,根据不同的条件,选择执行不同的程序语句。循环结构-循环结构则能够使某些语句或程序段重复执行若干次。,21,例题7-6在zgda表中按姓名查找记录UsezgdaAccept“请输入姓名”toxmLocateFor姓名=xmClear?”姓名:”+姓名?”性别:”+性别?”职称:”+职称?”出生日期:”+dtoc(出生日期)UseReturn,根据书写顺序,从第一条语句依次执行到最后一条语句。,22,第7章结构化程序设计,7.1程序文件的建立与运行7.2顺序结构程序设计7.3分支结构程序设计7.4循环结构程序设计7.5模块结构程序设计7.6数组及其应用,23,7.3.1简单分支结构,格式IFENDIF,24,s=1k=1ifk0s=s-1endif?s=,s,s=0,s=1k=-1ifk0s=s-1endif?s=,s,s=1,25,例题7-8根据输入的单价和数量计算金额ClearInput”数量”toslInput”单价”todjje=dj*slIFsl=100je=je*0.92Endif?”应付金额”+str(je,8,2)Return,IF与ENDIF必须成对使用,并且各占一行,26,7.3.2选择分支结构,格式IFELSEENDIF,27,s=100k=1ifk0s=s-100elses=s+100endif?s=,s,s=0,s=100k=-1ifk0s=s-100elses=s+100endif?s=,s,s=200,28,例题7-10一个程序文件ClearInput”里程”tolcIFlc=5?”车费为:十元”Elsecf=10+(lc-5)*1.6?”车费为:”str(cf,6,2)EndifReturn,29,语句1IF条件语句2ELSE语句3ENDIF语句4,条件为.T.,条件为.F.,30,7.3.3分支嵌套结构,例题:铁路托运行李,从甲地到乙地,当行李重量20公斤时,每公斤3元;当行李重量超过20公斤时,其超过部分每公斤5元;当行李重量超过40公斤时,其超过部分每公斤8元。编写一个计算运费的程序。,31,INPUT“行李重量:”TOWIFw=20X=3*WELSEIFW=40X=3*20+5*(W-20)ELSEX=3*20+5*20+8*(W-40)ENDIF?”内层分支”ENDIF?运费为:,x,元,32,7.3.4多路分支结构,格式DOCASECASECASEOTHERWISEENDCASE,33,INPUT“请输入成绩(0100):”TOXDOCASECASEX60?”不及格”CASEX70?”及格”CASEX80?”中等”CASEX90?”良好”OTHERWISE?”优秀”ENDCASERETURN,例题,34,第7章结构化程序设计,7.1程序文件的建立与运行7.2顺序结构程序设计7.3分支结构程序设计7.4循环结构程序设计7.5模块结构程序设计7.6数组及其应用,35,7.4.1当型循环,格式:DOWHILE,ENDDO,36,分析如下程序的执行过程STORE0TOkDOWHILEk=3?*k=k+1ENDDO?k,37,k=1,DOWHILEk3,?*,k=k+1,ENDDO,k=1,38,k=1,DOWHILEk3,?*,k=k+1,ENDDO,39,k=1,DOWHILEk3,?*,k=k+1,ENDDO,40,k=2,DOWHILEk3,?*,k=k+1,ENDDO,41,k=2,DOWHILEk3,?*,k=k+1,ENDDO,42,k=2,DOWHILEk3,?*,k=k+1,ENDDO,43,k=2,DOWHILEk3,?*,k=k+1,ENDDO,44,k=3,DOWHILEk3,?*,k=k+1,ENDDO,45,k=3,DOWHILEk3,?*,k=k+1,ENDDO,46,k=3,DOWHILEk3,?*,k=k+1,ENDDO,下一条语句,47,例题7-14求123100的累加和解题思路:需要一个内存变量(s)保存结果,还需要一个内存变量(n)作为被累加的对象变量s的初值为0,n的初值也为0重复执行n=n+1和s=s+n结束条件是当n大于100,48,例题7-14求123100的累加和CLEARs=0n=0DOWHILEn100n=n+1s=s+nENDDO?”累计值为:”,sRETURN,49,例题7-14求123100的累加和CLEARs=0n=1DOWHILEn=100s=s+nn=n+1ENDDO?”累计值为:”,sRETURN,50,CLEARs=0n=0DOWHILEn=800skiploopEndif?姓名,基本工资n=n+1skipEnddo?”统计结果为:”,n,61,a=1s=0DOWHILEa5s=s+aa=a+1ENDDO?s,a,a=1s=0DOWHILEa=800SKIPLOOPENDIF?姓名,基本工资n=n+1SKIPENDDO?”基本工资在800元以下的有”+str(n,3)+”人”,71,例7-20统计zgda表基本工资小于800的职工,USEzgdaSTORE0TOnSCANFOR基本工资800?姓名,基本工资n=n+1ENDSCAN?”基本工资在800元以下有”+str(n,3)+”人”,72,三种循环的小结:,DOWHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须配对使用。应是数值型的内存变量或数组元素。可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。,73,EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。-EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的命令-LOOP的功能是转回到循环的开始处,重新对“条件”进行判断。EXIT、LOOP可以出现在语句序列的任意位置。,74,7.4.4循环嵌套结构,在一个循环结构的循环体内包含有其它循环结构,便形成了循环的嵌套。起始语句与终止语句要配对循环嵌套时,不能出现交叉,75,例题7-21输出九九乘法表,行号a=11*1=1a=22*1=22*2=4a=33*1=33*2=63*3=9a=44*1=44*2=84*3=124*4=16a=55*1=55*2=105*3=155*4=205*5=25,76,CLEARFORa=1TO9FORb=1TOa?SPACE(2)+STR(a,1)+*+STR(b,1);+=+STR(a*b,2)NEXT?NEXTRETURN,77,a=1D

温馨提示

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

评论

0/150

提交评论