论坛风格切换切换到宽版
  • 96阅读
  • 2回复

[共享]像计算机科学家一样思考C++((美)唐尼)+50盟币+PDF书签 [复制链接]

楼层直达
在线791698650
 

发帖
250
盟币
12347
威望
3
魅力值
25
版主工龄
0
宣传币
0
从事行业
航空航天
(毕业)院校
南京理工大学
马上注册,结交更多好友,享用更多功能,让你轻松玩转 博研论坛 。 立即注册 已有账号? 关闭
出售附件:计算机科学家一样思考C++((美)唐尼).pdf (6179 K) 下载次数:4 ,你所在用户组没有附件下载权限 [记录]




像计算机科学家一样思考C++
                                                        
【作  者】(美)唐尼
【出版发行】                         北京:人民邮电出版社 , 2013.06                          
【ISBN号】978-7-115-31280-8
【页  数】                          216                          
【原书定价】39.00
【主题词】C语言-程序设计


【中图法分类号】TP31

【内容提要】本书作者基于自己在美国各所大学和学院讲授计算机程序设计课程的经验,开创了“像计算机科学家一样思考(HowtoThinkLikeaComputerScientist)”的教学理念和方法。本书正是基于这样的方法,用全新的角度、丰富的实例全面讲解了C++语言。全书共15章。第1章介绍了编程的基本知识。第2章到第9章介绍了C++的基本元素与基本语法。第10章到第15章介绍了C++的高级功能。          
【参考文献格式】(美)唐尼著. 像计算机科学家一样思考C++. 北京:人民邮电出版社, 2013.06.



内容简介

  《像计算机科学家一样思考C++》作者基于自己在美国各所大学和学院讲授计算机程序设计课程的经验,开创了“像计算机科学家一样思考(How to Think Like a Computer Scientist)”的教学理念和方法。《像计算机科学家一样思考C++》正是基于这样的方法,用全新的角度、丰富的实例全面讲解了C++语言。
  全书共15章。第1章介绍了编程的基本知识,即什么是编程以及如何编程。第2章到第9章介绍了C++的基本元素与基本语法,包括变量、类型、函数、迭代、字符串、结构体等等;第10章到第15章介绍了C++的高级功能,包括Vectors、成员函数、类和不变式、文件输入输出等。
  《像计算机科学家一样思考C++》适合C++的初学者和初级程序员阅读,也可以作为相关专业或培训的教程使用。通过学习《像计算机科学家一样思考C++》,读者不仅可以在C++方面达到初窥门径的效果,同时对计算机编程这门技艺也会有一个全面而科学的认识。

作者简介

  作者简介
  Allen B. Downey 是美国Olin工程学院的计算机科学副教授。他曾经在Wellesley College、Colby College和U.C. Berkeley教授计算机科学课程。他基于自己教授计算机程序设计课程的经验,开创了“像计算机科学家一样思考”(How to Think
  Like a Computer Scientist)的教学理念和方法,并由此编写了几本程序设计语言的图书。
  译者简介
  黄鑫 毕业于西安交通大学。有多年软件开发经验,对设计大型分布式系统有独到的见解。对将更多的开源项目引入Windows平台有浓厚的兴趣。目前致力于推广持续交付这一实践。
  夏思雨 毕业于华中科技大学和北京邮电大学。现就职于ThoughtWorks(西安)有限公司,从事软件开发。

目录

版权信息
第1章 编程方式
1.1 什么是编程语言
1.2 什么是程序
1.3 什么是调试
1.4 形式语言和自然语言
1.5 第一个程序
1.6 术语
第2章 变量和类型
2.1 输出更多
2.2 值
2.3 变量
2.4 赋值
2.5 输出变量
2.6 关键字
2.7 运算符
2.8 计算顺序
2.9 字符类型的运算符
2.10 组合
2.11 术语
第3章 函数
3.1 浮点数
3.2 从double转换为int
3.3 数学函数
3.4 复合表达式
3.5 添加新的函数
3.6 定义和用法
3.7 多函数程序
3.8 形参和实参
3.9 形参和局部变量
3.10 多参数函数
3.11 带返回值的函数
3.12 术语
第4章 条件和递归
4.1 模运算符
4.2 条件执行
4.3 选择执行
4.4 链式条件
4.5 嵌套条件
4.6 return语句
4.7 递归
4.8 无限递归
4.9 递归函数的调用栈图
4.10 术语
第5章 带返回值的函数
5.1 返回值
5.2 程序开发
5.3 复合用法
5.4 重载
5.5 布尔值
5.6 布尔型变量
5.7 逻辑操作符
5.8 布尔函数
5.9 main函数返回值
5.10 多重递归
5.11 信心的跳跃
5.12 更多的例子
5.13 术语
第6章 迭代
6.1 多次赋值
6.2 迭代
6.3 while语句
6.4 表格
6.5 二维表
6.6 封装和广义化
6.7 函数
6.8 更多封装
6.9 局部变量
6.10 更多广义化
6.11 术语
第7章 字符串和其他
7.1 字符串容器
7.2 apstring变量
7.3 字符串中的字符
7.4 长度
7.5 遍历
7.6 运行时错误
7.7 find函数
7.8 自定义find函数
7.9 循环和计数
7.10 递增和递减操作符
7.11 字符串拼接
7.12 apstring的可变性
7.13 apstrings的可比较
7.14 字符分类
7.15 其他apstring函数
7.16 术语
第8章 结构体
8.1 复合值
8.2 Point对象
8.3 访问实例变量
8.4 操作结构体
8.5 将结构体作为参数
8.6 值传递
8.7 引用传递
8.8 矩形
8.9 返回结构体类型
8.10 将其他类型按引用传递
8.11 获取用户输入
8.12 术语
第9章 更多结构体
9.1 Time
9.2 printTime
9.3 对象函数
9.4 纯函数
9.5 const参数
9.6 修改器
9.7 填写函数
9.8 哪个最好
9.9 增量式开发VS规划
9.10 普遍化
9.11 算法
9.12 术语
第10章 vector
10.1 访问元素
10.2 复制vector
10.3 for循环
10.4 vector的长度
10.5 随机数
10.6 统计
10.7 随机数的vector
10.8 计数
10.9 检查其他值
10.10 直方图
10.11 单次遍历的解决方案
10.12 随机种子
10.13 术语
第11章 成员函数
11.1 对象和方法
11.2 print
11.3 隐式变量访问
11.4 另一个例子
11.5 第三个例子
11.6 更复杂的例子
11.7 结构体
11.8 初始化还是构造
11.9 最后一个例子
11.10 头文件
11.11 术语
第12章 包含对象的vector
12.1 复合形式
12.2 Card对象
12.3 printCard函数
12.4 equals函数
12.5 isGreater函数
12.6 包含Card对象的vector
12.7 printDeck函数
12.8 搜索
12.9 二分查找
12.10 vector和子 vector
12.11 术语
第13章 向量对象
13.1 枚举类型
13.2 switch语句
13.3 Deck
13.4 另一个构造函数
13.5 Deck成员函数
13.6 洗牌
13.7 排序
13.8 subdeck
13.9 洗牌和处理
13.10 合并排序
13.11 术语
第14章 类和不变式
14.1 私有数据和私有类
14.2 什么是类
14.3 复数
14.4 访问器函数
14.5 输出
14.6 支持复数运算的函数
14.7 支持复数运算的其他函数
14.8 不变式
14.9 先验条件
14.10 私有函数
14.11 术语
第15章 文件输入/输出和apmatrix
15.1 流
15.2 文件输入
15.3 文件输出
15.4 输入解析
15.5 数字解析
15.6 Set数据结构
15.7 apmatrix
15.8 距离矩阵
15.9 合适的距离矩阵
15.10 术语
附录A AP类的快速参考
收起全部↑

精彩书摘

  本书旨在教会你如何像计算机专家一样思考。我喜欢计算机专家的思考方式,因为他们综合了数学、工程和自然科学的最佳特性。计算机专家像数学家一样,运用形式语言来表达思想(尤其是计算指令);又像工程师一样进行设计,将组件装配到系统里并对可替换的部件进行评估权衡;还像自然科学家一样,观察复杂系统的行为,形成假设并通过实验来证明预测。
  解决问题是一个计算机专家应该具备的最重要的单一技能。该技能包括明确表述问题的能力,有创意地思考解决方案以及清楚准确地表述解决方案。人们后来发现,学习编程的过程是练习解决问题技巧的一个相当好的机会。这就是为什么本章叫做“编程方式”。
  同时,本书的另一目的是帮助你准备计算机科学AP考试。尽管我们可能并没有直接实现这一目标。比如,本书并没有很多类似AP考试题的练习。但从另一个角度说,如果你完全理解了本书中的概念和C++编程的细节,你就可以在考试中有一个良好的表现。
  你即将学习的编程语言是C++。自1998年起的AP考试都以C++为基础。在这之前,采用的是Pascal。C++和Pascal都是高级编程语言,你可能听说过的其他高级语言有Java、C和FORTRAN。
  你可能从“高级编程语言”这个名字中得知还有低级编程语言。低级编程语言一般指的是机器语言或者汇编语言。一般来说,计算机只能执行用低级语言编写的程序。因此,高级语言编写的程序需要先转换成低级语言再执行。高级语言的一个小缺点就是这一转换过程需要耗费一些时间。
  但是,高级语言具有巨大的优势。首先,用高级语言编程要容易得多,这意味着该程序的编程时间较短,简明易读,正确性较高。其次,高级语言具有可移植的优势。这意味着用高级语言编写的程序只要经过略微的修改就可以在不同的计算机操作系统上运行。而用低级语言编写的程序只能在某一种计算机系统上运行,若要在另一种系统上运行,则需要重新编写代码。
  鉴于这些优势,几乎所有的程序都是用高级语言编写。低级语言只应用在少数特殊场景中。
  有两种将高级语言翻译成低级语言的方式:解释或者编译。解释器就是一个读取高级程序并执行的程序。实际上,解释器逐行翻译程序,交替读取代码行及执行命令,如图1-1所示。
  编译器则会在执行命令前,一次性地将全部高级程序代码翻译成机器语言。通常可以将编译程序作为一个单独的步骤,稍后再执行编译后的代码。在这种情况下,高级程序称为源代码;编译后的程序称为目标代码或者可执行代码。
  以下面这种情况为例,假设你用C++编写程序。你可能选择一个文本编辑器来编写程序(文本编辑器就是一个简单的文字处理器)。当程序编写完成时,可以将它保存为 program.cpp。program 是你自己命名的文件名,后缀.cpp 则表示文件为 C++源代码。
  然后,根据编程环境,可以关闭文本编辑器,运行编译器。编译器会读取源代码,编译源代码并创建一个包含目标代码的新文件 program.o,或者可执行文件program.exe,如图1-2所示。
  下一个步骤就是运行程序,这一步需要程序的执行器。程序的执行器需要加载可运行程序(从硬盘复制到内存)并让计算机开始执行程序。
  尽管这一过程看起来有点复杂,但是好消息是在绝大多数的编程环境(有时称为开发环境)中,这些步骤已经能够自动执行。一般来说,只需要编写一段程序,输入一条命令就可以完成编译和运行过程。另一方面,了解程序执行过程中有哪些步骤在后台运行是很有用的,这样在出错的时候你可以很快发现问题所在。
  程序就是详细说明如何进行一次计算的一个指令序列。该计算可能是数学计算,比如,解方程组或者计算多项式的根;也可能是符号计算,比如,在文件中搜索和替换文本或者编译一个程序(够奇怪了)。
  不同编程语言中的指令(命令或者描述)看起来都不一样,但是每种语言都有一些基本的功能。
  输入:从键盘或者其他设备读取数据和文件。


3条评分盟币+60
ylcxl 盟币 +10 感谢分享 01-14
ylcxl 盟币 +25 - 01-14
ylcxl 盟币 +25 - 01-14
您好,谢谢阅读,把本文推荐给朋友或其它网站,每次被点击增加您在本站的积分[1宣传币]!
地址:

发帖
3634
盟币
5654
威望
35
魅力值
143
版主工龄
0
宣传币
0
从事行业
石油
(毕业)院校
中国地质大学
只看该作者 沙发  发表于: 01-10  粉丝: 55   好友:47
多谢分享,且看有什么新的角度哈
相互交流 共同进步
在线tigerliuqd

发帖
7516
盟币
123
威望
2
魅力值
135
版主工龄
0
宣传币
0
从事行业
材料
(毕业)院校
只看该作者 板凳  发表于: 01-11  粉丝: 203   好友:192
好资料  学习