#电子书截图

图灵程序设计丛书·C++程序设计:现代方法(图灵出品)截图

#电子书简介

F. Alexander Allain,知名云存储创业公司Dropbox软件工程师、资深C++程序员,在哈佛大学工程与应用科学学院有多年一线教学经验(重点围绕C、C++、Scheme讲授计算机科学基础课程)。另外,他还是知名编程网站Cprogramming.com的创建者与维护者,上面关于C和C++的教程帮助了全球数百万的程序员。

译者简介:
赵守彬,2011年毕业于河北理工大学网络工程专业,后从事Android平台游戏和应用开发,擅长C/C++、Java等,目前从事基于cocos2d-x的手游开发。

陈园军,毕业于南京大学计算机系,硕士学历,微博账号“NJU陈小坏”。主要从事嵌入式系统研究,有多年的C++开发经验,关注开源社区和云计算等领域,对新技术有强烈的探索欲。他常年混迹于字幕翻译论坛,常读书,闲书、技术皆可,不求甚解,只贪欢愉,最大的爱好非科幻莫属。

马兴旺,湖南大学毕业,中国计算机学会YOCSEF委员,证通电子股份有限公司高级工程师,从事支付安全工作。

【第一章:简介和环境搭建】
1.1什么是编程语言
如果想控制计算机,你需要一种可以和计算机对话的方法。不像猫或狗那样有一套自己的神秘语言,计算机的语言是人类创造的。计算机程序是一段文本,就像一本书或一篇文章,有着特定的结构。编程语言对人类来说易于理解,但与自然语言相比,它们的结构更严格,词汇量也更小。C++便是这些计算机语言中很流行的一个。
在你写完程序之后,计算机需要一种方法来运行它,就是解释所写的是什么,也就是执行程序。执行的过程取决于所使用的编程语言和开发环境,我们稍后会讲到如何执行程序。
目前有很多种编程语言,尽管每种语言都有自己的语法和关键字,但它们在很多方面是相通的,一旦学会一种,再学习其他的便会容易很多。
1.2C和C++之间的不同之处
C语言是为了开发Unix操作系统而诞生的,是一种低层且强大的语言,但缺少很多现代编程特性。C++是基于C语言的一个较新的语言,它增加了很多现代编程语言特性,比C更加易用。
C++包含了所有C语言的强大特性,同时提供了很多新功能,使其更容易编写复杂程序。
例如,C++可以非常方便地管理内存。它有很多的特性可以实现“面向对象编程”和“泛型编程”,我们之后会解释这些是什么意思。目前你只需要知道C++对程序员来说更加地简单,可以让他们无需考虑机器运行的细节,而是将注意力放在如何解决问题上。
如果你在学C还是学C++之间徘徊,我强烈建议学习C++。
1.3学习C++之前,是否需要先了解C
不需要。C++是C的超集,任何能用C做的事情,都可以用C++完成。如果了解C语言,你会很快适应C++的面向对象特性。如果不了解C,也不要紧,先学会C并不会有多少优势,其实你能很快掌握并运用C++的独有特性(比如更简单的输入和输出)。
1.4成为程序员,是否需要懂数学
如果每次有人问我这个问题我都收他5分钱的话,那我这笔财富要用计算器才能算清。很幸运,这答案是:不需要!大多数编程涉及的是设计和逻辑推理,而不是快速运算、线性代数或微积分。数学和编程之间的重叠部分,主要集中在逻辑推理和严密的思维部分。只有需要编写高级3D图形数控编程,或是写程序来进行统计分析时,你才需要真正的数学知识。
1.5术语
本书中我会不断定义新术语,不过会从一些非常基本的概念开始介绍。
1.5.1编程
编程指的是编写计算机能够理解和执行的指令,这些指令称为源代码。我们将在接下来的内容中初步接触一些源代码。
1.5.2可执行文件
编程的最终成果就是生成一个可执行文件。可执行文件即计算机能够运行的文件:如果使用Windows系统,这些文件即EXE文件。Microsoft Word便是一个可执行文件。有些程序会有额外的文件(图形文件、音乐文件等),但每个程序都必须有一个可执行文件。为了生成可执行文件,你需要一个将程序源代码转化为可执行文件的编译器。没有编译器,除了眼巴巴地看着源代码,你无法做任何事情。这实在是太无聊了,我们赶紧安装一个编译器吧。
1.6编辑和编译源文件
本章接下来的部分讲述如何搭建一个简单易用的编程环境。我推荐安装两个工具:一个编译器和一个编辑器。你已经知道编译器的存在是为了让程序可以工作。虽然之前没有提及编辑器,但它非常重要,编辑器可以让你按照正确的格式编辑源代码。
源代码必须以纯文本的形式编写。纯文本文件仅包含文字信息,不包含格式化信息。用Microsoft Word(或类似产品)创建的文件就不是纯文本文件,因为它包含字体、字号等格式化信息。在Word中打开文件时,尽管你看不到这些信息,但它们确实存在。而纯文本文件只有原始信息,可以使用接下来我们将要介绍的工具来创建和编辑。
编辑器还会提供两个很方便的功能:语法高亮和自动缩进。语法高亮给代码添加颜色,使你可以很容易地区分程序的不同元素。自动缩进可以自动对代码排版,使其更加易读。
如果你使用Windows或者Mac,我推荐更复杂的编辑器:包含了编辑器和编译器的集成开发环境(Integrated Development Environment,IDE)。如果你使用Linux,我推荐使用非常简单易用的编辑器nano。下文中,我将指导大家进行设置。
1.7关于示例源代码
本书包含大量示例源代码,所有源代码都可以供你自由使用;使用无任何限制,但不保证质量。本书附带的示例源代码(sample_code.zip )按章划分文件夹(例如,本章对应文件夹ch1)。本书中的每段源代码都有对应的相同名称的文件(非章名)。
1.8Windows
我们在Windows下安装的工具是Code::Blocks,一个免费的C++开发环境。
……

第一部分进入C++的世界

第1章简介和环境搭建

1.1 什么是编程语言

1.2C和C++之间的不同之处

1.3学习C++之前,是否需要先了解C

1.4成为程序员,是否需要懂数学

1.5术语

1.6编辑和编译源文件

1.7关于示例源代码

1.8Windows

1.9Macintosh

1.10Linux

第2章C++基础

2.1 C++简介

2.2 为程序添加注释

2.3 像程序员一样思考,创建可复用的代码

2.4 痛并快乐着的练习

2.5 问答题

2.6 实践题

第3章用户交互和变量

3.1 变量

3.2 变量的使用和滥用

3.3 字符串存储

3.4 基本类型的存储解析

3.5 问答题

3.6 实践题

第4章if语句

4.1 if的基础语法

4.2 表达式

4.3 else语句

4.4 else-if

4.5 字符串比较

4.6 逻辑运算符在条件语句上的有趣应用

4.7 问答题

4.8 实践题

第5章循环

5.1 while循环

5.2 for循环

5.3 do-while循环

5.4 控制循环

5.5 嵌套循环

5.6 选择合适的循环

5.7 问答题

5.8 实践题

第6章函数

6.1 函数语法

6.2 局部变量和全局变量

6.3 使函数对调用有效

6.4 把程序拆分成函数

6.5 命名和重载函数

6.6 函数概述

6.7 问答题

6.8 实践题

第7章如何解决问题

7.1 只需判断数被除时有无余数

7.2 效率和安全的简单说明

7.3 不知道算法的情况下的解决方案

7.4 实践题

第8章switch-case和枚举

8.1 比较switch-case和if-else

8.2 使用枚举创建简单类型

8.3 问答题

8.4 实践题

第9章随机

9.1 获得随机数

9.2 bug和随机数

9.3 问答题

9.4 实践题

第二部分数据处理

第10章数组

10.1 数组的基础语法

10.2 数组使用示例

10.3 使用数组

10.4 数组排序

10.5 问答题

10.6 实践题

第11章结构体

11.1 关联多个值

11.2 问答题

11.3 实践题

第12章指针简介

12.1 忘记之前对指针的认知

12.2 指针的概念以及关注指针的原因

12.3 内存的概念

12.4 指针的其他优点(和缺点)

12.5 问答题

12.6 实践题

第13章使用指针

13.1 指针的语法

13.2 指针的指向:变量的地址

13.3 未初始化指针与空指针

13.4 指针和函数

13.5 引用

13.6 问答题

13.7 实践题

第14章动态内存分配

14.1 获得更多的新内存

14.2 指针和数组

14.3 多维数组

14.4 指针运算

14.5 盘点指针

14.6 问答题

14.7 实践题

第15章数据结构简介与链表

15.1 指针和结构体

15.2 创建一个链表

15.3 遍历链表

15.4 盘点链表

15.5 问答题

15.6 实践题

第16章递归

16.1 如何看待递归

16.2 递归和数据结构

16.3 循环和递归

16.4 栈

16.5 盘点递归

16.6 问答题

16.7 实践题

第17章二叉树

17.1 在现实世界中使用二叉树

17.2 问答题

17.3 实践题

第18章标准模板库

18.1 vector,大小可变的数组

18.2 map

18.3 迭代器

18.4 盘点STL

18.5 进一步学习STL

18.6 问答题

18.7 实践题

第19章更多关于字符串的内容

19.1 读入字符串

19.2 字符串长度和访问单个元素

19.3 字符串搜索与子字符串

19.4 通过引用传递

19.5 问答题

19.6 实践题

第20章使用Code::Blocks进行调试

20.1 踏上调试之旅

20.2 设置断点

20.3 实践题

第三部分编写大规模程序

第21章将程序分解

21.1 理解C++的构建过程

21.2 如何把程序分开到不同的文件中

21.3 问答题

21.4 实践题

第22章程序设计方法介绍

22.1 冗余代码

22.2 假定数据是如何存储的

22.3 设计和注释

22.4 问答题

第23章隐藏结构化数据的表示

23.1 问答题

23.2 实践题

第24章类

24.1 隐藏数据的存储方式

24.2 声明一个类的实例

24.3 类的职责

24.4 小结

24.5 问答题

24.6 实践题

第25章类的生命周期

25.1 对象构造

25.2 解构对象

25.3 复制类

25.4 问答题

25.5 实践题

第26章继承和多态

26.1 C++中的继承

26.2 问答题

26.3 实践题

第27章命名空间

27.1 问答题

27.2 实践题

第28章文件I/O

28.1 文件I/O基础

28.2 文件格式

28.3 写文件

28.4 文件位置

28.5 接受命令行参数

28.6 二进制文件 I/O

28.7 问答题

28.8 实践题

第29章C++中的模板

29.1 模板函数

29.2 模板类

29.3 使用模板的一些小技巧

29.4 模板小结

29.5 问答题

29.6 实践题

第四部分其他

第30章使用iomanip格式化输出

30.1 处理空间问题

30.2 把你的iomanip知识汇总到一起

第31章异常和错误报告

第32章最后的话

索引


“作为一个多年来习惯于Fortran编程的C++编程新手,我认为本书内容简明扼要。读者只需从网上下载软件,然后即可按自己的节奏完成书中练习。”
“我对C有一定的了解,因此理所当然地会很容易看懂本书内容。但是,当我真正开始阅读它,才惊喜地发现,它让我对编程有了重新的认识,真正充分理解了C与C++编程。”
“我是一个IT培训师,之前针对C++为儿子买了3本书,而目前为止我认为本书是组织结构最好的一本学习用书。我有30多年学习C的经历。本书从常见的语言特性讲起,简单流畅地过渡到对象,并介绍了鲜见于其他同类图书的模板、文件I/O、格式化I/O和命令行参数等内容。”
“本书并非是内容全面的大部头著作,但其内容阐述真的很棒!……指针是语言中非常晦涩难懂的部分,也是我之前常常存有困惑的内容,而本书对指针的介绍堪称完美。……无论你之前是否具有编程经验,本书绝对对你大有帮助!”
——读者评论

《图灵程序设计丛书·C++程序设计:现代方法》不是一本百科全书式的C++教程,更不是一本写给有编程经验的人看的C++书。如果你想学C++,但没有太多编程经验,而且十分发愁去看那些厚得要命,大部分内容不知所云,更不知道何年何月才用得上的C++“砖头书”,别着急,就看这本吧!
《图灵程序设计丛书·C++程序设计:现代方法》篇幅适中,写得又简单通俗,涵盖了C++编程的所有重要概念。另外,我们得提一提本书作者AlexanderAllain,他是月访问量超百万的著名C\C++教程站Cprogramming。com的创建者,拥有在哈佛大学讲授C++编程的一线教学经验。本书就是他结合多年教学心得和大量读者反馈,为普通C++初学者登堂入室特意编写的一本全新教程,可以帮助你迅速成长为一名优秀的、受欢迎的C++程序员。
作者真正了解每一位C++编程学习者的需求,了解初学者起步阶段的困惑和纠结。因此,本书由浅入深、循序渐进、步步为营,讲述了编程过程的每一个环节,揭示了编程之路中可能遇到的各种“坑”。以下内容是本书特有的教学思想和方法的体现。
从编程所需的工具开始讲起,耐心教你怎么使用
清晰解释变量、循环、函数等最基本的编程概念
手把手示范怎么把头脑中的想法转换成C++代码
C++的指针不好理解,但本书会给你最清晰明白的解释
字符串、文件I/O、数字、引用……纷至沓来
C++中的类,以及类的设计
面向C++的特有编程模式
使用C++进行面向对象编程
数据结构和标准模板库(STL)
习题和75个课后练习巩固你对重要概念和知识点的理解

作者两度荣获哈佛大学Top Teaching Fellow
数百万月访问量C C++教程网站提供支持
体现C++编程的现代观点,有效解决实际问题


http://img10.360buyimg.com/bookDetail/jfs/t367/117/720953907/133932/5c289dc/5429ff8bNbed51ef6.jpg;http://img10.360buyimg.com/bookDetail/jfs/t412/182/711915008/160099/be53faff/5429ff8bNb946970e.jpg;http://img10.360buyimg.com/bookDetail/jfs/t388/143/720639437/150090/b3bef88a/5429ff8cN358b5eb5.jpg;http://img10.360buyimg.com/bookDetail/jfs/t319/189/944102900/103085/f24925ef/5429ff8cNff1e9f29.jpg;http://img10.360buyimg.com/bookDetail/jfs/t427/157/715651108/84591/eb63ad66/5429ff8cNd07793b0.jpg
  • 评论列表(0

留言评论