- 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程序设计(第四版)第10章 C语言综合应用程序设计
第10章 C语言综合应用程序设计 10.1 模块化程序设计基本概念 10.2 模块化程序设计开发步骤 10.3 模块化程序设计的基本编辑要求 10.4 综合实例 10.1 模块化程序设计基本概念 一、模块程序设计的基本概念 一个复杂程序可以分成若干个模块,可由不同人员分头完成. 每个模块的任务明确,便于理解. 单个模块易于编写和调试. 便于程序的维护和修改. 可以直接利用已有的模块. 使用模块化编程技术的处理过程大致如下: 1、首先将一个大的源程序根据其功能合理地划分成若干个小的源程序,每个小源程序均以程序文件(.C)的形式保存在磁盘上。并建立一个包括各个源程序模块的文件名的工程文件(.prj)。 2、然后用编译器进行编译,将工程文件中指定的多个源程序文件进行编译,生成多个目标文件和一个可执行文件。注意,在分模块单独编译处理的各个程序模块中,必须有且只有一个主函数 main( ) 。 二、模块化程序组织 三、模块化程序中模块间的通信 1、使用外部变量 即一个程序文件file1.c中定义一个外部变量,另一个程序文件file2.c中的函数可以通过外部变量说明后来使用这个变量,以实现模块间的通信。 说明形式:extern 类型说明符 外部变量名 ; 注意:只是进行了说明,并不是变量定义。 2、举例 利用外部变量实现程序模块file1.c与程序模块file2.c之间的通信。 设程序模块文件 file1.c 的内容如下: ?#includestdio.h int n=2; /* 定义n为全局变量*/ main( ) { printf(“%d”,n); proc1( ); printf(“%d\n”,n); } 程序模块文件file2.c 的内容如下: extern int n; /* 说明n为外部变量*/ proc1() { n = 10 ; } 程序编译连接生成可执行文件,执行结果为: ? ?? 2 10 四、预处理命令#include的应用 1、#include命令经过预处理后,会将其后有关文件的内容拷贝到命令所在的源程序文件中。 2、在上一个例子中,程序要能够编译运行,需建立一个工程文件file.prj,其内容为: file1.c file2.c 然后对file.prj文件编译运行即可。 3、也可以在file1.c文件开头加一预处理命令: #includestdio.h #includefile2.c int n=2; main() { …… } 对file1.c文件直接编译运行即可。 模块化程序设计开发步骤 讨论以c语言程序模块化设计小规模软件开发的一般步骤: 1、通过与最终用户的交流,明确软件应达到的功能,写出相 应的“功能说明”。 2、根据“功能说明”,确定存放有关数据的数据结构。 3、根据数据结构确定算法。 4、根据数据结构和算法,采用某种计算机语言编写的程序源代码。 5、对程序进行调试和测试。 6、最后整理出有关的文档资料。 10.3模块化程序设计的基本编辑要求 1、基本要求 程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。 打算干什么,要简单,直截了当,代码精简,避免垃圾程序。??? 尽量使用标准库函数和公共函数。??? 不要随意定义全局变量,尽量使用局部变量。 使用括号以避免二义性。? 2、可读性要求??? 可读性第一,效率第二。 ?保持注释与代码完全一致。 ?每个源程序文件,都有文件头说明,说明规格见规范。 ?每个函数,都有函数头说明,说明规格见规范。 ?主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。??? ?常量定义(DEFINE)有相应说明。? 处理过程的每个阶段都有相关注释说明。 ?在典型算法前都有注释。??? ?利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为?6个???字节。?? 循环、分支层次不要超过五层。??? 注释可以与语句在同一行,也可以在上行。??? 空行和空白字符也是一种特殊注释。??? 一目了然的语句不加注释。 注释的作用范围可以为:定义、引用、条件分支以及一段代码。??? 注释行数(不包括程序头和函数头说明部份)应占总行数的?1/5?到?1/3?。 3、?结构化要求??? ? 禁止出现两条等价的支路。??? ? 禁止GOTO语句。??? 用?IF?语句来强调只执行两组语句中的一 组。禁止?ELSE?GOTO?和?ELSE?RETURN。 ?用?CASE?实现多路分支。??? ?避
文档评论(0)