- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[所有分类]C程序设计教程7新
C++程序设计教程(第二版) 第七章 程序结构 Chapter 7 Program Structure 程序结构: 使程序得以运行的框架组织便是程序结构,对程序结构的研究,是为了更好地表达算法思想,使其符合编译逻辑,又具有更好的可读性和可维护性 学习目标: 1. 从简单的函数层层调用,初步理解C++程序结构 2. 学习合理组织程序的规则与经验,掌握扩展程序规模的基本方法 第七章内容 1. 函数组织 ( Function Organization ) 函数:对输入参数负责,埋头做自己的事,最终返回结果 函数组织:通过在函数中进行函数调用来扩展运行的规模,层层叠叠的函数构成树结构 做法:将若干个函数组织成文件,又将若干个文件构成程序的办法来进行编程分工 对如下的函数调用关系,进行文件划分 2. 头文件 ( Header Files ) 原始头文件:作为共同开发的项目,为了共享彼此的过程资源(函数),将全体函数声明放在一个共用的头文件中 界面头文件:界定模块可用资源(函数,数据,类型等)(可由一个或几个头文件组合,其实现由他人提供),或提供他人使用的模块资源.它是由软件工程师分发的、以规范项目开发为目的的资源文件 做法:练习划分函数组,模仿学习构造头文件,并注意头文件的应含内容 原始头文件 (包含Page5的图中的一切函数声明) 界面头文件 // a1.h a1.cpp提供的资源 void f1(); // a2.h a2.cpp提供的资源 void p(); // a3.h a3.cpp提供的资源 void g1(); void g2(); void f2(); void h(); // a1.cpp #include”a2.h” #include”a3.h” void f1() { if(…){ p(); g1(); }else{ g2(); h(); } } // a2.cpp #include”a1.h” #include”a3.h” static void f3(); int main(){ f1(); f2(); f3(); } void f3(){ f1(); } void p(){ f3(); } // a3.cpp #include”a3.h” void h(){ … } void f2() { g1(); g2(); } void g1(){ … } void g2(){ … } 头文件不仅包含函数声明,还包括: 全局数据声明 函数声明 类型声明 全局常量定义 内联函数定义 模板声明和定义 名空间定义 类型定义 预编译指令 注释 将实体定义放在头文件中是不明智的,如函数定义、变量定义,因为一种定义体在一个程序中只能出现一次。 3. 全局数据 ( Global Data ) 全局数据:使若干个模块在程序范围内共享(读与写)数据,是若干程序文件沟通数据的一种形式 意义:模块的独立性由数据的封闭性来支持.全局数据破坏了数据的封闭性,因而对小程序简单而对规范化程序则不登大雅之堂 做法:练习函数之间用参数传递数据的常规形式,尽量避免使用全局数据 例如:对于矩阵的输入、处理和输出 vectorvectorint a; // global Data void input ( ); void transpose ( ); void print ( ); int main ( ) { input ( ); // using a transpose ( ); // using a print ( ); // using a } 消去全局数据:前一个过程的输出作为后一个过程的输入 typedef vectorvectorint Mat ; Mat input ( ) ; Mat transpose ( const Mat a) ; void print ( const Mat a ) ; int main ( ) { print ( transpose ( input ( ) ) ) ; } 独立性是重用代码的起码条件。 一次定义原则是因为多文件结构中全局数据的冲突。 全局数据有全局变量、全局常量、全局对象等,它们都有指针、引用、数组和其他形式。全局数据在程序存贮结构中置身于全局数据区的位置,全局数据区的整个区域在程序启动时,初始化为0。 (例题F0703) 全局数据也应该象函数那样,多次声明,而只能有一次定义。 声明形式是在全局数据定义形式前加关键字extern。 在多个程序文
您可能关注的文档
- [建筑]超细水泥基注浆材料性能研究.pdf
- [建筑]装饰材料--玻璃、涂料.ppt
- [建筑]路基报验资料 试表1-49.doc
- [建筑]金属材料与非金属材料总结.doc
- [建筑]钢_混凝土组合梁在我国的研究及应用.pdf
- [建筑]钻挖孔灌注桩作业指导书.doc
- [建筑]铁路局营业线施工及安全管理细化补充办法.doc
- [建筑]铁路施工组织设计.doc
- [建筑]铝对稀土元素基体效应的研究.pdf
- [建筑]锤击打桩施工合同.doc
- 制动系统的特点项目一58课件.pptx
- 直接工程费价外运杂费填料费铁路工程施工组织与概预算78课件.pptx
- 主备用控制中心的切换LCF300型25课件.pptx
- 智能交通系统的相关技术任务三车辆自动驾驶技术王怡安徽交通6.pptx
- 智能交通监控系统任务三城市交通诱导系统诱导系统的组成王怡安.pptx
- 智能交通监控系统任务二城市交通监控系统王怡安徽交通67课件.pptx
- 直升机的特点和分类空气动力学基础与飞行原理86课件.ppt
- 直升机的飞行性能空气动力学基础与飞行原理67课件.ppt
- 职业形象塑造3职业教育国际邮轮乘务管理专业教学化妆与形象设.pptx
- 轴向拉压杆件的线应变和胡克定律张亚琴河北交通52课件.pptx
最近下载
- 基于智能化技术的供水管网漏点判定与修复管理模式.pptx
- 2023-2024学年沪科版(2019)高中信息技术必修二第三单元项目五《规划并连接数字家庭系统的网络——组建小型信息系统网络(一)》说课稿.docx VIP
- 北京市城镇供水厂生产安全事故隐患目录.pdf VIP
- 业主委员会委员候选人推荐表.docx VIP
- NB-T35003-2023水电工程水情自动测报系统技术规范.pdf VIP
- 2025年高考英语陕西卷含解析及答案.docx VIP
- 2025年管道直饮水项目可行性研究报告.docx
- 地理信息安全在线培训考试题目完整版答案.docx
- 幼儿园区域活动的实施策略.pptx
- 10kV及以下变电所设计规范.pdf VIP
文档评论(0)