1. 首页
  2. 课程学习
  3. C++/C
  4. 《C语言程序设计第4版)》郑莉董渊)[PDF]

《C语言程序设计第4版)》郑莉董渊)[PDF]

上传者: 2019-01-12 09:30:01上传 PDF文件 22.9MB 热度 213次
Ⅱ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文件)。更多资源请访问稀酷客(ww.ckok.c前言Ⅲ四、内容摘要第1章绪论:从发展的角度概要介绍了面向对象程序设计语言的产生和特点,面向对象方法的由来和主要的基本概念,并简单介绍了什么是面向对象的软件工程。最后介绍了信息在计算机中的表示和存储以及程序的开发过程。第2章C++简单程序设计:讲述C+程序设计的基础知识。首先简要介绍C++语言的发展历史及其特点,接着学习构成C+语句的基本部分:字符集、关键字、标识符、操作符等。还有C艹+的基本数据类型和自定义数据类型,以及算法的控制结构:顺序、选择和循环结构。“深度探索”介绍变量的实现机制和C艹表达式的执行原理。第3章函数:讲述C++语言的函数。在面向对象的程序设计中,函数对处理问题过程的基本抽象单元,是对功能的抽象。同时,使用函数也为代码的重用提供了技术上的支持。主要从应用的角度讲述各种函数的定义和使用方法。“深度探索”介绍运行栈与函数调用的执行、函数声明与类型安全。第4章类与对象:首先介绍面向对象程序设计的基本思想及其主要特点:抽象、封装、继承和多态。接着围绕数据封装这一特点,着重讲解面向对象设计方法的核心概念—类。其中包括类的定义、实现以及如何利用类来解决具体问题。最后,简单介绍了如何用UML语言描述类的特性。“深度探索”介绍位域、用构造函数定义类型转换,以及对象作为函数参数和返回值的传递方式第5章数据的共享与保护:讲述标识符的作用域和可见性及变量、对象的生存期;使用局部变量、全局变量、类的数据成员类的静态成员和友元来实现数据共享,共享数据的保护,以及使用多文件结构来组织和编写程序,解决较为复杂的问题。“深度探索”介绍常成员函数的声明原则代码的编译连接与执行过程第6章数组、指针与字符串:讨论数组、指针与字符串。数组和指针是C++语言中最常用的复合(构造)类型数据,是数据和对象组织、表示的最主要手段,也是组织运算的有力工具。本章首先介绍数组、指针的基本概念和动态存储分配以及动态数组对象。接着围绕数据和对象组织这一问题,着重讲解如何通过使用数组和指针解决数据、函数以及对象之间的联系和协调。对于字符串及其处理,本章重点介绍 string类。“深度探索”介绍指针与引用的联系、指针的安全性隐患及其应对方案,以及 const cast的应用第7章继承与派生:讲述类的继承特性。围绕派生过程,着重讨论不同继承方式下的基类成员的访问控制问题、添加构造函数和析构函数。接着讨论在较为复杂的继承关系中,类成员的唯一标识和访问问题。“深度探索”介绍组合与继承的区别与联系、派生类对象的内存布局,以及基类向派生类的转换及其安全性间题。第8章多态性:讲述类的另一个重要特性—多态性。多态是指同样的消息被不同类型的对象接收时导致完全不同的行为,是对类的特定成员函数的再抽象。C++支持的多态有多种类型,重载(包括函数重载和运算符重载)和虚函数是其中主要的方式。“深度探索”介绍多态类型与非多态类型的区别、运行时类型识别机制,以及虚函数动态绑定的实现原理第9章群体类和群体数据的组织:群体是指由多个数据元素组成的集合体。群体更多资源请访问稀酷客(ww.ckok.cⅣC++语言程序设计(第4版)可以分为两大类:线性群体和非线性群体。本章介绍几种常用的群体类模板。本章讨论的群体的组织问题,指的是对数组元素的排序与查找方法。排序( sorting)又称分类或整理,是将一个无序序列调整为有序的过程。查找( searching)是在一个序列中,按照某种方式找出需要的特定数据元素的过程。最后“深度探索”介绍模板的实例化机制、为模板定义特殊的实现。第10章泛型程序设计与C十+标准模板库:泛型程序设计就是将程序写得尽可能通用,同时并不损失效率。本章简单介绍C+标准模板库(STL)中涉及的一些概念、术语,以及它的结构、主要的组件的使用方法。重点介绍容器、迭代器、算法和函数对象的基本应用。目的是使读者对STL与泛型程序设计方法有一个概要性的了解。“深度探索”深入介绍深复制与浅复制的问题,另外还介绍了SL组件的类型特征与STL的扩展问题,以及 Boost库。第∏章流类库与输入输出:讲述流的概念,然后介绍流类库的结构和使用。就像C语言一样,C艹语言中也没有输入输出语句。但C++编译系统带有一个面向对象的I/(软件包,它就是I/(流类库。“深度探索”介绍宽字符、宽字符串与宽流,以及对象的串行化问题。第12章异常处理:讲述异常处理问题。异常是一种程序定义的错误。C++中,异常处理是对所能预料的运行错误进行处理的一套实现机制。try, throw和 catch语句就是C++语言中用于实现异常处理的机制。有了C++异常处理,程序可以向更高的执行上下文传递意想不到的事件,这样程序能更好地从这些异常事件中恢复过来。“深度探索”介绍异常安全性问题和避免异常发生时的资源泄漏五、作者分工本书第1~3章和第9,11,12章由郑莉编写,第4~8章由董渊、郑莉共同编写第10章由何江舟编写,各章的综合实例和深度探索由何江舟编写,全书例题由何江舟调试。傅仕星、张瑞丰、田荣牌、孟鸿利、刘才良参加了部分编写工作。另外特别感谢谭浩强教授和王行言教授审阅了本书第2版,并提出了许多宝贵建议。感谢读者选择使用本书,欢迎您对本书内容提出意见和建议,我们将不胜感激。作者的电子邮件地址: shengli mail. tsinghua.edu.cn,来信标题请包含“C++book”。作者2010年3月于清华大学更多资源请访问稀内容简介本书针对程序设计的初学老,以面向对象的程序设计思想为主线,以通俗易懂的方法介绍C++语言引导读者以最自然的方式,将人类习惯的面向对象的思维方法运用到程序设计中。主要内容包括程序设计基础知识、类与对象的基本概念、继承与多态、输入输出流,以泛型程序设计。此外·本教材还介绍了一些常用数据结构基础知识使得读者学习本书后,能够解决一些简单的实际问题。整套教材语言生动、流畅,深人浅出。适用于各类学校的C+语言程序设计课程本书封面贴有清华大学出版社防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(G|P)数据C++语言程序设计/郑莉,董渊,何江舟编著.-4版.一北京;清华大学出版社,2010.7清华大学计算机系列教材)ISBN978-7-302-22798-4I.①C…Ⅱ.①郑…②董…③何…Ⅲ.①C语言一程序设计一高等学校一教材Ⅳ.①TP312中国版夲图书馆CIP数据核字(2010)第095875号责任编辑:谢琛薛阳责任校对:白蕾责任印制:何芊出版发行:清华大学出版社地址:北京清华大学学研大厦A座http://www,tup,com.cn邮编:100084杜总机:010-62770175邮购:010-62786544投稿与读者服务:010-62795954]sJJe@tup.tsinghua.edu.cn质最反馈:010-6272015,zhiliang@tup.tsinghua.edu.cn印刷者:清华大学印刷厂装订者:三河市溧源装订厂经销:全国新华书店开本:185×260印张:34.25字数:784千字版次:2010年7月第4版印次:2010年7月第1次印刷印数:1~8000定价:48.00元产品编号:02797101更多资源请访问稀酷客(ww目录第1章绪论…1计算机程序设计语言的发展1.1.1机器语言与汇编语言…←省垂1.1.2高级话言1.1.3面向对象的语言1.2面向对象的方法1.2.1面向对象方法的由来……1.2.2面向对象的基本概念3面向对象的软件开发…1.3.1分析…1.3.2设计…1.3.3编程…1.3.4测试毒自香鲁售鲁售量1.3.5维护1.4信息的表示与存储………1.4.1计算机的数字系统1.4.2几种进位记数制之间的转换……1.4.3信息的存储单位4.4二进制数的编码表示…鲁。鲁…111.4.5定点数和浮点数4.6数的表示范围1.4.7非数值信息的表示··=:··········;·····..。··,··.·····1.5程序开发的基本概念暴甲中16基本术语161.5.2完整的程序过程……………………………171.6小结18习题18第2章C+简单程序设计……192.1C++语言概述192.1.1C++的产生192.1.2C++的特点20更多资源请访问稀酷客(ww.ckok.cⅥC++语言程序设计(第4版)2.1.3C++程序实例2.1.4字符集2.1.5词法记号222.2基本数据类型和表达式…2.2.1基本数据类型2.2.2常量252.2.3变量272.2.4符号常量282.2.5运算符与表达式鲁自鲁自看即···●●鲁D282.2.6语句2.3数据的输入与输出2.3.1I/O流……72.3.2预定义的插入符和提取符…372.3.3简单的I/O格式控制2.4算法的基本控制结构·,··身鲁··+·。“·4●4·“自……392.4.1用语句实现选择结构392.4.2多重选择结构…2.4.3循环结构442.4.4循环结构与选择结构的嵌套492.4.5其他控制语句522.5自定义数据类型522.5.1 typedef声明2.5.2枚举类型enum2.6深度探索…552.6.1变量的实现机制鲁·自自自自鲁非552.6.2C++表达式的执行原理…582.7小结习题_自自音自非···着··.鲁·命····“。···章甲◆第3章函数·········……∴643.1函数的定义与使用··鲁·命自自画带鲁非非·日鲁鲁虚……643.1.1函数的定义…●C643.1.2函数的调用·鲁◆●·罪看·.群..·,。自如自卓●·653.1.3函数的参数传递…3.2内联函数…………3.3带默认形参值的函数…83.4函数重载…843.5C+系统函数……86更多资源请访问稀酷客(ww.ckok.c目录Ⅶ3.6深度探索…………·;··:··:·;:······:··.··:。-=··893.6.1运行栈与函数调用的执行……893.6.2函数声明与类型安全3.7小结习题第4章类与对象4.1面向对象程序设计的基本特点.·········.·.····84.1、1抽象··.:··:·.984.1.2封装4.1.3继承………………………………………1004.1.4.多态………1004.2类和对象鲁·“音。···自··日·申■鲁t看·鲁4自鲁·中幸·音·甲专1004.2.1类的定义…104.2.2类成员的访问控制……1024.2.3对象……画鲁自··。直··D曹单伊··鲁d聊1034.2.4类的成员函数1044.2.5程序实例∴∴………∴1064.3构造函数和析构函数●·。要垂1071构造函数…1074.3.2复制构造函数1094.3.3析构函数:命····:··1134.3.4程序实例……44.4类的组合…1164.4.1组合…中··:·······1164.4.2前向引用声明………………………1204.5UML图形标识…1224.5.1UML简介4.5.2UML类图··击着非·鲁自旷1234.6结构体和联合体4.6.1结构体………………44·..·;-6.;4··丶.··.·1294.6.2联合体……………1304.7综合实例个人银行账户管理程序1334.7.1类的设计…………1334.7.2源程序及说明…●1344.8深度探索…1374.8.1位域…曲鲁鲁中·●垂幸1374.8.2用构造函数定义类型转换…139更多资源请访问稀酷客(ww.ckok.cC++语言程序设计(第4版)4.8.3对象作为函数参数和返回值的传递方式l404.9小结…即:鲁电·143习题……………………144第5章数据的共享与保护……………1465.1标识符的作用域与可见性…1465.1.1作用域…………………………1465.1.2可见性t·····垂看垂4。鲁看·夏看看即曹1505.2对象的生存期……1505.2.1静态生存期…1505.2.2动态生存期……p鲁··喜1515.3类的静态成员…1535.3.1静态数据成员1545.3.2静态函数成员……………………………1565.4类的友元1585.4.1友元函数………………………1605.4.2友元类…1615.5共享数据的保护…1635.5.1常对象…∴………………16355.2用 const修饰的类成员…1645.5.3常引用……1665.6多文件结构和编译预处理命令……………1685.6.1C++程序的一般组织结构4自。。d由由。垂41685.6.2外部变量与外部函数1705.6.3标准C艹+库l725.6.4编译预处理….············.········普1735.7综合实例—个人银行账户管理程序………………………1765.8深度探索……1805.8.1常成员函数的声明原则……………………………………1805.8.2代码的编译连接与执行过程…………1825.9小结…………185习题……………………………………………185第6章数组、指针与字符串∴…………1886.1数组1886.1.1数组的声明与使用自。着着看,普886.1.2数组的存储与初始化…1906.1.3数组作为函数参数卓·鲁自单鲁鲁鲁.·‘惠着·鲁。··着.·193更多资源请访问稀酷客(ww.ckok.c
用户评论