首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

现在,ANSI C++程序设计语言已经广泛应用于全世界的学术界和工业界。在许多教育机构,它都是程序设计语言课程的首选语言,也是计算机科学教学的首选语言。究其原因,主要是因为C++是学习更高级课程所必需的基础课程;而且,C++拥有众多实用库,得到许多复杂集成环境的支持,它是一种能够有效地支持当今主流的面向对象程序设计方法的语言。

本书通过精心开发的可实际工作的程序来介绍程序设计过程,并以此阐明C++程序设计语言的关键特性。书中以易于理解的方式解释了程序代码,这些程序代码都在多个平台上进行了测试。书中的代码能够在大多数C++系统上使用,包括MacOS、MS-DOS、OS/2、UNIX和Windows等操作系统上的C ++系统。

C++是由贝尔实验室的Bjarne Stroustrup在20世纪80年代中期发明的一种功能强大的现代语言;C++语言是C语言的后续语言,它在C语言的基础上增加了类的概念,提供了一种用户自定义类型(也叫抽象数据类型)的机制。通过自定义用户类型、继承和运行时类型绑定,C++提供了对面向对象程序设计的支持。

解析方法

本书通过精心开发的可实际工作的C++程序,利用解析(dissection)的方法,向读者清晰而详细地介绍了C++程序设计的过程。解析是作者在 1984年首先开发的一种教学方法,用来阐述代码的关键特性。解析类似于对代码进行的初始结构化分析,其目的是向读者解释在代码中遇到的程序设计元素和方法。解析以易于理解的语言渐进式地解释程序和函数,可以加强读者对不同上下文中程序和函数的关键思想的理解。

无需任何程序设计背景

本书主要面向没有任何程序设计背景的读者,不熟悉C++的有编程经验的程序员也可以从中获益。本书可以作为学生学习计算机科学或程序设计的第一门课程的教材。

本书适用于计算机科学专业或其他学科的第一门程序设计课程。书中的每一章都给出了对大量程序的具体解释,以启发式方法引导学生提高程序设计技巧。本书首先介绍一个完整的程序,然后再介绍函数的编写,函数也是结构化程序设计的主要特点。函数和程序的关系类似于段落和文章的关系,编写完整的函数是程序员必须具备的能力,因此本书将其作为重点强调。书中有大量不同难度的示例和习题,教师可以从中选择合适的示例和习题进行讲解。

本书特色

本书有许多特色:

□在网站上有本书原版的全部电子文档,也有指向有用站点的链接和本书完整的程序代码。

□书中贯穿着对软件工程实践的描述。

□每章都为初学者提供了作者建议的简明的编程技巧。

□对简单的递归提前进行解释,这是计算机科学课程导论部分的内容。

□覆盖了程序正确性和类型安全性。

□深入解释了函数和指针,这些概念通常是初学者学习时遇到的最大障碍。

□强调了面向对象程序设计的概念。

□详细描述了泛型编程和STL。

□为了理解面向对象编程引入了UML图。

□与Java进行了比较,并配备了可选的Java习题,指出了Java by Dissection(与Charlie McDowell合著)一书中的对应内容。

章节特色

每章都包含了下列教学要素。

解析 通过解析的方法解释了重要示例程序的主要元素。这种对新的程序设计思想的渐进式讨论有助于第一次接触这些设计思想的读者更好地理解这些思想。

面向对象程序设计 逐步引导读者熟悉面向对象风格。第4章介绍了类:类是产生模块化程序和实现抽象数据类型的基本机制,类变量是被操纵的对象。第8章介绍了两个关键概念,即继承和虚函数。第11章讨论了面向对象程序设计原理。本书培养了程序员的面向对象程序设计观念。

编程风格和软件工程 本书通篇强调了编程风格和软件方法。本书一开始就介绍了一些重要的概念,例如结构化分支语句、嵌套控制流程、自顶向下设计方法和面向对象程序设计。本书一开始就采用了一致和合理的代码风格,并详细阐述了这种风格的重要性和原理。本书采用的代码风格也是C++专业编程人员最常用的风格。

可实际工作的代码 本书的程序代码都是可实际工作的,通过这些可执行的代码,学生能够更好地理解要讨论的程序设计思想。本书通过解析的方式解释了许多程序和函数,在习题中还经常涉及这些程序设计思想。

常见的编程错误 本书描述了许多典型的编程错误以及避免这些错误的方法。学习一门程序设计语言有障碍很大程度上是因为遇到了一些难以理解的错误,许多书籍只讨论了正确的程序代码,而让读者自己通过试错过程去发现程序设计中的漏洞。本书不但解释了C++中的典型错误是如何造成的,还解释了如何改正这些错误。

Pohl博士的建议 作者基于丰富的编程经验提出了一系列的编程技巧,对每一个技巧都简明指出了基本原理。

与Java的比较 在可选的章节中介绍了与C++实例进行对比的Java语言程序设计元素,习题中也给出了相关内容。在大多数情况下,C++与Java具有同样的程序设计元素,本书可以帮助熟悉Java的学生学习如何从Java迁移到C++。那些熟悉C++的学生,如果想进一步学习Java,也可以从这些章节中受益。此外,想学习本书姊妹书Java by Dissection的读者,也可以通过本书熟悉我们讲解Java的方法。

小结 每章过后都有关于本章要点的简明列表,这可以帮助读者回顾这一章的内容,加深对这一章中提出的新观点的理解。

习题 习题用于检验学生对语言知识的掌握程度。许多习题的设计目标都是为了便于读者进行交互式学习,这样有助于读者自学。除了针对语言特性的习题之外,一些习题也针对某个主题给出了更多的细节,还有一些习题则引入了更深层次的知识。

课堂教学

本书可以作为教材使用。第一阶段指导学生如何编程,主要包括第1章~第5章的内容。这部分通过如何使用数组、指针以及基本的面向对象程序设计来介绍C++ 程序设计语言。第二阶段包括第6章~第11章的内容,介绍更高级的数据类型、面向对象程序设计、泛型程序设计和STL、文件处理和软件工程。如果课程是为已经有程序设计基础(不一定是C++语言程序设计基础)的学生设计的,教师可以介绍本书的所有主题。本书也可以作为需要学生使用C++的其他计算机科学课程的教材。在语言比较课中,本书可以与其关于C、Java和C#的姊妹书一同使用,它们采用同样的解析方法,用各自的语言编写了相同的示例。

交互式环境

本书是为交互式环境编写的,我们鼓励读者通过键盘和屏幕进行实验。许多PC厂商都支持交互式的C++系统,如Borland、IBM、Metroworks、微软和Symantec等。

专业人员

虽是为初学者而写,但本书同样可以成为经验丰富的程序员的良师益友。结合Al Kelley和Ira Pohl合著的A Book on C,计算机专业人员能够综合理解这两种语言。这两本书相辅相承,对C/C++程序设计语言进行了综合介绍,非常难得。此外,结合Ira Pohl和Charlie McDowell合著的Java by Dissection,学生和专业人员能够获得对面向对象语言Java的完全理解。

本书是作者讲授的许多在线专业培训课程的基础。从1986年起,作者就使用这些内容在各种各样的论坛上培训专业人员和学生。本书也是www.digitalthink.com提供的基于Web的C++培训的基础。

教辅材料

对使用本书作为教材的教师,Addison-Wesley 可以提供以下教辅材料:

□习题解答。

□示例程序代码。

□含有所有插图的PowerPoint幻灯片。

要想了解更多关于教辅材料的信息,请访问www.aw.com/cssupport。

致谢

特别感谢Uwe F. Mayer、George Belotsky和Bruce Montague,他们仔细阅读了本书,提出了许多改进建议。感谢评审专家:科罗拉多州立大学的Charles Anderson,杨百翰大学的Parris Egbert,海军研究生院的Chris Eagle,路易斯安那州立大学的Nigel Gwee,佛罗里达州立大学的Stephen P. Leach和宾夕法尼亚州立大学的Steven C. Shaffer。感谢John dePillis、Debra Dolsberry和Laura Pohl,他们设计并绘制了许多卡通插图。特别要感谢Debra Dolsberry,她是本书许多材料的主要技术编辑,此外,她也负责使用FrameMaker对本书进行排版。感谢Charlie McDowell和Al Kelley编写了关于C和Java的姊妹篇。

感谢组稿编辑Maite Suarez-Rivas、项目编辑Katherine Harutunian和副总编Patty Mahtani,感谢她们的热心、支持和鼓励。感谢Argosy的Caroline Roop和Sally Boylan,感谢她们对于本书出版的悉心关注!

Ira Pohl

于加州大学圣克鲁兹分校

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论