《C++程序设计 思想与方法》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:翁惠玉编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2008
  • ISBN:9787115183095
  • 页数:304 页
图书介绍:本书以C/C++为语言环境,重点讲授程序设计的思想和方法,涉及过程化程序设计和面向对象程序设计。本书分为两大部分:第一部分主要介绍一些基本的程序设计思想、概念、技术、良好的程序设计风格以及过程化程序设计,包括数据类型、控制结构、数组、指针、数据封装、过程封装以及各种常用的算法,第二部分重点介绍面向对象的思想,包括类的设计与使用、运算符的重载、继承、多态性、输入/输出、异常处理、容器和迭代器等。本书旨在使读者通过学习,并经过一定的训练和实践,能够掌握程序设计的方法和过程,并具备良好的程序设计风格。本书可作为各大专院校计算机专业程序设计课程的教材,也可供从事计算机软件开发的科研人员作为参考资料。

第1章 绪论 1

1.1计算机硬件 1

1.2计算机软件 2

1.3算法与程序设计 3

1.4程序的编译和调试 3

小结 5

习题 5

第2章 通过例子学习 6

2.1第一个程序:输出Hello world 6

2.1.1注释 6

2.1.2编译预处理 7

2.1.3主程序 8

2.1.4名字空间 9

2.2程序示例:计算圆的面积和周长 9

2.3变量定义 11

2.4数据类型 12

2.4.1整型 12

24.2实型 14

2.4.3字符型 15

2.4.4布尔型 19

2.4.5枚举类型 19

2.4.6用typedef重新命名类型名 21

2.4.7定义新的类型 21

2.4.8变量赋初值 21

2.4.9用sizeof了解占用的内存量 22

2.5符号常量 22

2.6算术运算 22

2.6.1主要的算术运算符 23

2.6.2各种类型的数值间的混合运算 23

2.6.3整数除法和取模运算符 23

2.6.4优先级 24

2.6.5数学函数库 24

2.7赋值运算 25

2.7.1赋值运算符 25

2.7.2赋值时的自动类型转换 25

2.7.3赋值的嵌套 26

2.7.4多重赋值 26

2.7.5复合赋值运算 27

2.8自增和自减运算符 28

2.9强制类型转换 29

2.10数据的输入/输出 29

2.10.1数据的输入 29

2.10.2数据的输出 30

2.11构思一个程序 31

2.11.1程序设计风格 31

2.11.2设计将来的修改 32

小结 32

习题 32

第3章 逻辑思维及分支程序设计 35

3.1关系运算 35

3.1.1关系运算符 35

3.1.2关系表达式 35

3.2逻辑运算 36

3.3 i f语句 39

3.3.1 if语句的形式 39

3.3.2 if语句的嵌套 40

3.3.3 if语句的应用 40

3.3.4条件表达式 42

3.4 switch语句及其应用 43

小结 48

习题 49

第4章 循环控制 50

4.1 for循环 50

4.1.1重复n次操作 50

4.1.2 for语句的进一步讨论 52

4.1.3 for循环的嵌套 53

4.2 while循环 53

4.3 do-while循环 57

4.4循环的中途退出 57

4.5枚举法 58

4.6贪婪法 60

小结 62

习题 62

第5章 批量数据处理——数组 64

5.1一维数组 64

5.1.1一维数组的定义 64

5.1.2数组元素的引用 64

5.1.3一维数组的初始化 65

5.1.4一维数组在内存中的表示 65

5.1.5一维数组的应用 66

5.2查找和排序 67

5.2.1查找 67

5.2.2排序 72

5.3二维数组 75

5.3.1二维数组的定义 75

5.3.2二维数组的初始化 75

5.3.3二维数组在内存中的表示 76

5.3.4二维数组的应用 76

5.4字符串 79

5.4.1字符串的存储及初始化 79

5.4.2字符串的输入/输出 80

5.4.3字符串处理函数 80

5.4.4字符串的应用 81

小结 82

习题 82

第6章 过程封装——函数 84

6.1自己编写一个函数 84

6.1.1 return语句 85

6.1.2函数示例 85

6.2函数的使用 87

6.2.1函数原型的声明 87

6.2.2函数的调用 88

6.2.3将函数与主程序放在一起 89

6.2.4函数调用过程 90

6.3数组作为函数的参数 92

6.4带默认值的函数 95

6.5内联函数 96

6.6重载函数 97

6.7函数模板 99

6.8变量的作用域 100

6.9变量的存储类别 101

6.9.1自动变量 102

6.9.2静态变量 102

6.9.3寄存器变量 103

6.9.4外部变量 104

6.10递归函数 106

6.10.1递归函数的基本概念 106

6.10.2递归函数的应用 108

6.11基于递归的算法 113

6.11.1回溯法 113

6.11.2分治法 116

6.11.3动态规划 119

小结 122

习题 122

第7章 间接访问——指针 124

7.1指针的概念 124

7.1.1指针变量的定义 125

7.1.2指针的基本操作 125

7.2指针与数组 128

7.2.1指针运算 129

7.2.2用指针访问数组 131

7.2.3数组名作为函数的参数 132

7.3指针与动态分配 133

7.3.1动态变量的创建 134

7.3.2动态变量的回收 134

7.3.3内存泄漏 135

7.3.4查找new操作的失误 135

7.4字符串再讨论 136

7.5指针与函数 137

7.5.1指针作为形式参数 137

7.5.2返回指针的函数 140

7.5.3引用与引用传递 141

7.5.4返回引用的函数 143

7.6指针数组与多级指针 144

7.6.1指针数组 144

7.6.2 main函数的参数 145

7.6.3多级指针 146

7.7多维数组和指向数组的指针 147

7.8指向函数的指针 148

小结 152

习题 152

第8章 数据封装——结构体 154

8.1记录的概念 154

8.2 C++语言中记录的使用 155

8.2.1结构体类型的定义 155

8.2.2结构体类型的变量的定义 156

8.2.3结构体变量的使用 157

8.2.4结构体数组 158

8.3结构体作为函数的参数 160

8.4链表 162

8.4.1链表的概念 162

8.4.2单链表的存储 163

8.4.3单链表的操作 164

小结 169

习题 169

第9章 模块化开发 171

9.1自顶向下分解 171

9.1.1顶层分解 172

9.1.2 prn_instruction的实现 172

9.1.3 play函数的实现 173

9.1.4 get_call_from_user的实现 173

9.2模块划分 174

9.3设计自己的库 180

小结 185

习题 185

第10章 创建功能更强的类型——类的定义与使用 187

10.1从过程化到面向对象 187

10.1.1抽象的过程 187

10.1.2面向对象程序设计的特点 188

10.1.3库和类 189

10.2类的定义 195

10.3对象的使用 198

10.3.1对象的定义 198

10.3.2对象的操作 199

10.3.3 this指针 201

10.3.4对象的构造与析构 201

10.4常量对象与常量成员函数 207

10.5常量数据成员 208

10.6静态数据成员与静态成员函数 208

10.6.1静态数据成员的定义 209

10.6.2静态成员函数 209

10.6.3静态常量成员 212

10.7友元 213

小结 215

习题 215

第11章 运算符重载 216

11.1什么是运算符重载 216

11.2运算符重载的方法 216

11.3几个特殊运算符的重载 219

11.3.1赋值运算符的重载 219

11.3.2下标运算符的重载 221

11.3.3+++和--运算符的重载 221

11.3.4重载函数的原型设计考虑 223

11.3.5输入/输出运算符的重载 224

11.4自定义类型转换函数 225

11.5运算符重载的应用 226

11.5.1完整的Rational类的定义和使用 226

11.5.2完整的IntArray类的定义和使用 228

小结 231

习题 231

第12章 组合与继承 232

12.1组合 232

12.2继承 234

12.2.1单继承 235

12.2.2基类成员在派生类中的访问特性 235

12.2.3派生类对象的构造、析构与赋值操作 237

12.2.4重定义基类的函数 241

12.2.5派生类作为基类 243

12.2.6将派生类对象隐式转换为基类对象 244

12.3多态性与虚函数 246

12.3.1多态性 246

12.3.2虚函数 246

12.3.3虚析构函数 249

12.4纯虚函数和抽象类 249

12.4.1纯虚函数 249

12.4.2抽象类 250

12.5多继承 250

12.5.1多继承的格式 250

12.5.2名字冲突 251

12.5.3虚基类 252

小结 252

习题 253

第13章 泛型机制——模板 254

13.1类模板的定义 254

13.2类模板的实例化 256

13.3模板的编译 256

13.4非类型参数和参数的默认值 257

13.5类模板的友元 258

13.5.1普通友元 258

13.5.2模板的特定实例的友元 258

13.5.3声明的依赖性 259

13.6类模板作为基类 262

小结 263

习题 263

第14章 输入/输出与文件 264

14.1流与标准库 264

14.2输入/输出缓冲 265

14.3基于控制台的输入/输出 266

14.3.1输出流 266

14.3.2输入流 268

14.3.3格式化的输入/输出 271

14.4基于文件的输入/输出 275

14.4.1文件的概念 275

14.4.2文件和流 275

14.4.3文件的顺序访问 278

14.4.4文件的随机处理 280

14.4.5用流式文件处理含有记录的文件 282

14.5基于字符串的输入/输出 287

小结 288

习题 288

第15章 异常处理 289

15.1传统的异常处理方法 289

15.2异常处理机制 289

15.2.1异常抛出 290

15.2.2异常捕获 291

15.3异常规格说明 293

小结 294

习题 295

第16章 容器和迭代器 296

16.1容器 296

16.2迭代器 296

16.3容器和迭代器的设计示例 296

16.3.1用数组实现的容器 297

16.3.2用链表实现的容器 299

小结 302

习题 302

附录 303

参考文献 304