C++程序设计教程7.ppt

C++程序设计教程7.ppt

ID:48181568

大小:166.00 KB

页数:28页

时间:2020-01-18

C++程序设计教程7.ppt_第1页
C++程序设计教程7.ppt_第2页
C++程序设计教程7.ppt_第3页
C++程序设计教程7.ppt_第4页
C++程序设计教程7.ppt_第5页
资源描述:

《C++程序设计教程7.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C++程序设计教程(第二版)第七章程序结构Chapter7ProgramStructure7/17/20211程序结构:使程序得以运行的框架组织便是程序结构,对程序结构的研究,是为了更好地表达算法思想,使其符合编译逻辑,又具有更好的可读性和可维护性学习目标:1.从简单的函数层层调用,初步理解C++程序结构2.学习合理组织程序的规则与经验,掌握扩展程序规模的基本方法7/17/20212第七章内容函数组织(FunctionOrganization)头文件(HeaderFiles)全局数据(GlobalData)静态数据(StaticData)作用域与生命期(Scope&Lifetim

2、e)名空间(namespace)预编译(Pre-Compilation)7/17/202131.函数组织(FunctionOrganization)函数:对输入参数负责,埋头做自己的事,最终返回结果函数组织:通过在函数中进行函数调用来扩展运行的规模,层层叠叠的函数构成树结构做法:将若干个函数组织成文件,又将若干个文件构成程序的办法来进行编程分工7/17/20214对如下的函数调用关系,进行文件划分mainf2f1f3g1g2hp文件1文件2文件37/17/202152.头文件(HeaderFiles)原始头文件:作为共同开发的项目,为了共享彼此的过程资源(函数),将全体函数声明放

3、在一个共用的头文件中界面头文件:界定模块可用资源(函数,数据,类型等)(可由一个或几个头文件组合,其实现由他人提供),或提供他人使用的模块资源.它是由软件工程师分发的、以规范项目开发为目的的资源文件做法:练习划分函数组,模仿学习构造头文件,并注意头文件的应含内容7/17/20216//abc.hvoidf1();voidf2();voidf3();voidg1();voidg2();voidp();voidh();原始头文件(包含Page5的图中的一切函数声明)7/17/20217头文件的使用:使函数调用免于声明//a1.cpp#include”abc.h”voidf1(){if

4、(…){p();g1();}else{g2();h();}}7/17/20218头文件的使用:使函数调用免于声明//a2.cpp#include”abc.h”intmain(){f1();f2();f3();}//-------voidf3(){f1();}//-------voidp(){f3();}//-------7/17/20219头文件的使用:使函数调用免于声明//a3.cpp#include”abc.h”voidh(){…}voidf2(){g1();g2();}//-------voidg1(){…}voidg2(){…}7/17/202110接口头文件//a1.h

5、a1.cpp提供的资源voidf1();//a2.ha2.cpp提供的资源voidp();//a3.ha3.cpp提供的资源voidg1();voidg2();voidf2();voidh();7/17/202111//a1.cpp#include”a2.h”#include”a3.h”voidf1(){if(…){p();g1();}else{g2();h();}}使用接口头文件7/17/202112//a2.cpp#include”a1.h”#include”a3.h”staticvoidf3();intmain(){f1();f2();f3();}voidf3(){f1()

6、;}voidp(){f3();}使用接口头文件7/17/202113//a3.cpp#include”a3.h”voidh(){…}voidf2(){g1();g2();}voidg1(){…}voidg2(){…}使用接口头文件7/17/2021143.全局数据(GlobalData)全局数据:使若干个模块在程序范围内共享(读与写)数据,是若干程序文件沟通数据的一种形式意义:模块的独立性由数据的封闭性来支持.全局数据破坏了数据的封闭性,因而对小程序简单而对规范化程序则不登大雅之堂做法:练习函数之间用参数传递数据的常规形式,尽量避免使用全局数据7/17/202115例如:对于矩阵

7、的输入、处理和输出vector>a;//globalDatavoidinput();voidtranspose();voidprint();intmain(){input();//usingatranspose();//usingaprint();//usinga}7/17/202116消去全局数据:前一个过程的输出作为后一个过程的输入typedefvector>Mat;Matinput();Mattranspose(constMa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。