- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                第六章模块化程序设计和C语言函数
                    第六章 模块化程序设计与C语言函数;6.1.1 模块化程序设计
1. 模块化程序设计基本思想
基本思想:将程序按功能分割成小模块。
开发方法:  FTTB,逐步分解,分而治之。
特点和作用:
模块独立,功能单一,结构清晰,接口简单。
控制了程序设计的复杂性。
提高模块元件的可靠性。
缩短开发周期。
避免程序开发的重复劳动。
易于维护和功能扩充。
 FBTT方法与FTTB方法;模块化程序设计的方法基础。
特点:
把复杂问题的求解过程分步骤进行。
面向目标。采取先全局、后局部的逐步分解思想。
有利于将更多精力集中于较小模块的局部设计中。
避免了盲目性。降低了系统设计与实现的整体工作量。;实践中:FBTT与FTTB结合来解决问题。在问题求解步骤和方法的确定上用FTTB方法,在将所有模块构成一个整体时用FBTT方法。;例6-2 求1+2+…+100的和。
分析:问题可分为三个部分,对应三个模块:
1) 确定求值范围
2) 计算过程
3) 输出结果; 例6-3 分析九九乘法表输出功能。
分析九九表的形状(例如第一种)。
打印九行,每行分成两个部分:前导空格和九九表的口诀内容。;2. 模块化程序的基本特征
模块的IPO结构:要注意模块功能的独立性、完成功能所需的参数和提供给外界的输出信息。 
模块的接口问题:唯一的通信渠道。应保证接口的单入口和单出口特征。
模块的功能问题:大小要合适;具有较强的独立性和相对简单性;内部实现方法也应按照结构化程序设计思想进行组织和设计。;6.1.2 C语言对模块化程序设计技术的支持;float average(float fA,float fB,float fC)
{
   float fAve;
   fAve=(fA+fB+fC)/3;
   return fAve;
}  /*End of average()*/;6.2.1 C 语言程序的组织结构;6.2.2 函数声明与定义
从用户角度分为:
标准函数(库函数):由系统提供。
用户自定义函数:由程序员提供。
从函数形式上分为:
无参函数
有参函数;1. 函数的声明(Function Declaration)
声明的作用:告诉编译器函数类型、参数个数及类型,以便进行类型检验,保证调用的数据传递的正确性。
对被调用函数的要求:
函数已经被定义,即函数存在
对库函数,知道库的头文件.h
对自定义函数,有函数类型声明
函数声明(函数原型声明)的一般形式:  
 函数类型 函数名(形参类型1 形参名1,…,形参类型n  形参名n) ;
     或   函数类型 函数名() ;;函数定义与函数声明不同
函数声明的位置(P133)
下列情况,可不作函数声明:
对char或int型函数(隐含声明)
函数的定义出现在主调函数之前
有些系统要求函数声明指出函数返值和形参类型,即使对void和int型函数也要进行函数说明(如Borland C++);一个完整形式的函数声明
/*exam0604a.c::完整形式的函数声明*/
#include stdio.h
int main(void)
{
	float fA=1,fB=2,fC=3;
	float sum(float fA,float fB,float fC);  /*声明*/
	printf(sum=%f\n,sum(fA,fB,fC));  /*调用*/
	return 0;
}  /*End of main()*/
float sum(float fA,float fB,float fC)  /*定义*/
{
	return (fA+fB+fC);
}  /*End of sum()*/;允许声明与定义的参数名字不同
#include stdio.h /*exam0604b.c*/
int main(void) 
{
	float x=1,y=2,z=3;
	float sum(float x,float y,float z);/*声明参数名*/
	printf(sum=%f\n,sum(x+y,y,z));/*实参名*/
	return 0;
} /*End of main()*/
float sum(float a,float b,float c)/*定义体参数名*/
{
	return (a+b+c);
}  /*End of sum()*/;声明时可不给参数名,但类型要一一对应
#include stdio.h /*exam0604c.c*/
int main(void) 
{
	float x=1,y=2,z=3;
	float sum(float,float,float );  /*声明*/
	printf(sum=%f\n,sum(x,y,z));  /*实参*/
	return 0;
} /*E
                 原创力文档
原创力文档 
                         
                                    

文档评论(0)