《C++程序设计教程 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:皮德常编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111454762
  • 页数:347 页
图书介绍:全书以“程序设计”为主线,从材料取舍、内容表达方式、实例选取到习题和课程设计配置都以读者掌握“程序设计”的基本概念、方法和技巧为重点,并融入了作者多年的C++教学经验和软件工程实践经验,涵盖了“C++程序设计”必要的基础知识,系统地介绍了C++程序设计的基本概念、方法和技术。

第1章 C+程序设计基础 1

1.1为什么要学习C++程序设计 1

1.2简单的C++程序举例 2

1.3注释方法 3

1.4编程风格 3

1.5 C++程序的词法单位 3

1.5.1 C++程序中的字符 4

1.5.2标识符 4

1.5.3关键字 4

1.6 C++的基本数据类型 5

1.7变量与常量 6

1.7.1变量 6

1.7.2文字常量 7

1.7.3符号常量 8

1.7.4常变量 9

1.8运算符和表达式 9

1.8.1算术运算符和算术表达式 9

1.8.2初识运算符的优先级和结合性 9

1.8.3赋值运算符和赋值表达式 10

1.8.4自增、自减运算 11

1.8.5关系运算符和关系表达式 11

1.8.6逻辑运算符和逻辑表达式 12

1.8.7位运算符及其表达式 13

1.8.8逗号运算符与逗号表达式 15

1.8.9 sizeof运算符 15

1.8.10 C+++的运算符优先级和结合性 16

1.9语句 16

1.10类型转换 17

1.10.1赋值时的类型转换 17

1.10.2混合运算时的类型转换 18

1.10.3强制类型转换 19

1.11简单的输出和输入方法 19

1.11.1 cout对象和cin对象 19

1.11.2格式化输出 22

1.11.3采用函数成员实现格式化输出 24

1.11.4对函数成员的初步讨论 26

1.11.5指定输入域宽 26

1.11.6读取一行 27

1.11.7读取一个字符 27

1.11.8读取字符时易出错的地方 28

1.12枚举类型 29

1.12.1枚举类型的定义 29

1.12.2枚举类型的变量 29

1.12.3枚举类型的应用 30

思考与练习 31

第2章 C++的流程控制 32

2.1算法的基本概念和表示方法 32

2.1.1算法的基本概念 32

2.1.2算法的表示 32

2.1.3算法的三种基本结构 33

2.2选择结构程序设计 34

2.2.1基本的if语句 34

2.2.2嵌套的if语句 36

2.2.3条件运算符 38

2.2.4 switch语句 39

2.3循环结构程序设计 41

2.3.1 while循环 41

2.3.2 do-while循环 42

2.3.3 for循环 42

2.3.4循环嵌套 44

2.3.5 break语句 45

2.3.6 continue语句 46

2.3.7应该少用的goto语句 47

2.4程序设计应用举例 47

思考与练习 51

第3章 函数 54

3.1函数的定义和调用 54

3.1.1概述 54

3.1.2定义函数 54

3.1.3调用函数 55

3.2函数的声明 57

3.3函数的参数传递和返回值 58

3.3.1函数参数的传递方式 58

3.3.2函数的返回值 59

3.4局部变量和全局变量 61

3.4.1内存存储区的布局 61

3.4.2局部变量 62

3.4.3全局变量 62

3.4.4局部变量与栈 63

3.5变量的存储类别 64

3.5.1 auto修饰的变量 64

3.5.2 register修饰的变量 65

3.5.3 static修饰的变量 65

3.5.4 extern修饰的变量 66

3.6默认参数 68

3.7引用做参数 70

3.8函数重载 71

3.9函数模板 74

3.9.1从函数重载到函数模板 74

3.9.2定义函数模板的方法 77

3.9.3函数模板重载 77

3.10内联函数 78

3.11函数的递归调用 79

3.12函数的调试方法 84

3.13编译预处理 85

3.13.1宏定义 85

3.13.2文件包含 87

3.13.3条件编译 87

思考与练习 89

第4章 数组 92

4.1一维数组 92

4.1.1一维数组的定义和应用 92

4.1.2引用一维数组元素 93

4.1.3数组无越界检查 93

4.1.4数组初始化 93

4.2多维数组 95

4.2.1二维数组的定义 95

4.2.2二维数组的初始化 95

4.2.3引用二维数组元素 96

4.3数组做函数参数 97

4.3.1数组元素做函数参数 97

4.3.2数组名做函数参数 98

4.4常用算法举例 99

4.5字符数组与字符串 110

4.5.1字符数组的定义 110

4.5.2字符数组的初始化 111

4.5.3字符串 111

4.5.4字符数组的输入和输出 112

4.6处理字符和字符串 113

4.6.1处理字符的宏 113

4.6.2处理C风格字符串的函数 114

4.6.3自定义字符串处理函数 117

4.7标准C++的string类 119

4.7.1如何使用string类型 119

4.7.2 string对象的比较 120

4.7.3 string对象的初始化 120

4.7.4 string的函数成员 121

4.7.5 string对象应用举例 122

思考与练习 123

第5章 指针 125

5.1指针的概念 125

5.2指针变量 125

5.2.1定义指针变量 125

5.2.2运算符&和* 126

5.2.3引用指针变量 127

5.3指针与数组 129

5.3.1指向数组元素的指针 129

5.3.2指针的运算 130

5.3.3二维数组与指针 132

5.4指针与函数 136

5.4.1基本类型的变量做函数形参 136

5.4.2引用做函数形参 137

5.4.3指针变量做函数形参 138

5.4.4返回指针的函数 140

5.4.5指向函数的指针 142

5.5指针数组与指向指针的指针 143

5.5.1指针数组 143

5.5.2 main函数的参数 146

5.5.3指向指针的指针 146

5.5.4再次讨论main函数的参数 147

5.6内存的动态分配和释放 148

5.7 void和const修饰指针变量 151

5.7.1 void修饰指针 151

5.7.2 const修饰指针 152

5.8对容易混淆概念的总结 153

思考与练习 155

第6章 结构体与链表 158

6.1抽象数据类型 158

6.2结构体的定义及应用 158

6.2.1定义结构体类型 158

6.2.2定义结构体类型的变量 159

6.2.3初始化结构体类型的变量 161

6.2.4结构体类型变量及其成员的引用 161

6.2.5结构体数组与指针 164

6.3用typedef定义类型 166

6.4单向链表 167

6.4.1链表的概念 167

6.4.2带头结点的单向链表常用算法 169

思考与练习 174

第7章 文件操作 175

7.1文件的基本概念 175

7.1.1文件命名的原则 175

7.1.2使用文件的基本过程 175

7.1.3文件流类型 175

7.2打开文件和关闭文件 176

7.2.1打开文件 176

7.2.2文件的打开模式 177

7.2.3定义流对象时打开文件 178

7.2.4测试文件打开是否成功 178

7.2.5关闭文件 179

7.3采用流操作符读写文件 179

7.3.1采用“<<”操作符写文件 179

7.3.2格式化输出在写文件中的应用 181

7.3.3采用“>>”操作符从文件读数据 182

7.3.4检测文件结束 183

7.4流对象做参数 184

7.5出错检测 186

7.6采用函数成员读/写文件 187

7.6.1采用“>>”操作符读文件的缺陷 188

7.6.2采用函数getline读文件 188

7.6.3采用函数get读文件 190

7.6.4采用函数put写文件 191

7.7多文件操作 191

7.8二进制文件 193

7.8.1二进制文件的操作 193

7.8.2读/写结构体记录 194

7.9随机访问文件 197

7.9.1顺序访问文件的缺陷 197

7.9.2定位函数seekp和seekg 197

7.9.3返回位置函数tellp和tellg 200

7.10输入/输出二进制文件综合举例 201

思考与练习 204

第8章 类的基础部分 206

8.1面向过程程序设计与面向对象程序设计的区别 206

8.1.1面向过程程序设计的缺陷 206

8.1.2面向对象程序设计的基本思想 206

8.2类的基本概念 208

8.3定义函数成员 210

8.4定义对象 211

8.4.1访问对象的成员 211

8.4.2指向对象的指针 211

8.4.3引入私有成员的原因 213

8.5类的多文件组织 213

8.6私有函数成员的作用 215

8.7内联函数 216

8.8构造函数和析构函数 217

8.8.1构造函数 218

8.8.2析构函数 220

8.8.3带参构造函数 221

8.8.4构造函数应用举例——输入有效的对象 223

8.8.5重载构造函数 225

8.8.6默认构造函数的表现形式 226

8.9对象数组 227

8.10类的应用举例 230

8.11抽象数组类型 234

8.11.1创建抽象数组类型 234

8.11.2扩充抽象数组类型 236

思考与练习 240

第9章 类的高级部分 241

9.1静态成员 241

9.1.1静态数据成员 241

9.1.2静态函数成员 244

9.2友元函数 246

9.2.1外部函数作为类的友元 246

9.2.2类的成员函数作为另外一个类的友元 247

9.2.3一个类作为另外一个类的友元 250

9.3对象赋值问题 251

9.4拷贝构造函数 252

9.4.1默认的拷贝构造函数 254

9.4.2调用拷贝构造函数的情况 254

9.5运算符重载 257

9.5.1重载赋值运算符 257

9.5.2 this指针 259

9.5.3重载双目算术运算符 262

9.5.4重载单目算术运算符 264

9.5.5重载关系运算符 265

9.5.6重载流操作符“<<”和“>>” 265

9.5.7重载类型转换运算符 267

9.5.8重载操作符“[]” 271

9.5.9重载运算符时要注意的问题 276

9.5.10运算符重载综合举例——自定义string类 276

9.6对象组合 283

思考与练习 284

第10章 继承、多态和虚函数 286

10.1继承 286

10.2保护成员和类的访问 290

10.3构造函数和析构函数 293

10.3.1默认构造函数和析构函数的调用 293

10.3.2向基类的构造函数传参数 294

10.3.3初始化列表的作用 296

10.4覆盖基类的函数成员 297

10.5虚函数 300

10.6纯虚函数和抽象类 303

10.6.1纯虚函数 303

10.6.2抽象类 303

10.6.3指向基类的指针 306

10.7多重继承 307

10.8多继承 308

10.9类模板 311

10.9.1定义类模板的方法 311

10.9.2定义类模板的对象 313

10.9.3类模板与继承 315

思考与练习 317

第11章 异常处理 320

11.1异常 320

11.1.1抛出异常 320

11.1.2处理异常 321

11.2基于对象的异常处理 322

11.3捕捉多种类型的异常 324

11.4通过异常对象获取异常信息 326

11.5再次抛出异常 327

思考与练习 328

第12章 数据库程序设计 329

12.1数据库简介 329

12.2 SQL语句 329

12.2.1定义表 330

12.2.2查询 330

12.2.3插入 330

12.2.4删除 330

12.2.5修改 331

12.3数据库连接 331

12.3.1 ODBC简介 331

12.3.2 ODBC驱动程序 331

12.3.3创建数据源 331

12.4数据库编程中的基本操作 333

12.4.1数据库编程的基本过程 333

12.4.2数据库查询 333

12.4.3插入记录 334

12.4.4修改记录 335

12.4.5删除记录 336

12.5数据库编程综合举例 336

思考与练习 342

课程设计 343

参考文献 347