c++语言程序设计PDF扫描版

所需积分/C币:42 2017-10-16 02:43:37 21.99MB PDF
191
收藏 收藏
举报

清华大学郑莉著C++语言程序设计 C++语言程序设计 C++
C++语言程序设计(第4版) 成分的工作已经在系统分析和设计阶段完成,()OP工作就是用一种面向对象的编程语 把OOD模型中的每个成分书写出来 面向对象方法的出现,实际上是程序设计方法发展的一个返璞归真过程。软件开发 从夲质上讲,就是对软件所要处理的问题域进行正确的认识,并把这种认识正确地描述出 来。面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将 人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专 业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。 那么,学习C++语言是否应该首先学习C语言呢?不是的。虽然C++语言是从 C语言发展而来的,但是C++本身是一个完整的程序设计语言,而且它与C语言的程序 设计思想是完全不同的。我们学习的进程不必严格遵循科学技术的发展进程,只有尽快 地掌握最新的理论和技术,才能站到巨人的肩膀上 因此,我们认为,C++语言是可以作为程序设计的人门语言来学习的。 三、本书的特色 本书的特色是内容全面、深入浅出、灵活剪裁、立体配套。 本书是一本面向广大初学者的人门教材,自1999年第一版出版以来,已经在清华大 学等100多所学校的不同专业中使用,取得了良好的教学效果。 本书将C艹+语言作为计算机编程入门语言,不仅详细介绍了语言本身,而且介绍了 常用的数据结构和算法、面向对象的设计思想和编程方法、UML建模语言。全书以面向 对象的程序设计方法贯穿始终,每一章都是首先阐述面向对象的程序设计思想和方法,由 实际问题人手,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲 述其意义和用途。本书的宗旨是,不仅要使读者掌握C++语言本身,而且要能够对现实 世界中较简单的问题及其解决方法用计算杋语言进行描述。当然,要达到能够描述较复 杂的问题域还需要学习面向对象的软件工程课等其他课程。 针对初学者和自学者的特点,本书力求做到深入浅出,将复杂的概念用简洁浅显的语 言娓娓道来。不同学校可以针对自身的教学特点,选择不同的章节组合进行教学。如果 学时较少,可以只选择第1~8章、第11章。每一章的深度探索也是选学内容,可以根据 不同专业的教学需求进行选择 作者使用本书授课时的讲课学时数为32学时,实验学时数为32学时,课外上机学时 数为32学时,课内外共96学时,每学时45分钟。建议讲课学时数分配如下: 第1章2学时,第2章4学时,第3章2学时,第4章4学时,第5章2学时,第6章 4学时,第7章2学时,第8章2学时,第9章4学时,第10章2学时,第11章2学时, 第12章2学时。 实验学时数的分配请参考配套的《C+十语言程序设计习题与实验指导》。 读者还可以通过配套的《C++语言程序设计学生用书》,在实践中达到对内容的深入 理解和熟练掌握。为了方便教师备课,本书还配有电子教案(PPT文件) 前 Ⅲ 四、内容摘要 第1章绪论:从发展的角度概要介绍了面向对象程序设计语言的产生和特点,面 向对象方法的由来和主要的基本概念,并简单介绍了什么是面向对象的软件工程。最后 介绍了信息在计算机中的表示和存储以及程序的开发过程。 第2章C+简单程序设计:讲述C++程序设计的基础知识。首先简要介绍C++ 语言的发展历史及其特点,接着学习构成C++语句的基本部分:字符集、关键字、标识 符、操作符等。还有C艹+的基本数据类型和自定义数据类型,以及算法的控制结构:顺 序、选择和循环结构。“深度探索”介绍变量的实现机制和C++表达式的执行原理。 第3章函数:讲述C++语言的函数。在面向对象的程序设计中,函数对处理问题 过程的基本抽象单元,是对功能的抽象。同时,使用函数也为代码的重用提供了技术上的 支持。主要从应用的角度讲述各种函数的定义和使用方法。“深度探索”介绍运行栈与函 数调用的执行、函数声明与类型安全 第4章类与对象:首先介绍面向对象程序设计的基本思想及其主要特点:抽象、封 装、继承和多态。接着围绕数据封装这一特点,着重讲解面向对象设计方法的核心概 念——类。其中包括类的定义、实现以及如何利用类来解决具体问题。最后,简单介绍了 如何用UMⅠ语言描述类的特性。“深度探索”介绍位域、用构造函数定义类型转换,以及 对象作为函数参数和返回值的传递方式 第5章数据的共享与保护:讲述标识符的作用域和可见性及变量、对象的生存期; 使用局部变量、全局变量、类的数据成员类的静态成员和友元来实现数据共享,共享数据 的保护,以及使用多文件结构来组织和编写程序,解决较为复杂的问题。“深度探索”介绍 常成员函数的声明原则、代码的编译连接与执行过程 第6章数组、指针与字符串:讨论数组、指针与字符串。数组和指针是C++语言中 最常用的复合(构造)类型数据,是数据和对象组织、表示的最主要手段,也是组织运算的 有力工具。本章首先介绍数组、指针的基本概念和动态存储分配以及动态数组对象。接 着围绕数据和对象组织这一问题,着重讲解如何通过使用数组和指针解决数据、函数以及 对象之间的联系和协调。对于字符串及其处理,本章重点介绍 string类。“深度探索”介 绍指针与引用的联系、指针的安全性隐患及其应对方案,以及 const cast的应用。 第7章继承与派生:讲述类的继承特性。围绕派生过程,着重讨论不同继承方式 下的基类成员的访问控制问题、添加构造函数和析构函数。接着讨论在较为复杂的继承 关系中,类成员的唯一标识和访问问题。“深度探索”介绍组合与继承的区别与联系、派生 类对象的内存布局,以及基类向派生类的转换及其安全性问题 第8章多态性:讲述类的另一个重要特性—多态性。多态是指同样的消息被不 同类型的对象接收时导致完全不同的行为,是对类的特定成员函数的再抽象。C++支持 的多态有多种类型,重载(包括函数重载和运算符重载)和虚函数是其中主要的方式。“深 度探索”介绍多态类型与非多态类型的区别、运行时类型识别机制,以及虚函数动态绑定 的实现原理。 第9章群体类和群体数据的组织:群体是指由多个数据元素组成的集合体。群体 Ⅳ C++语言程序设计(第4版 可以分为两大类:线性群体和非线性群体。本章介绍几种常用的群体类模板。 本章讨论的群体的组织问题,指的是对数组元素的排序与查找方法。排序( sorting) 又称分类或整理,是将一个无序序列调整为有序的过程。查找( searching)是在一个序列 中,按照某种方式找出需要的特定数据元素的过程。最后“深度探索”介绍模板的实例化 机制、为模板定文特殊的实现 第10章泛型程序设计与C+标准模板库:泛型程序设计就是将程序写得尽可能 通用,同时并不损失效率。本章简单介绍C艹+标准模板库(STL)中涉及的一些概念、术 语,以及它的结构、主要的组件的使用方法。重点介绍容器迭代器、算法和涵数对象的基 本应用。目的是使读者对STL与泛型程序设计方法有一个概要性的了解。“深度探索” 深入介绍深复制与浅复制的问题,另外还介绍了STL组件的类型特征与STL的扩展问 题,以及 Boost库。 第I章流类库与输入输出:讲述流的概念,然后介绍流类库的结构和使用。就像 C语言一样,C++语言中也没有输入输出语句。但C++编译系统带有一个面向对象的 I/(软件包,它就是1/(流类库。“深度探索”介绍宽字符、宽字符串与宽流,以及对象的 串行化问题。 第12章异常处理:讲述异常处理问题。异常是一种程序定义的错误。C十+中,异 常处理是对所能预料的运行错误进行处理的一套实现机制。try, throw和 catch语句就 是C+语言中用于实现异常处理的机制。有了C++异常处理,程序可以向更高的执行 上下文传递意想不到的事件,这样程序能更好地从这些异常事件中恢复过来。“深度探 索”介绍异常安全性问题和避免异常发生时的资源泄漏。 五、作者分工 本书第1~3章和第9,11,12章由郑莉编写,第4~8章由董渊、郑莉共同编写, 第10章由何江舟编写,各章的综合实例和深度探索由何江舟编写,全书例题由何江舟调 试。傅仕星、张瑞丰、田荣牌、孟鸿利、刘才良参加了部分编写工作。另外特别感谢谭浩强 教授和王行言教授审阅了本书第2版,并提出了许多宝贵建议。 感谢读者选择使用本书,欢迎您对本书内容提出意见和建议,我们将不胜感激。作者 的电子邮件地址: zhengli@mail. tsinghua.edu.en,来信标题请包含“C+book”。 作者 2010年3月于清华大学 内容简介 本书针对程序设计的初学者,以面向对象的程序设计思想为主线,以通俗易懂的方法介组C++语 言,引导读者以最自然的方式,将人类习惯的面向对象的思维方法运用到程序设计中。主要内容包括程 序设计基础知识、类与对象的基本概念继承与多态、输入输出流,以及泛型程序设计。此外,本教材还 介绍了一些常用数据结构基础知识,使得读者学习本书后,能够解决一些简单的实际问题。整套教材语 言生砌、流畅,深人浅出。适用于各类学校的¢+语言程序设计课程 本书封面贴有清华大学出版社防伪标签,无标签者不得销售。 版权所有,侵权必究。侵权举报电话:010-6278298913701121933 图书在版编目(c|P)数据 C艹+语言程序设计/郑莉,董渊,何江舟编著.4版.一北京:清华大学出版社,2010.7 (清华大学计算机系列教材) ISBN978-7-302-22798-4 I·①C…·Ⅱ.①郑…②董…③何…Ⅲ.①C语言一程序设计一高等学校一教材 Ⅳ,①TP312 中国版本图书馆CIP数据核字(2010)第095875号 责任编辑:谢琛薛阳 责任校对:白蕾 责任印制:何芊 出版发行:清华大学出版社 地址:北京清华大学学研大厦A座 htp:∥www.tup.com.cn 邮编:100084 杜总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62795954jsjc@tup.tsinghua,edu.cn 质量反馈:010-62772015,zhiliang@tup.tsinghua.cdu.cn 印刷者:清华大学印刷厂 装订者:三河市溧源装订厂 经销:全国新华书店 开本:185×250 印张;34.25 字数:784千字 版次:2010年7月第4版 印次:2010年7月第1次印刷 印数:1~8000 定价:48.00元 产品编号:02797101 目录 第1章绪论 ··.···4·················+·“···:·····;·::····· 奋专·鲁是● 1.1计算机程序设计语言的发展 1.1.1机器语言与汇编语言… 1.1.2高级语言… b·●鲁·命非b垂垂··,.非‘身··鲁 ··垂●D咖春命非·· 1.1.3面向对象的语言… 1.2面向对象的方法…… .····:·a··÷·.·“a··“ 1.2.1面向对象方法的由来… 非鲁非 鲁●·鲁。鲁 1.2.2面向对象的基本概念 2345 1.3面向对象的软件开发 鲁鲁音鲁番音·自鲁鲁m鲁带 4·;·······“.·····;····a:;·····:···· 1.3.1分析 1.3.2设计………… 1.3.3编程……… 1.3.4测试 ·········:········‘·#·::········· 6 1.3.5维护 6 1.4信息的表小与存储 6 1.4.1计算机的数字系统 曹.·如甲·4··垂·· D番 1.4.2几种进位记数制之间的转换……… 1.4.3信息的存储单位… 1.4.4二进制数的编码表示……… 1.4.5定点数和浮点数 15 1.4.6数的表示范围 15 1.4.7非数值信息的表示 16 1.5程序开发的基本概念 …16 1.5.1基本术语… 1.5.2完整的程序过程 …17 1.6小结 习题 18 第2章C+t简单程序设计 19 2.1C++语言概述 19 2.1.1C++的产生… …灬………1 2.1.2C++的特点 .·..·······.· 20 C++语言程序设计(第4版 2.1.3C++程序实例 20 2.1.4字符集… 曹嚼 2 2.1.5词法记号 非,·看自a?奇曹。非4· 22 2.2基本数据类型和表达式 …23 2.2.1基本数据类型…… 24 2.2.2常量………… ……………………25 2.2.3变量 27 2.2.4符号常量 ………∴28 2.2.5运算符与表达式…… ·a;····:······;···· ………28 2.2.6语句 …37 2.3数据的输入与输出 …………………………………37 2.3.1I/O流 37 2.3.2预定义的插入符和提取符……… ………………37 2.3.3简单的I/(格式控制 38 2.4算法的基本控制结构… 2.4.1用证f语句实现选择结构……… 39 2.4.2多重选择结构 41 2.4.3循环结构…… ………∴44 2.4.4循环结构与选择结构的嵌套 ……49 2.4.5其他控制语句 52 2.5自定义数据类型 52 2.5.1 typedef声明…… 2.5.2枚举类型enum 53 2.6深度探索 2.6.1变量的实现机制… 2.6.2C++表达式的执行原理 2.7小结…………… 60 习题 60 第3章函数 64 3.1函数的定义与使用 64 3.1.1函数的定义 看电。。 64 3.1.2函数的调用… 3.1.3函数的参数传递 78 2内联函数 …81 3.3带默认形参值的函数 ………………82 3.4函数重载… 84 3.5C++系统函数… 一········· …………………86 目录 3.6深度探索 89 3.6.1运行栈与函数调用的执行 89 3.6.2函数声明与类型安全 ···.····· 9 3.7小结……………… ∴95 习题 96 第4章类与对象… ∴98 4.1面向对象程序设计的基本特点… …98 4.1.1抽象……… 日命果要看鲁 垂自垂··D●··要··4 98 4.1.2封装 垂垂·●曲幽 …………99 4.1.3继球……… 100 4.1.4.多态 嘔·售●香曹 ·垂·“·.··t如s"·h面·.鼻.由··_如··t· 100 4.2类和对象 ●···b如.·垂 100 4.2.1类的定义 4.2.2类成员的访问控制 ……102 4.2.3对象 103 4.2.4类的成员函数… 10 4.2.5程序实例 ……106 4.3构造函数和析构函数 107 4.3.1构造函数 ∴………………………107 4.3.2复制构造函数… ……109 4.3.3析构函数… …113 4.3.4程序实例 44类的组合 116 4.4.1组合…… 鲁毒·即 116 4.4.2前向引用声明 ……120 4.5UML图形标识 4.5.1UML简介 122 4.5.2UML类图 12 4.6结构体和联合体 129 4.6.1结构体…… 129 4.6.2联合体 4.7综合实例一个人银行账户管理程序…………………………………133 4.7.1类的设计… 133 4.7.2源程序及说明 4.曹,占 ……………………134 4.8深度探索 137 4.8.1位域… …………………137 4.8.2用构造函数定义类型转换 …∴139 C++语言程序设计(第4版) 4.8.3对象作为函数参数和返回值的传递方式 140 4.9小结……… 143 习题… 鲁··自···咖·是吾香矗b.4·鲁晶●自·· …∴…144 第5章数据的共享与保护………………………… 146 5.1标识符的作用域与可见性……… 自自·非鲁。由· 146 5.1.1作用域… ·“·a·4····.““········· ………………………146 5.1.2可见性…………………… 150 5.2对象的生存期 150 5.2.1静态生存期… ■·1 150 5.2.2动态生存期…… 151 5.3类的静态成员… ……∴……153 5.3.1静态数据成员……………………… ■垂 154 5.3.2静态函数成员 156 5.4类的友元……… 158 5.4.1友元函数………… …………160 5.4.2友元类…… 161 5.5共享数据的保护 163 5.5.1常对象 ●。 章。鲁香 163 5.5.2用 const修饰的类成员… 164 55.3常引用… …166 5.6多文件结构和编译预处理命令 …………………………168 5.6.1C++程序的一般组织结构…… ·■···。● 168 5.6.2外部变量与外部函数…………… 170 56.3标准C+库 ………172 5.6.4编译预处理 ………173 5.7综合实例一个人银行账户管理程序 176 5.8深度探索 180 58.1常成员函数的声明原则… 180 5.8.2代码的编译连接与执行过程……………………………………182 5.9小结 185 习题 185 第6章数组、指针与字符串 ,188 6.1数组 自鲁自 ·毒非···卡鲁· 188 6.1.1数组的声明与使用 .···“······4············ 188 6.1.2数组的存储与初始化 ∴∴∴…190 6.1.3数组作为函数参数… 93

...展开详情
试读 127P c++语言程序设计PDF扫描版
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
c++语言程序设计PDF扫描版 42积分/C币 立即下载
1/127
c++语言程序设计PDF扫描版第1页
c++语言程序设计PDF扫描版第2页
c++语言程序设计PDF扫描版第3页
c++语言程序设计PDF扫描版第4页
c++语言程序设计PDF扫描版第5页
c++语言程序设计PDF扫描版第6页
c++语言程序设计PDF扫描版第7页
c++语言程序设计PDF扫描版第8页
c++语言程序设计PDF扫描版第9页
c++语言程序设计PDF扫描版第10页
c++语言程序设计PDF扫描版第11页
c++语言程序设计PDF扫描版第12页
c++语言程序设计PDF扫描版第13页
c++语言程序设计PDF扫描版第14页
c++语言程序设计PDF扫描版第15页
c++语言程序设计PDF扫描版第16页
c++语言程序设计PDF扫描版第17页
c++语言程序设计PDF扫描版第18页
c++语言程序设计PDF扫描版第19页
c++语言程序设计PDF扫描版第20页

试读结束, 可继续阅读

42积分/C币 立即下载