《现代C++程序设计 原书第2版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)BarbaraJohnston著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:9787111242123
  • 页数:455 页
图书介绍:本书采用生动轻松的语言,深入阐述了C++语言和面向对象程序设计技术。书中设计了超过115个完整的经过教学测试的代码示例,不仅分析了这些示例的代码片段,而且还解释了如何把它们组成一个完整的程序。此外,各章后面都提供了大量练习,有助于加强读者对相关内容的理解。

第1章 C++概述与软件开发 1

1.1什么是C语言和C++ 3

C和C++历史回顾 3

C/C++是一门编译语言 4

为什么许多程序员都选择C++ 7

1.2什么是面向对象 7

C++程序并不一定是面向对象的 8

一个简单的面向对象程序示例 8

面向对象的软件更有优势 8

1.3结构化设计与面向对象设计 9

ATM——结构化设计 9

采用面向对象方法的ATM——究竟是谁的任务 9

汽车维护——结构化设计 10

采用面向对象方法的汽车维护——究竟是谁的任务 12

1.4软件开发技术概述 13

1.5问题发现与解决 14

复习题 15

第2章 C++的入门知识 17

2.1编程基础 17

算法设计 18

正确的软件开发步骤 19

2.2专业术语及工程创建 20

2.3 C++程序的一般格式 21

“Hello World!”程序 21

“How’s the Weather?”程序 24

2.4程序的数据及数据类型 29

C++的数据类型 30

容器=数据类型,标签=变量名 31

数据类型修饰符 32

问题分析:整型数据究竟有多大 32

2.5 C++中的变量声明 33

C++的命名规则 33

在哪里声明变量 34

2.6 C++中的运算符 34

计算路程的程序 35

从键盘输入程序所需数据 36

赋值运算符 38

运算符的优先级 38

数据类型及其存储的值 39

算术运算符 42

自增运算符和自减运算符 48

复合赋值运算符 48

2.7 #define、const和数据类型转换 49

#define预处理指令 49

const修饰符 50

const比#define好吗 51

数据类型转换 51

2.8关于键盘输入和屏幕输出的更多内容 53

转义序列 53

ios格式标记 54

流的IO控制符 56

2.9开始使用类和对象、C++string类 57

2.10练习 60

复习题 66

第3章 控制语句和循环 72

3.1关系运算符和逻辑运算符 72

3.2 if语句 74

if-else语句 76

问题分析:在if语句中使用大括号 78

if-else if-else语句 78

低效的编程方法 80

if-else程序示例 81

嵌套if-else语句 82

条件运算符“?” 84

3.3 switch语句 85

3.4循环 88

括号的用法 89

无限循环 89

3.5 for循环 89

不要改变循环索引 91

for循环示例 91

3.6 while循环 93

3.7 do while循环 96

3.8跳转语句 97

break语句 98

continue语句 98

3.9问题发现与解决 99

五个常见错误 99

调试程序 102

3.10 C++类与vector类 103

3.11总结 105

3.12练习 107

复习题 122

第4章 函数一:基础 130

4.1 C++中的函数 130

只由一个main函数构成的程序 130

包含多个函数的程序 131

函数是个好东西 133

三个重要的问题 133

4.2函数:基本格式 133

4.3函数的编写要求 135

你想住在C++旅馆中吗 136

函数为先 139

函数声明或函数原型 139

函数定义、函数标题行与 140

函数体 140

函数调用 142

传值调用 142

问题分析:未声明的标识符 145

4.4重载函数 146

4.5具有默认输入参数列表的函数 148

4.6局部变量、全局变量和静态变量 150

局部变量 150

块范围 150

全局变量 151

危险的全局变量 152

问题分析:全局变量y0、y1与cmath 153

静态变量 154

4.7 C++stringstream类 155

4.8总结 157

4.9练习 159

复习题 173

第5章 函数二:变量地址、指针以及引用 179

5.1数据变量和内存 179

sizeof运算符 180

预留内存 180

计算机内存和十六进制 181

5.2取地址运算符& 182

5.3指针 184

5.4函数、指针以及间接运算符 186

解决思路 186

指针和函数 187

有效处理大型数据 189

5.5函数和引用 190

复习:两种机制 192

为什么要强调指针的重要性 194

5.6 queue类 194

5.7总结 197

5.8练习 200

复习题 210

第6章 数组 214

6.1使用单个数据变量 214

6.2数组基础 215

数组的索引值从0开始 216

使用for循环和数组来实现的电话账单程序 216

数组的声明和初始化 218

数组越界==严重的问题 220

vector与数组的比较 222

6.3数组和函数 224

每个数组都有一个指针 224

数组指针 224

向函数传递数组:最开始的引用调用 225

利用数组和函数生成随机数并进行排序 227

6.4 C字符串,也称为字符数组 230

字符数组的初始化 230

null字符 231

C字符串的输入 232

C++中提供的字符数组函数 236

6.5多维数组 238

二维数组的初始化 238

嵌套的for循环和二维数组 239

利用二维数组来实现Bingo游戏 240

6.6多维数组和函数 242

改进的Bingo卡片程序 243

白雪公主:利用二维数组来存储姓名 245

6.7利用数据文件对数组赋值 246

6.8总结 252

6.9练习 253

复习题 264

第7章 类和对象 271

7.1我们所了解的类和对象 271

7.2编写自己的类 272

入门实例:自定义日期类 272

第一个C++类:Date类 274

揭开类的生命之谜 281

set和get函数的作用与VolumeCalc类 288

PICalculator类 291

7.3作为类成员的对象 294

7.4类的析构函数 299

7.5对象数组 301

7.6重载运算符与对象 305

7.7指针、引用和类 310

指针和引用实例 310

处理日期和时间的程序实例 312

7.8总结 314

7.9练习 317

复习题 331

第8章 继承和虚函数 342

8.1为什么继承如此重要 342

IceCreamDialog实例 342

Counter类实例 343

8.2继承基础 345

Counter和DeluxeCounter实例 345

保护成员 347

员工、老板和CEO 350

8.3访问控制符的规范和多继承 354

8.4继承、构造和析构 356

构造函数和析构函数回顾 356

基类和派生类的默认构造函数——没有参数 356

在重载的构造函数中使用参数 356

基类和派生类的析构函数 356

医生也是人 356

关于派生类和基类构造函数的规则 360

8.5多态和虚函数 361

多态——同一个接口,不同的行为 361

什么是虚函数 362

虚函数的作用 364

8.6总结 368

8.7练习 369

复习题 382

附录A 学习使用Visual C++ 2005

Express Edition 388

附录B C++关键字表 398

附录C C++运算符 407

附录D ASCII码 408

附录E 位、字节、内存和十六进制表示 413

附录F 文件输入/输出 417

附录G 部分C++类 428

附录H 多文件程序 432

附录I Microsoft Visual C++ 2005Express Edition的调试器 441

术语表 449