欢迎来到天天文库
浏览记录
ID:19924998
大小:28.50 KB
页数:5页
时间:2018-10-07
《c 程序设计教程7》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C程序设计教程7本文由逝流水12贡献ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。C++程序设计教程(第二版)第七章程序结构Chapter7ProgramStructure清华大学出版社钱能22:51:461程序结构:使程序得以运行的框架组织便是程序结构,对程序结构的研究,是为了更好地表达算法思想,使其符合编译逻辑,又具有更好的可读性和可维护性学习目标:1.从简单的函数层层调用,初步理解C++程序结构2.学习合理组织程序的规则与经验,掌握扩展程序规模的基本方法22:51:462第七章内容1.2.3
2、.4.5.6.7.22:51:46函数组织(函数组织FunctionOrganization)头文件(HeaderFiles)全局数据(GlobalData)静态数据(StaticData)作用域与生命期(Scope&Lifetime)名空间(namespace)预编译(Pre-Compilation)31.函数组织(FunctionOrganization)函数:对输入参数负责,埋头做自己的事,最终返回结果函数组织:通过在函数中进行函数调用来扩展运行的规模,层层叠叠的函数构成树结构做法:将若干个函数组织成文件,又将若干个文件构成程序
3、的办法来进行编程分工22:51:464对如下的函数调用关系,进行文件划分文件1文件2mainf2f1f3pg1g2h文件322:51:4652.头文件(HeaderFiles)P217原始头文件:作为共同开发的项目,为了共享彼此的过程资源(函数),将全体函数声明放在一个共用的头文件中界面头文件:界定模块可用资源(函数,数据,类型等)(可由一个或几个头文件组合,其实现由他人提供),或提供他人使用的模块资源.它是由软件工程师分发的、以规范项目开发为目的的资源文件做法:练习划分函数组,模仿学习构造头文件,并注意头文件的应含内容22:51:4
4、66原始头文件(包含7-3的图中的一切函数声明)//abc.hvoidf1();voidf2();voidf3();voidg1();voidg2();voidp();voidh();22:51:467头文件的使用:使函数调用免于声明//a1.cpp#include”abc.h”voidf1(){if(…){p();g1();else{g2();h();}}22:51:468头文件的使用:使函数调用免于声明//a2.cpp#include”abc.h”intmain(){f1();f2();f3();}//voidf3(){f1();
5、}//voidp(){f3();}//22:51:469头文件的使用:使函数调用免于声明//a3.cpp#include”abc.h”voidh(){…}voidf2(){g1();g2();}//voidg1(){…}voidg2(){…}22:51:4610界面头文件//a1.ha1.cpp提供的资源提供的资源voidf1();//a2.ha2.cpp提供的资源提供的资源voidp();//a3.ha3.cpp提供的资源提供的资源voidg1();voidg2();voidf2();voidh();22:51:4611使用界面头文
6、件//a1.cpp#include”a2.h”#include”a3.h”voidf1(){if(…){p();g1();}else{g2();h();}}22:51:4612使用界面头文件//a2.cpp#include”a1.h”#include”a3.h”staticvoidf3();intmain(){f1();f2();f3();}voidf3(){f1();}voidp(){f3();}22:51:4613使用界面头文件P221//a3.cpp#include”a3.h”voidh(){…}voidf2(){g1();g2
7、();}voidg1(){…}voidg2(){…}22:51:46143.全局数据(GlobalData)全局数据:使若干个模块在程序范围内共享(读与写)数据,是若干程序文件沟通数据的一种形式意义:模块的独立性由数据的封闭性来支持.全局数据破坏了数据的封闭性,因而对小程序简单而对规范化程序则不登大雅之堂做法:练习函数之间用参数传递数据的常规形式,尽量避免使用全局数据22:51:4615例如:对于矩阵的输入、处理和输出vectora;//globalDatavoidinput();voidtranspose();voi
8、dprint();intmain(){input();transpose();print();}//usinga//usinga//usinga1622:51:46消去全局数据:前一个过程的输出作为后一个过程的输入typ
此文档下载收益归作者所有