C++程序设计:基础、编程抽象与算法策略

基本信息

  • 原书名:Programming Abstractions in C++
  • 作者: (美)埃里克 S.罗伯茨(Eric S. Roberts)
  • 译者: 李雁妮
  • 丛书名: 计算机科学丛书
  • 出版社:机械工业出版社
  • ISBN:9787111546962
  • 上架时间:2017-4-17
  • 出版日期:2016 年11月
  • 开本:16开
  • 版次:1-1
  • 所属分类:

    计算机 > 软件与程序设计 > C++ > C++

内容简介

    书籍
计算机书籍
本书是一本关于C++语言的优秀书籍,全书共计20章,主要介绍了C++的基本知识、函数和库、字符串、流、集合、类的设计、递归、递归策略、回溯算法、算法分析、指针与数组、动态内存管理、效率与表示、线性结构、映射、树、图、继承、迭代的策略等内容。本书重点突出,全面讲解了C++语言的基本概念,深入剖析了具体的编程思路。同时,每章后面都有配套的习题,有助于读者进一步理解和掌握晦涩的概念。
本书适合作为计算机专业及相关专业学生的教材或教学参考书,也适合希望学习C++语言的初学者和中高级程序员使用。

目录

出版者的话
译者序
前言
第1章 C++概述1
1.1 你的第一个C++程序1
1.2 C++的历史2
1.2.1 面向对象范型2
1.2.2 C++的演化3
1.3 编译过程3
1.4 C++程序结构4
1.4.1 注释5
1.4.2 包含的库文件6
1.4.3函数原型6
1.4.4主程序7
1.4.5函数定义8
1.5 变量9
1.5.1 变量声明9
1.5.2命名规则10
1.5.3 局部变量和全局变量11
1.5.4 常量11
↓展开全部内容

前言

  在过去的十年里,计算领域正令人振奋地高速发展着。我们随身携带的网络设备运行速度越来越快,价格越来越便宜,功能也越来越强大。谷歌和维基百科等基于网络的服务给我们提供了大量触手可及的信息。社交网络把我们同世界各地的人联系起来。流媒体技术和更快速的硬件让我们能在任何时候下载所需的音乐和影像。
然而,这些技术并不是突然而至的,而是人们创造了它们。遗憾的是,具备必需的软件开发技能的人现在正供不应求。在硅谷的高科技中心,很多公司找不到能把技术设想转化为现实应用的工程师。各个公司正在极力招聘懂得开发及维护大型系统的人,即懂得数据表示、效率、安全性、正确性和模块化等问题的软件开发人员。
尽管本书不会教给你关于这些主题和计算机科学领域的所有知识,但它会给你一个良好的开始。在斯坦福大学,每年有超过1000名学生选择使用本教材上课。他们中的大部分人觉得在暑期实习或实际工作中仅仅学习本教材中的知识远远不够。更多的学生选择继续学习更深入的课程以使自己在这个高速发展的领域获得更多的机会。
本书的主题除了会在计算机行业中给你提供机会外,同时它也寄乐于学。你在本书中学到的算法和策略有一部分是最近十年发明的,其他的都存在了超过2000年——它们充分体现了人类的聪明才智和创造力。这些算法和策略还非常实用,它们会帮助你成为一个富有经验的程序员。
在你学习本书中的材料时,请牢记,编程总是需要通过实际操作来学习的。阅读一种算法技术并不代表你就能够把那个算法应用到实际中去。只有通过练习和尝试去解决问题的调试,你才能真正学到算法的精髓。编程有时候使人感觉很沮丧,但是当你找到最后一个错误并且看到你的程序正确运行时,会欣喜若狂,它足以回报你在编程这条道路上所付出的任何努力。
致教师
本教材适合作为典型的大学课程中第二门编程课程的教材。它涵盖了ACM的Curriculum?8报告中定义的传统CS2课程中的材料。因此它包含了CS102和CS103课程指定的绝大多数主题,CS102和CS103分别由“ACM/IEEE-CS联合计算机课程2001版”报告及“计算机科学课程2013版”草稿中的AL/基本数据结构及算法单元中的材料定义。
本教材采用的教学策略在斯坦福大学已大获成功。
1.数据结构的客户优先方法。传统的CS2课程由一系列基本数据结构组成。采用此模型,学生可同时学习如何使用一个特定的结构和如何实现它及理解它的性能特点。相比之下,本教材很早地展现了类的完整集合,让学生以客户的身份逐渐熟悉这些类。一旦学生透彻理解了这些内容,本书即开始展现它可能的实现范围和相关的计算特性。在斯坦福大学采用这种策略有助于学生轻松理解相关内容。自从做了这个改变,学生在需要使用集合类的考试中的分数也有了大幅度提高。
2.稍晚呈现那些需要详细了解底层机器的C++特性。尽管前两章给学生提供了C++中基本类型和控制结构的总览,但初始的部分刻意地区分了基本指针和数组等依赖于对底层机器架构理解的主题。虽然这些细节是CS2的基本部分,但也没有必要在课程刚开始的时候就给学生过大的负担。尽早介绍类的集合使得学生能够掌握几个其他同等重要的主题,包括集合类、递归、面向对象设计和算法分析,但是不需要同时纠结于它的底层细节。
3.一个方便易用的图形化可移植类库。使用C++作为教学语言的一个问题是标准类库不提供图形化功能。而本书自带了一个免费发布的开源类库—Standford C++类库,它提供了一种进行图形交互的简单且宜教宜学的方法。Standford C++类库还包括集合类的简化实现,它支持一个更逻辑化且更加有效的表示规则。
补充资源
对于学生
在Pearson网站(http://www.pearsonhighered.com/ericroberts/)上,读者可下载以下资源:
1.书中每个示例程序的源代码文件
2.运行示例的全彩PDF版本
3.复习题的答案
对于教师
在Pearson网站上,有资格的教师可下载以下资源:
1.书中每个示例程序的源代码文件
↓展开全部内容

序言

  译者序
本书是美国斯坦福大学计算机科学系C++编程课程多年来成功使用的优秀教材,我很荣幸能成为本书的译者。虽然在为时一年多的书稿翻译过程中,我倍感工作量的巨大与任务的艰辛,但却被本书严谨的结构、通俗精妙的语言以及丰富精巧的编程实例与习题等深深吸引,它驱动我尽最大努力翻译好这本优秀的C++编程教材,以此呈现给国内教授C++编程课程的高校教师和广大欲深入学习C++编程的大学生、研究生及专业的C++程序员。
本书突破了一般C++编程教材大多仅注重介绍C++语法特性的局限,以循序渐进的方式教授读者正确编写出可行高效的C++程序。本书内容不仅涵盖了2013版ACM和IEEE所规定的计算机科学学科在程序设计课程中所定义的内容,而且为了缩短或消除“C++语言”和“C++编程抽象”之间的鸿沟,在其示例和习题中还包含了基本的数据结构及算法课程中的相关内容。从易于读者掌握并尽快提高C++面向对象编程能力的角度,本书从第3章起便开始陆续介绍C++标准类库中的类,并以示例程序和若干编程模式示范总结了如何使用C++标准类库中的集合类、递归编程、面向对象程序设计和算法实现及分析等技术,同时提供了一个开源的、方便易用的图形化的可移植C++类库—Stanford C++类库。衷心祝愿广大读者能从这本优秀的C++编程教材中受益!
在本书翻译工作即将结束之时,衷心感谢机械工业出版社华章公司教材部朱劼女士,是她的努力才促成译者与华章公司在本书翻译上的合作。衷心感谢责任编辑缪杰对提高本书质量所做的大量细致的校对、修正等工作。
这里,要特别感谢王雅馨、黄一涵、刘磊、汪泰利、景祯彦等同学在本书译校过程中的辛勤付出。由于时间仓促且译者水平有限,译文中难免存在欠妥、纰漏与错误之处,恳请广大读者不吝赐教与指正。
李雁妮
2016年7月于西安电子科技大学

发表评论

电子邮件地址不会被公开。 必填项已用*标注