(9)--6.第六章 模块化程序设计与C语言函数.ppt





《(9)--6.第六章 模块化程序设计与C语言函数.ppt》由会员分享,可在线阅读,更多相关《(9)--6.第六章 模块化程序设计与C语言函数.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/11/29第六章第六章 模块化程序设计与模块化程序设计与C语言函数语言函数6.1 6.1 模块化程序设计基础模块化程序设计基础模块化程序设计基础模块化程序设计基础6.2 6.2 函数的声明、定义和调用函数的声明、定义和调用函数的声明、定义和调用函数的声明、定义和调用6.4 6.4 程序设计实例程序设计实例程序设计实例程序设计实例6.3 6.3 变量的存储属性变量的存储属性变量的存储属性变量的存储属性2023/11/29u6.1.1 6.1.1 模块化程序设计模块化程序设计模块化程序设计模块化程序设计1.1.模块化程序模块化程序模块化程序模块化程序设计设计设计设计基本思想基本思想基本思
2、想基本思想基本思想:基本思想:基本思想:基本思想:将程序按功能将程序按功能将程序按功能将程序按功能分割分割分割分割成小模块。成小模块。成小模块。成小模块。开发方法开发方法开发方法开发方法:FTTBFTTB,逐步分解逐步分解逐步分解逐步分解,分而治之分而治之分而治之分而治之。特点和作用:特点和作用:特点和作用:特点和作用:模块独立模块独立模块独立模块独立,功能单一功能单一功能单一功能单一,结构清晰结构清晰结构清晰结构清晰,接口简单。接口简单。接口简单。接口简单。控制了程序设计的复杂性。控制了程序设计的复杂性。控制了程序设计的复杂性。控制了程序设计的复杂性。提高模块元件的可靠性。提高模块元件的可靠
3、性。提高模块元件的可靠性。提高模块元件的可靠性。缩短开发周期。缩短开发周期。缩短开发周期。缩短开发周期。避免程序开发的重复劳动。避免程序开发的重复劳动。避免程序开发的重复劳动。避免程序开发的重复劳动。易于维护和功能扩充。易于维护和功能扩充。易于维护和功能扩充。易于维护和功能扩充。FBTTFBTT方法与方法与方法与方法与FTTBFTTB方法方法方法方法 6.1 6.1 模块化程序设计基础模块化程序设计基础模块化程序设计基础模块化程序设计基础What to do?What to do?How to do?How to do?2023/11/29模块化程序设计的方法基础。模块化程序设计的方法基础。模
4、块化程序设计的方法基础。模块化程序设计的方法基础。特点:特点:特点:特点:把复杂问题的求解过程分步骤进行。把复杂问题的求解过程分步骤进行。把复杂问题的求解过程分步骤进行。把复杂问题的求解过程分步骤进行。面向目标面向目标面向目标面向目标。采取。采取。采取。采取先全局先全局先全局先全局、后局部后局部后局部后局部的的的的逐步分逐步分逐步分逐步分解解解解思想。思想。思想。思想。有利于将更多精力集中于较小模块的局部有利于将更多精力集中于较小模块的局部有利于将更多精力集中于较小模块的局部有利于将更多精力集中于较小模块的局部设计中。设计中。设计中。设计中。避免了盲目性。降低了系统设计与实现的避免了盲目性。降
5、低了系统设计与实现的避免了盲目性。降低了系统设计与实现的避免了盲目性。降低了系统设计与实现的整体工作量。整体工作量。整体工作量。整体工作量。FTTB(From Top To Bottom)FTTB(From Top To Bottom)2023/11/29实践中:实践中:实践中:实践中:FBTTFBTT与与与与FTTBFTTB结合结合结合结合来解决问题。在来解决问题。在来解决问题。在来解决问题。在问问问问题求解步骤题求解步骤题求解步骤题求解步骤和和和和方法方法方法方法的确定上用的确定上用的确定上用的确定上用FTTBFTTB方法,在将方法,在将方法,在将方法,在将所有模块所有模块所有模块所有模块
6、构成一个整体时构成一个整体时构成一个整体时构成一个整体时用用用用FBTTFBTT方法。方法。方法。方法。FBTT(From Bottom To Top)FBTT(From Bottom To Top)例例例例6-1 6-1 以以以以FTTBFTTB、逐步求精的模块化分解思、逐步求精的模块化分解思、逐步求精的模块化分解思、逐步求精的模块化分解思想,分析想,分析想,分析想,分析19481948年下半年解放战争战略决战问年下半年解放战争战略决战问年下半年解放战争战略决战问年下半年解放战争战略决战问题。题。题。题。(P118)(P118)2023/11/29例例例例6-2 6-2 求求求求1+2+10
7、01+2+100的和。的和。的和。的和。分析:分析:分析:分析:问题可分为三个部分,对应三个模块:问题可分为三个部分,对应三个模块:问题可分为三个部分,对应三个模块:问题可分为三个部分,对应三个模块:1)确定求值范围确定求值范围确定求值范围确定求值范围2)计算过程计算过程计算过程计算过程3)输出结果输出结果输出结果输出结果给定求和的上界给定求和的上界给定求和的上界给定求和的上界计算计算计算计算i i从从从从1 1到给定上界的和到给定上界的和到给定上界的和到给定上界的和输出所求的和值输出所求的和值输出所求的和值输出所求的和值用选定方法求和用选定方法求和用选定方法求和用选定方法求和2023/11/
8、29例例例例6-3 6-3 分析九九乘法表输出功能。分析九九乘法表输出功能。分析九九乘法表输出功能。分析九九乘法表输出功能。1.分析九九表的形状分析九九表的形状分析九九表的形状分析九九表的形状(例如第一种例如第一种例如第一种例如第一种)。2.打印九行,每行分成两个部分:前导空格和九打印九行,每行分成两个部分:前导空格和九打印九行,每行分成两个部分:前导空格和九打印九行,每行分成两个部分:前导空格和九九表的口诀内容。九表的口诀内容。九表的口诀内容。九表的口诀内容。右上角九九表右上角九九表右上角九九表右上角九九表输出九行输出九行输出九行输出九行输出某行输出某行输出某行输出某行i i口诀构成:口诀构
9、成:口诀构成:口诀构成:3*33*3 9 9 (即即即即i*j=i*j)i*j=i*j)输出第输出第输出第输出第i i行行行行前导空格前导空格前导空格前导空格输出第输出第输出第输出第i i行行行行口诀口诀口诀口诀输出第输出第输出第输出第i i行的行的行的行的i-1i-1个个个个前导空格口诀前导空格口诀前导空格口诀前导空格口诀输出第输出第输出第输出第i i行第行第行第行第k k个前个前个前个前导空格口诀导空格口诀导空格口诀导空格口诀输出第输出第输出第输出第i i行行行行9-i+19-i+1个口诀个口诀个口诀个口诀输出第输出第输出第输出第i i行第行第行第行第k k个口诀个口诀个口诀个口诀空格口诀
10、与口诀字空格口诀与口诀字空格口诀与口诀字空格口诀与口诀字符结构相同符结构相同符结构相同符结构相同2023/11/292.2.模块化模块化模块化模块化程序程序程序程序的基本特征的基本特征的基本特征的基本特征模块的模块的模块的模块的IPOIPO结构:结构:结构:结构:要注意模块功能的独要注意模块功能的独要注意模块功能的独要注意模块功能的独立性、完成功能所需的参数和提供给外立性、完成功能所需的参数和提供给外立性、完成功能所需的参数和提供给外立性、完成功能所需的参数和提供给外界的输出信息。界的输出信息。界的输出信息。界的输出信息。模块的接口问题:模块的接口问题:模块的接口问题:模块的接口问题:唯一的通
11、信渠道。应唯一的通信渠道。应唯一的通信渠道。应唯一的通信渠道。应保证接口的保证接口的保证接口的保证接口的单入口单入口单入口单入口和和和和单出口单出口单出口单出口特征。特征。特征。特征。模块的功能问题:模块的功能问题:模块的功能问题:模块的功能问题:大小要合适大小要合适大小要合适大小要合适;具有较;具有较;具有较;具有较强的强的强的强的独立性独立性独立性独立性和相对简单性;内部实现方和相对简单性;内部实现方和相对简单性;内部实现方和相对简单性;内部实现方法也应按照结构化程序设计思想进行组法也应按照结构化程序设计思想进行组法也应按照结构化程序设计思想进行组法也应按照结构化程序设计思想进行组织和设计
12、。织和设计。织和设计。织和设计。2023/11/29u6.1.2 C6.1.2 C语言对模块化程序设计技术的支持语言对模块化程序设计技术的支持语言对模块化程序设计技术的支持语言对模块化程序设计技术的支持1.1.函数式程序语言结构函数式程序语言结构函数式程序语言结构函数式程序语言结构函数函数函数函数带入函带入函带入函带入函数参数数参数数参数数参数带出计带出计带出计带出计算结果算结果算结果算结果图图图图6-6 C6-6 C语言函数的基本结构语言函数的基本结构语言函数的基本结构语言函数的基本结构2023/11/29float average(float fA,float fB,float fC)fl
13、oat average(float fA,float fB,float fC)float fAve;float fAve;fAve=(fA+fB+fC)/3;fAve=(fA+fB+fC)/3;return fAve;return fAve;/*End of average()*/*End of average()*/外部向内部外部向内部外部向内部外部向内部传递信息传递信息传递信息传递信息内部控内部控内部控内部控制信息制信息制信息制信息由内部由内部由内部由内部向外传向外传向外传向外传递信息递信息递信息递信息2.2.允许进行模块内部及外部的信息交换允许进行模块内部及外部的信息交换允许进行模块内部
14、及外部的信息交换允许进行模块内部及外部的信息交换3.3.具有编译预能力以方便模块化调试和移植具有编译预能力以方便模块化调试和移植具有编译预能力以方便模块化调试和移植具有编译预能力以方便模块化调试和移植2023/11/29u6.2.1 C 6.2.1 C 语言程序的组织结构语言程序的组织结构语言程序的组织结构语言程序的组织结构 6.2 6.2 函数的声明、定义和调用结构函数的声明、定义和调用结构函数的声明、定义和调用结构函数的声明、定义和调用结构源程序源程序源程序源程序n n函数函数函数函数1 1函数函数函数函数2 2函数函数函数函数mm源程序源程序源程序源程序i i源程序源程序源程序源程序1
15、1C C程序程序程序程序声明区声明区声明区声明区执行体执行体执行体执行体2023/11/29u6.2.2 6.2.2 函数声明与定义函数声明与定义函数声明与定义函数声明与定义l从用户角度分为:从用户角度分为:从用户角度分为:从用户角度分为:标准函数标准函数标准函数标准函数(库函数库函数库函数库函数):由系统提供。:由系统提供。:由系统提供。:由系统提供。用户用户用户用户自定义函数自定义函数自定义函数自定义函数:由程序员提供。:由程序员提供。:由程序员提供。:由程序员提供。l从函数形式上分为:从函数形式上分为:从函数形式上分为:从函数形式上分为:无参函数无参函数无参函数无参函数有参函数有参函数有
16、参函数有参函数l使用使用使用使用库函数库函数库函数库函数应应应应注意:注意:注意:注意:1)1)函数完成的功能函数完成的功能函数完成的功能函数完成的功能 2)2)参数数目和顺序参数数目和顺序参数数目和顺序参数数目和顺序及各参数意义和及各参数意义和及各参数意义和及各参数意义和类型类型类型类型 3)3)返回值返回值返回值返回值的意义和类型的意义和类型的意义和类型的意义和类型4)4)调用函数所需的包含文件调用函数所需的包含文件调用函数所需的包含文件调用函数所需的包含文件(头文件头文件头文件头文件)先声明、后定先声明、后定先声明、后定先声明、后定义、再引用义、再引用义、再引用义、再引用2023/11/
17、291.1.函数的声明函数的声明函数的声明函数的声明(Function Declaration)(Function Declaration)l声明的作用:声明的作用:声明的作用:声明的作用:告诉编译器告诉编译器告诉编译器告诉编译器函数类型、参数个数函数类型、参数个数函数类型、参数个数函数类型、参数个数及类型,以便进行类型检验,保证调用的数据及类型,以便进行类型检验,保证调用的数据及类型,以便进行类型检验,保证调用的数据及类型,以便进行类型检验,保证调用的数据传递的正确性。传递的正确性。传递的正确性。传递的正确性。l对被调用函数的要求:对被调用函数的要求:对被调用函数的要求:对被调用函数的要求:
18、函数已经被定义,即函数已经被定义,即函数已经被定义,即函数已经被定义,即函数存在函数存在函数存在函数存在对库函数,知道库的头文件对库函数,知道库的头文件对库函数,知道库的头文件对库函数,知道库的头文件.h.h对自定义函数,有对自定义函数,有对自定义函数,有对自定义函数,有函数类型声明函数类型声明函数类型声明函数类型声明l函数声明函数声明函数声明函数声明(函数原型声明函数原型声明函数原型声明函数原型声明)的的的的一般形式:一般形式:一般形式:一般形式:函数类型函数类型函数类型函数类型 函数名函数名函数名函数名(形参类型形参类型形参类型形参类型1 1 形参名形参名形参名形参名1,1,形参类型形参类
19、型形参类型形参类型n n 形参名形参名形参名形参名n);n);或或或或 函数类型函数类型函数类型函数类型 函数名函数名函数名函数名();();P120-128:P120-128:函数的声明函数的声明函数的声明函数的声明形参数据类型和形参数据类型和形参数据类型和形参数据类型和顺序很重要顺序很重要顺序很重要顺序很重要必须要必须要必须要必须要用分号用分号用分号用分号结束结束结束结束2023/11/29函数定义函数定义函数定义函数定义与与与与函数声明函数声明函数声明函数声明不同不同不同不同函数声明的函数声明的函数声明的函数声明的位置问题位置问题位置问题位置问题下列情况,可不作函数声明:下列情况,可不作
20、函数声明:下列情况,可不作函数声明:下列情况,可不作函数声明:J对对对对charchar或或或或intint型函数型函数型函数型函数(隐含声明隐含声明隐含声明隐含声明)J函数的定义出现在主调函数之前函数的定义出现在主调函数之前函数的定义出现在主调函数之前函数的定义出现在主调函数之前l有些系统要求函数声明指出函数返值和形参类有些系统要求函数声明指出函数返值和形参类有些系统要求函数声明指出函数返值和形参类有些系统要求函数声明指出函数返值和形参类型,即使对型,即使对型,即使对型,即使对voidvoid和和和和intint型函数也要进行函数说明型函数也要进行函数说明型函数也要进行函数说明型函数也要进行
21、函数说明(如如如如Borland C+)Borland C+)P120-128P120-1282023/11/29一个完整形式的函数声明一个完整形式的函数声明一个完整形式的函数声明一个完整形式的函数声明/*exam0604a.c:/*exam0604a.c:完整形式的函数声明完整形式的函数声明完整形式的函数声明完整形式的函数声明*/#include#include int main(void)int main(void)float float fAfA=1,fB=2,fC=3;=1,fB=2,fC=3;float sum(float float sum(float fA,floatfA,flo
22、at fB,floatfB,float fCfC);/*/*声明声明声明声明*/printfprintf(sum=%f(sum=%fn,sumn,sum(fA,fB,fCfA,fB,fC););/*/*调用调用调用调用*/return 0;return 0;/*End of main()*/*End of main()*/float sum(float float sum(float fA,floatfA,float fB,floatfB,float fCfC)/*/*定义定义定义定义*/return(return(fA+fB+fCfA+fB+fC););/*End of sum()*/*En
23、d of sum()*/例例例例6-4 6-4 函数声明实例。函数声明实例。函数声明实例。函数声明实例。声明了一个声明了一个声明了一个声明了一个floatfloat型函数型函数型函数型函数sum()sum()sumsum函数的定义函数的定义函数的定义函数的定义sum()sum()函数有函数有函数有函数有三个形式参数三个形式参数三个形式参数三个形式参数观察函数的声明观察函数的声明观察函数的声明观察函数的声明和定义的区别和定义的区别和定义的区别和定义的区别2023/11/29允许声明与定义的参数名字不同允许声明与定义的参数名字不同允许声明与定义的参数名字不同允许声明与定义的参数名字不同#inclu
24、de#include /*exam0604b.c*/*exam0604b.c*/int main(void)int main(void)float x=1,y=2,z=3;float x=1,y=2,z=3;float sum(float float sum(float x,floatx,float y,floaty,float z);z);/*/*声明参数名声明参数名声明参数名声明参数名*/printfprintf(sum=%f(sum=%fn,sumn,sum(x+y,y,zx+y,y,z););/*/*实参名实参名实参名实参名*/return 0;return 0;/*End of ma
25、in()*/*End of main()*/float sum(float float sum(float a,floata,float b,floatb,float c)c)/*/*定义体参数名定义体参数名定义体参数名定义体参数名*/return(return(a+b+ca+b+c););/*End of sum()*/*End of sum()*/2023/11/29声明时可不给参数名,但类型要一一对应声明时可不给参数名,但类型要一一对应声明时可不给参数名,但类型要一一对应声明时可不给参数名,但类型要一一对应#include#include /*exam0604c.c*/*exam0604
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 9-6.第六章 模块化程序设计与C语言函数 第六 模块化 程序设计 语言 函数

限制150内