《C++程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:王挺等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302098239
  • 页数:454 页
图书介绍:本书参照CC2001和CCC2002的要求,面向计算机专业本科教学的需要,系统地介绍C++程序设计语言的语法,语义和语用,使读者掌握结构化程序设计方法和面向对象程序设计方法。全书分为程序设计基础和面向对象程序设计两部分。

目录 1

第1章 计算机与程序设计 1

1.1 计算机系统概述 1

1.1.1 什么是计算机系统 1

1.1.2 计算机硬件 2

1.1.3 计算机软件 3

1.2 程序设计基本概念 4

1.2.1 问题求解过程 4

1.2.2 算法与程序 5

1.2.3 程序设计语言 8

1.3 程序设计方法 9

1.3.1 结构化程序设计 9

1.3.2 面向对象程序设计 10

1.4 C与C++ 11

1.4.1 C语言 11

1.5.1 C++编程的典型过程 13

1.5 C++编程简介 13

1.4.2 C++语言 13

1.5.2 一个简单的C++程序 14

1.6 程序设计风格 16

习题 18

第2章 数据类型、运算符与表达式 19

2.1 C++的字符集和关键字 19

2.1.1 字符集 19

2.1.2 标识符 20

2.1.3 关键字 20

2.2 基本数据类型 21

2.2.1 整型 21

2.2.2 浮点型数据 22

2.2.3 字符型数据 22

2.2.4 布尔类型 23

2.3 变量与常量 23

2.3.1 常量 23

2.3.2 变量 27

2.3.3 符号常量 28

2.4 类型转换 29

2.5 运算符和表达式 30

2.5.1 算术运算 31

2.5.2 关系运算 33

2.5.3 逻辑运算 33

2.5.4 位运算 34

2.5.5 逗号运算 36

2.5.6 赋值运算 37

2.5.7 特殊运算符 38

习题 38

第3章 输入和输出 40

3.1 C++的输入和输出 40

3.2 标准输入与输出函数 41

3.2.1 字符输入函数getchar 41

3.2.2 字符输出函数putchar 41

3.3.1 格式化输入函数scanf 42

3.3 格式化输入输出 42

3.3.2 格式化输出函数printf 44

3.3.3 格式化输入输出函数应用举例 47

3.4 用流进行输入输出 53

3.4.1 通过cout流输出数据 53

3.4.2 通过cin流输入数据 55

3.5 流操纵算子 56

3.5.1 设置整数基数的流操纵算子 56

3.5.2 设置浮点数精度的流操纵算子 57

3.5.3 设置域宽的流操纵算子 59

习题 60

第4章 控制结构 62

4.1 程序的基本控制结构 62

4.2 顺序结构 63

4.2.1 表达式语句 63

4.2.2 复合语句 64

4.3.1 if选择结构 65

4.3 选择结构 65

4.3.2 if-else选择结构 66

4.3.3 switch选择结构 72

4.4 循环结构 77

4.4.1 while循环语句 77

4.4.2 do-while循环语句 80

4.4.3 for循环语句 81

4.5 控制转移语句 85

4.5.1 break语句 86

4.5.2 continue语句 87

4.5.3 goto语句 89

4.5.4 return语句 90

4.6 结构化程序设计方法 90

4.6.1 结构化程序设计思想 90

4.6.2 结构化程序设计原则 93

4.6.3 结构化程序设计示例 94

4.6.4 再谈程序设计风格 99

习题 100

第5章 函数 104

5.1 模块化程序设计 104

5.2 预定义函数的使用 105

5.3 函数定义与函数原型 106

5.3.1 函数定义 106

5.3.2 函数原型 108

5.4 函数的调用 109

5.4.1 函数调用的概念 109

5.4.2 参数传递 112

5.4.3 默认参数 114

5.4.4 内联函数 115

5.5 函数重载 117

5.6 存储类别 118

5.6.1 变量的存储特性 119

5.6.2 自动变量 119

*5.6.4 外部变量 120

*5.6.3 寄存器变量 120

5.6.5 静态变量 121

5.7 作用域 123

5.8 递归函数 126

5.8.1 递归的概念 126

5.8.2 递归函数应用举例 128

5.9 预处理指令 132

5.9.1 #include指令 132

5.9.2 #define指令 133

*5.9.3 #if、#else、#endif、#ifdef、#ifndef指令 135

习题 135

第6章 数组 138

6.1 一维数组 139

6.1.1 一维数组的声明与初始化 139

6.1.2 数组的应用 140

6.1.3 数组作为函数参数 143

6.2.1 多维数组的定义与初始化 149

6.2 多维数组 149

6.2.2 应用示例 151

6.3 字符串 154

6.3.1 字符与字符串概念 154

6.3.2 字符串与字符数组 155

6.3.3 字符串的输入和输出 157

习题 158

第7章 指针 160

7.1 指针的定义 161

7.2 指针的运算 162

7.3 指针与数组 166

7.4 字符指针与字符数组 170

7.4.1 字符串函数 170

7.4.2 字符串函数的应用 176

7.5 指针与const限定符 179

7.5.1 基本概念 179

*7.5.2 用const限定指针 180

7.6 指针和引用 184

7.7.1 基本概念 185

7.7 动态内存分配 185

7.7.2 动态分配内存的应用 188

*7.8 函数指针 191

7.8.1 函数指针的定义 191

7.8.2 函数指针的使用 192

习题 194

第8章 结构、联合、枚举 197

8.1 结构 197

8.1.1 结构的定义 198

8.1.2 结构变量成员的引用 200

8.2 结构的使用 201

8.2.1 结构与函数 201

8.2.2 结构与数组 206

8.2.3 结构与指针 209

*8.2.4 位段 213

8.3 联合 215

8.3.1 联合和联合变量定义 216

8.3.2 联合的使用 217

8.4 枚举 219

8.4.1 枚举和枚举型变量的定义 219

8.4.2 枚举类型变量的赋值和使用 220

习题 221

第9章 链表 223

9.1 链表的基本概念 223

9.2 单向链表 224

9.2.1 单向链表的定义 224

9.2.2 单向链表的操作 225

*9.3 双向链表 235

9.3.1 双向链表的定义 235

9.3.2 双向链表的操作 236

习题 243

第10章 面向对象程序设计基本概念 245

10.1 面向对象语言和面向对象方法 245

10.2.1 类和对象 248

10.2 类、对象和消息 248

10.2.2 消息 250

10.3 面向对象程序设计的特点 251

10.4 面向对象程序的结构 253

习题 255

第11章 类与对象 257

11.1 数据抽象的概念 258

11.2 抽象数据类型 259

11.2.1 封装与信息隐藏 260

11.2.2 接口与实现的分离 260

11.2.3 用结构实现用户定义类型:栈 261

11.2.4 用类实现抽象数据类型:栈 265

11.3 类和对象的定义 270

11.3.1 数据成员 270

11.3.2 成员函数 272

11.3.3 访问控制 273

11.3.4 静态成员 274

11.3.5 对象的建立 278

11.4 构造函数 280

11.4.1 构造函数的作用 280

11.4.2 构造函数执行的时机 281

11.4.3 构造函数重载 281

11.4.4 默认构造函数 282

11.4.5 复制构造函数 284

11.5 析构函数 285

11.5.2 析构函数执行的时机 286

11.5.1 析构函数的作用 286

习题 288

第12章 类和对象的使用 290

12.1 类的复合 290

12.2 this指针 294

12.3 const特性 297

12.4 友元函数和友元类 302

12.4.1 友元函数 302

12.4.2 友元类 304

习题 305

第13章 运算符重载 307

13.1 运算符重载的概念 308

13.1.1 运算符重载的意义 308

13.1.2 运算符重载的限制 309

13.2 运算符成员函数与友元函数 310

13.3 单目运算符重载 311

13.4 重载流插入和流提取运算符 316

13.5 双目运算符重载 319

13.6 赋值运算符重载 322

*13.7 类型之间的转换 325

习题 334

第14章 继承 337

14.1 继承和派生的概念 338

14.2.1 派生类和基类 339

14.2 继承的定义 339

14.2.2 继承的方式 340

14.2.3 类的层次 341

14.2.4 在派生类中重定义基类的函数 342

14.2.5 派生类和基类的转换 347

14.3 类指针 347

14.4 继承中的构造函数和析构函数 352

*14.5 多重继承 356

14.6.1 复合与继承 361

14.6 软件渐增式开发 361

14.6.2 示例 362

习题 372

第15章 多态性 374

15.1 多态性的概念 374

15.1.1 静态绑定和动态绑定 375

15.1.2 多态性的意义 375

15.2 虚函数 376

15.3.1 纯虚函数 380

15.3 抽象基类和纯虚函数 380

15.3.2 抽象类和具体类 381

*15.4 虚析构函数 385

15.5 软件渐增式开发 390

习题 397

第16章 文件和流 399

16.1 基本概念 399

16.2 通过FILE结构进行文件操作 401

16.2.1 打开、建立和关闭文件 401

16.2.2 写文件 403

16.2.3 读文件 406

16.3 通过文件流进行文件操作 413

16.3.1 打开、建立文件 413

16.3.2 写文件 415

16.3.3 读文件 416

习题 422

17.1 异常处理的意义 424

第17章 异常 424

17.2 异常处理基础 425

17.3 异常的抛出和传播 428

17.4 异常的捕获和处理 432

习题 435

第18章 模板 437

18.1 类属机制 437

18.2.1 函数模板的定义 438

18.2 函数模板 438

18.2.2 使用函数模板 440

18.3 类模板 444

18.3.1 类模板的定义 445

18.3.2 使用类模板 446

习题 448

附录 450

附录A C++运算符的优先级和结合性 450

附录B ASCII字符集 452

参考文献 454