《程序设计概述》PPT课件.ppt
《《程序设计概述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序设计概述》PPT课件.ppt(71页珍藏版)》请在三一办公上搜索。
1、5.1 程序设计概述,第5章 程序设计基础,5.2 结构化程序设计,5.3 面向对象的程序设计基础,实验操作说明,课后习题,参考资料,教学目的与要求,掌握基本程序控制语句的用法,掌握创建结构化程序、用户自定义函数和过程的方法,掌握面向对象的程序设计的概念,掌握引用对象、设置对象属性和调用对象的方法程序的方法,了解对象对事件的响应、容器层次与类层次中的事件发生情况以及事件激发顺序,掌握事件驱动和事件循环的概念,掌握事件驱动和事件循环的概念,5.1 程序设计概述,一、程序设计的方法,结构化程序设计(Structured Programming,SP)面向对象程序设计(Object-oriented
2、 Programming,OOP),基本单位:语句设计原则:自顶向下、逐步求精、模块化和限制使用转移语句开发方法:自顶向下、功能分解开发过程:从“做什么”到“如何做”优点:系统结构强,便于设计和理解缺点:程序员始终要关心什么时刻发生什么事情,二、结构化程序设计的特点,5.1 程序设计概述,基本单位:类和对象重要特性:封装性、继承性和多态性开发方法:自底向上的功能综合开发过程:从“用什么做”到“要做什么”优点:系统化的程序设计方法特点:采用以对象为中心的问题求解方法,程序设计通过面向对象来实现,三、面向对象程序设计的特点,5.1 程序设计概述,1.程序的概念 计算机能够分析执行的命令集合。VFP
3、程序由一系列代码组成,代码可以是命令、函数或其他VFP可以 理解的任何操作。VFP程序的扩展名为.PRG2.结构化程序设计的任务 指根据不同的情况和条件,控制程序去执行相应操作的语句序列 3.程序结构主要分为:顺序结构、分支结构、循环结构以及过程/函数调用一个程序总体上是一个顺序结构,其中某个(些)“子部分”则可能是各种结构的组合或嵌套。,5.2 结构化程序设计,创建和修改程序文件 方法有2种:1、项目管理器方式(选择代码选项卡)2、命令方式 MODIFY COMMAND 程序名运行程序 方法有3种:1、项目管理器下选择程序名点击“运行”按钮 2、命令方式:DO 程序名 3、在程序编辑窗口中,
4、单击“!”按钮运行程序注意:一旦运行程序文件,系统自动对程序文件(.prg)文件进行编译,生成“伪编译”程序(.FXP)。系统实质上执行.FXP文件。,5.2.1 创建、修改和运行程序,5.2 结构化程序设计,5.2.2 顺序结构,5.2 结构化程序设计,顺序结构是指程序运行时按照语句排列的先后顺序,一 条接一条依次执行。程序的最基本的结构,任一程序的主体结构,5.2 结构化程序设计,范例:,例5.1 下列程序是计算园的面积,其半径为4.12 STORE 4.12 TO P S=P*P*3.14?圆面积为:,S例5.2 下列程序的功能是显示一个字符串在另一个字符串 中的位置。C=“Visual
5、 FoxPro”CC=“Fox”?AT(CC,C)&显示结果为8,5.2.3 分支结构,5.2 结构化程序设计,分支结构是指程序在运行过程中,根据条件执行不同的 操作。VFP中两种实现分支结构的语句:IFELSEENDIF语句 DO CASEENDCASE语句,IFELSEENDIF 语句,5.2 结构化程序设计,语法格式:IF 条件表达式 命令语句组1 ELSE 命令语句组2 ENDIF常见结构:单分支、双分支、多分支,5.2 结构化程序设计,1、IFELSEENDIF 语句的单分支结构,单分支结构的格式:IF 条件表达式 命令语句组 ENDIF,例5.3:从键盘任意输入一个数,求平方根。I
6、NPUT“请任意输入一个数:”TO XIF X=0 Y=SQRT(X)?“X的平方根为:”,YENDIF,INPUT命令:从键盘接收多个任意类型数据,5.2 结构化程序设计,2、IFELSEENDIF 语句的双分支结构,双分支结构的格式:IF 命令语句组1ELSE 命令语句组2ENDIF,5.2 结构化程序设计,IFELSEENDIF 语句的双分支结构范例,例5.4:从键盘任意输入一个数,判断这个数是奇数还是偶数。,INPUT“请任意输入一个数:”TO XIF X%2=0?STR(X)+”是偶数”ELSE?STR(X)+”是奇数”ENDIF,5.2 结构化程序设计,例5.5:从键盘输入一个密码
7、,判断密码正确与否,给出不同的提示信息。,IFELSEENDIF 语句的双分支结构范例,ACCEPT 请输入密码:TO PWIF PW=654321?欢迎使用ELSE?密码不对,谢绝使用ENDIF,ACCEPT命令:从键盘接收多个字符型数据,5.2 结构化程序设计,3、IFELSEENDIF 语句的多分支结构(IF语句嵌套),IF条件1 IF 条件12 语句序列11 ELSE 语句序列12 ENDIFELSE IF 条件22 语句序列21 ELSE 语句序列22 ENDIFENDIF,注意:IFELSEENDIF必须配对使用。,5.2 结构化程序设计,IFELSEENDIF 语句的多分支结构范
8、例,INPUT“请任意输入一个数:”TO X IF X 0&x0 的情况 Y=1 ELSE&x=0或者x0 的情况 IF X=0 Y=0 ELSE&x0 的情况 Y=-1 ENDIF ENDIF?“Y=”,Y,例5.6:符号函数的程序实现。,5.2 结构化程序设计,4、DO CASE ENDCASE 语句,DO CASE语句格式:DO CASE CASE 条件1 语句序列1 CASE 条件2 语句系列2 CASE 条件N 语句序列N OTHERWISE 其他语句系列ENDCASE,注意:DO CASE 与第一个CASE之间不能有任何语句。,5.2 结构化程序设计,例5.7:用DO.CASE语句
9、实现符号函数。,INPUT“请任意输入一个数:”TO XDO CASE CASE X 0 Y=1 CASE X=0 Y=0 CASE X0 Y=-1ENDCASE?“Y=”,Y,5.2 结构化程序设计,5.2.4 循环结构,循环结构用于控制一组语句重复执行若干次,可预先指 定要循环的次数,也可根据某个条件控制循环。VFP实现的三种语句:FORENDFOR语句 DO WHILEENDDO语句 SCANENDSCAN语句,5.2 结构化程序设计,1、FOR ENDFOR 语句,语句格式:FOR变量=初值TO 终值STEP 步长 语句组ENDFOR/NEXT功能:主要用于执行已知次数的循环,只要变量
10、的值不超过终值,程序将重复执行循环体中的语句。当步长为1时,STEP 可缺省。,5.2 结构化程序设计,S=0FOR I=1 TO 99 STEP 2 S=S+IENDFOR?“前1100之间的奇数和为:”,S,例5.8:求1+3+5+99的和。,5.2 结构化程序设计,P=1FOR I=1 TO 100 P=P*IENDFOR?“100的阶乘为:”,P,例5.9:求100的阶乘。,5.2 结构化程序设计,例5.10:下面程序的功能是将由英文组成的字符串加密。加密的算法是:如果是大写字母,用原字母后面第4个字母代替原字母,否则用原字母后面第2个字母代替原字母。例如,“China”的密文是“Gj
11、kpc”,m=SPACE(0)c=“China”FOR i=1 TO LEN(c)nc=ASC(SUBSTR(c,i,1)IF nc64 AND nc9 m=m+CHR(nc+4)ELSE m=m+CHR(nc+2)ENDIFENDFORWAIT WINDOWS c+“字母加密后为”+m,在VisualFoxPro主窗口右上角的系统信息窗口中,显示信息,并暂停VisualFoxPro的执行,按某个键或单击鼠标后继续执行。,5.2 结构化程序设计,2、DO WHILE ENDDO 语句,语句格式:DO WHILE 循环判断条件 语句系列 ENDDO功能:根据指定的逻辑条件,控制语句序列执行的次数
12、。只有DO WHILE 条件为假时,才结束循环。,5.2 结构化程序设计,例5.11 求1+2+3+100的和。,5.2 结构化程序设计,例5.12:将ASCII码字符组成的字符串进行反向显示。,STORE“abcdef”TO C,CCP=space(0)DO WHILE LEN(C)0 P=LEFT(C,1)+P C=SUBSTR(C,2)ENDDO?CC+”的反序为”+P,5.2 结构化程序设计,EXIT:是循环的出口语句,遇到EXIT 循环结束。LOOP:是短路语句,遇到 LOOP回到循环的开始而短路了LOOP与ENDDO/ENDFOR之间的语句。在任何时候都可以通过使用EXIT命令从任
13、何一个循环中退出,或者使用LOOP命令来跳过循环中的后续处理。,3、在循环中,可有两个特殊的语句:EXIT 和LOOP,5.2 结构化程序设计,例5.13:求1100之间非3的倍数的所有奇数之和。,S=0FOR I=1 TO 100 STEP 2 IF MOD(I,3)=0 LOOP ENDIF S=S+IENDFOR?S,5.2 结构化程序设计,例5.14:从键盘输入一个密码,若为“654321”,程序结束。DO WHILE.T.ACCEPT“请输入密码:”TO PW IF PW”654321”?”密码不对,请重输”LOOP ELSE?”欢迎进入本系统”EXIT ENDIF ENDDO,5.
14、2 结构化程序设计,4、SCAN ENDSCAN 语句,语句格式:SCAN 范围 FOR 条件 语句组 ENDSCAN功能:仅用于处理表的记录。,5.2 结构化程序设计,例5.15:写出下列程序运行的结果(js表如下),USE JSGZSUM=0SCAN FOR XB=”女”GZSUM=GZSUM+JBGZENDSCAN?GZSUMUSE,例5.16:显示教师表中偶数号记录教师的姓名、性别。CLEAR USE JS FOR i=1 TO RECCOUNT()IF RECNO()%2=0?XM,XB ENDIF SKIP ENDFOR USE,CLEARUSE JSSCAN FOR RECNO(
15、)%2=0?XM,XBENDSCANUSE,5.2 结构化程序设计,5.2.5 过程与用户自定义函数,用户可以将经常执行的具有某种功能的一段程序代码独立出来,将其作为一个过程(procedure)或者用户自定义函数(User Defined Function,UDF),在需要该功能的时候,调用这个过程或自定义函数即可。过程或自定义函数可以独立存储在程序文件中,也可以放在调用(者)函数的后面。当一个或多个自定义函数和过程存放在一个程序文件中时,这个程序文件称为过程文件。若要调用过程文件中的过程或自定义函数,必须使用命令:SET PROCEDURE TO 过程文件名 打开过程。例如:过程文件名为p
16、rocs.prg则:SET PROCEDURE TO procs,5.2 结构化程序设计,过程的定义如下:PROCEDURE myproc PARAMETERS 过程体语句 RETURN 表达式 ENDPROC,函数的定义如下:FUNCTION myfuncPARAMETERS 函数体语句 RETURN 表达式 ENDFUNC,过程的调用为:DO myproc with 参数或者:变量myproc(参数)或者:?myproc(参数),函数的调用为:DO myfunc with 参数或者:变量myfunc(参数)?myfunc(参数),5.2 结构化程序设计,例5.17:求圆面积的自定义函数和过
17、程(圆的半径作为参数)。,FUNCTION AREA_F PARAMETERS R S=3.14159*R*R RETURN SENDFUNC,函数调用:?AREA_F(6),PROCEDURE AREA_P PARAMETERS R S=3.14159*R*R RETURN sENDPROC,过程的调用:DO AREA_P WITH 6,5.2 结构化程序设计,例5.18:定义自定义函数,实现数字0-9到汉字零九的转换。,FUNCTION ntoc PARAMETERS pDigit LOCAL cString cString=“零一二三四五六七八九”R=substr(cString,pDi
18、git*2+1,2)RETURN RENDFUNC,调用:?NTOC(3)返回:三,5.2 结构化程序设计,例5.19:求阶乘的自定义函数,?JC(5)FUNCTION JC PARAMETERS X S=1 FOR I=1 TO X S=S*I ENDFOR RETURN SENDFUNC,返回,5.2 结构化程序设计,例5.20:下列程序是用来计算1!+2!+3!+4!+5!的值,将程序补充完整,P=0For i=1 to 5P=P+jc(i)ENDfor?P,Function jc_S=1FOR N=1 TO xS=S*NENDFORRETURN SENDPROC,调用,返回,复习:控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计概述 程序设计 概述 PPT 课件

链接地址:https://www.31ppt.com/p-5588410.html