第1篇 C++基础篇 1
第1章 C++概述(教学视频:47分钟) 1
1.1 引言 1
1.1.1 C++的历史沿革 1
1.1.2 入门C++- 2
1.1.3 编程思想的转变 3
1.2 C++概述 4
1.2.1 C++的特征 5
1.2.2 C与C++的比较 5
1.2.3 C++的应用领域 6
1.3 C++源程序的组成 6
1.3.1 基本组成元素 7
1.3.2 标识符 8
1.3.3 保留字 8
1.3.4 符号 8
1.4 C++集成开发环境——DEV-C++ 9
1.4.1 选择C++编译器 9
1.4.2 安装DEV-C++ 10
1.4.3 DEV-C++IDE简介 11
1.5 第一个C++程序——Hello World 11
1.5.1 创建源程序 11
1.5.2 编译运行 13
1.6 小结 14
1.7 习题 14
第2章 变量与数据类型(教学视频:49分钟) 18
2.1 常量和变量 18
2.1.1 常量 18
2.1.2 变量 21
2.1.3 变量的定义及赋值 22
2.1.4 变量的应用示例 24
2.2 基本数据类型 25
2.2.1 基本数据类型概述 25
2.2.2 整型数据类型 26
2.2.3 浮点型数据类型 27
2.2.4 字符型数据类型 29
2.2.5 布尔型数据类型 30
2.3 变量的作用域 31
2.4 类型转换 32
2.4.1 隐式转换 32
2.4.2 显式转换 33
2.5 小结 34
2.6 习题 34
第3章 表达式与语句(教学视频:50分钟) 39
3.1 运算符 39
3.1.1 运算符概述 39
3.1.2 算术运算符 40
3.1.3 自增和自减运算符 42
3.1.4 赋值运算符 43
3.1.5 关系运算符 44
3.1.6 逻辑运算符 45
3.1.7 条件运算符 46
3.1.8 逗号运算符 47
3.1.9 位运算符 48
3.1.10 sizeof运算符 49
3.2 运算符的优先级和结合性 50
3.3 表达式 51
3.4 语句 53
3.4.1 空格的作用 53
3.4.2 语句块 54
3.4.3 赋值语句 55
3.4.4 空语句 56
3.5 小结 57
3.6 习题 57
第4章 流程控制结构之顺序结构(教学视频:42分钟) 63
4.1 程序流程图 63
4.2 表达式语句 64
4.3 格式化输入/输出 65
4.3.1 标准输入流cin 65
4.3.2 标准输出流cout 66
4.3.3 输出流cerr和clog 68
4.4 格式控制函数 69
4.5 格式控制符 71
4.5.1 控制不同进制的输出 72
4.5.2 控制输出宽度 72
4.5.3 控制输出精度 73
4.6 顺序结构综合应用 74
4.7 小结 75
4.8 习题 75
第5章 流程控制结构之选择结构(教学视频:56分钟) 80
5.1 条件 80
5.1.1 关系表达式条件 80
5.1.2 逻辑表达式条件 82
5.1.3 组合条件 83
5.2 if语句 84
5.2.1 if形式 84
5.2.2 if…else形式 85
5.2.3 if…else if…else形式 87
5.2.4 if…else语句嵌套 90
5.3 switch语句 92
5.3.1 switch语句的基本形式 92
5.3.2 应用示例 93
5.4 选择结构的嵌套 94
5.5 选择结构综合应用 96
5.6 小结 99
5.7 习题 99
第6章 流程控制结构之循环结构(教学视频:55分钟) 104
6.1 goto语句 104
6.2 while语句 106
6.2.1 while语句的基本形式 106
6.2.2 应用示例 107
6.2.3 注意事项 109
6.3 do…while语句 112
6.3.1 do…while语句的形式 112
6.3.2 应用示例 114
6.3.3 注意事项 115
6.4 for语句 116
6.4.1 for语句的形式 117
6.4.2 应用示例 118
6.4.3 注意事项 119
6.5 多重循环 120
6.6 转向语句 122
6.6.1 break语句 122
6.6.2 continue语句 124
6.6.3 return语句 124
6.7 循环结构综合应用 125
6.8 小结 128
6.9 习题 128
第7章 数组(教学视频:59分钟) 137
7.1 数组概述 137
7.1.1 数组的基本概念 137
7.1.2 一维数组 138
7.1.3 二维数组 138
7.2 数组的声明及初始化 139
7.2.1 声明一维数组 139
7.2.2 初始化一维数组 139
7.2.3 声明二维数组 141
7.2.4 初始化二维数组 141
7.3 引用数组元素 143
7.3.1 引用一维数组元素 143
7.3.2 引用二维数组元素 145
7.3.3 应用示例 146
7.4 字符串 147
7.4.1 字符数组 147
7.4.2 字符串 148
7.4.3 字符数组与字符串的区别 149
7.5 字符串处理函数 150
7.5.1 strcmp()函数——字符串比较 150
7.5.2 strcpy()函数——字符串复制 151
7.5.3 strcat()函数——字符串连接 152
7.5.4 strlen()函数——计算字符串长度 153
7.5.5 gets()和puts()函数——字符串输入输出 154
7.6 数组综合应用 155
7.7 小结 159
7.8 习题 159
第8章 函数(教学视频:50分钟) 166
8.1 函数概述 166
8.1.1 函数的基本概念 166
8.1.2 函数的分类 167
8.1.3 函数的组成 167
8.2 函数的声明和定义 168
8.2.1 声明函数 168
8.2.2 定义函数 170
8.2.3 头文件和实现文件的分离 170
8.3 函数参数传递 174
8.3.1 形参和实参 174
8.3.2 值传递 174
8.3.3 地址传递 176
8.4 函数的调用 177
8.4.1 函数调用过程 177
8.4.2 无参函数的调用 178
8.4.3 带参函数的调用 179
8.4.4 默认形参值的函数调用 181
8.4.5 嵌套调用 182
8.5 递归 184
8.5.1 直接递归 184
8.5.2 间接递归 185
8.6 main()函数 187
8.6.1 不带参数的main()函数 187
8.6.2 带参数的main()函数 188
8.7 内联函数 189
8.8 函数综合应用 191
8.9 小结 193
8.10 习题 193
第9章 函数的高级应用(教学视频:55分钟) 201
9.1 数组作为函数参数 201
9.1.1 传递一维数组参数 201
9.1.2 传递多维数组参数 202
9.2 查找的函数实现 204
9.2.1 顺序查找的函数实现 204
9.2.2 折半查找的函数实现 206
9.3 排序的函数实现 208
9.3.1 冒泡排序的函数实现 208
9.3.2 快速排序的函数实现 210
9.4 函数模板 211
9.4.1 引入函数模板 211
9.4.2 定义函数模板 212
9.4.3 实例化函数模板 213
9.4.4 应用示例 215
9.5 函数重载 216
9.5.1 函数重载概述 216
9.5.2 参数类型不同的函数重载 217
9.5.3 参数个数不同的函数重载 218
9.5.4 应用示例 220
9.6 函数高级应用 222
9.7 小结 223
9.8 习题 224
第10章 指针与引用(教学视频:65分钟) 230
10.1 指针概述 230
10.1.1 指针的基本概念 230
10.1.2 定义指针变量 231
10.1.3 初始化指针 232
10.2 指针的访问 233
10.2.1 指针的值 234
10.2.2 访问指针数据 235
10.2.3 应用示例 235
10.3 指针的算术运算 236
10.3.1 指针与整数的加减运算 237
10.3.2 指针加减1运算 238
10.3.3 指针的相减运算 239
10.3.4 应用示例 240
10.4 指针的关系运算 241
10.5 指向数组的指针 243
10.5.1 指针访问数组元素 243
10.5.2 指向一维数组 244
10.5.3 数组指针 246
10.5.4 指向多维数组 247
10.6 指向字符串的指针 248
10.6.1 定义字符串指针 248
10.6.2 应用示例 249
10.7 引用 251
10.7.1 引用的应用 251
10.7.2 引用与指针 252
10.8 指针数组 254
10.9 函数与指针 256
10.9.1 指针作为函数参数 256
10.9.2 指针函数 258
10.9.3 函数指针 259
10.10 动态内存分配 260
10.11 指向指针的指针 262
10.12 小结 263
10.13 习题 263
第11章 宏和预编译(教学视频:59分钟) 271
11.1 预处理器和编译器 271
11.2 预处理器的任务 272
11.2.1 包含文件 272
11.2.2 搜索头文件 272
11.2.3 定义宏 273
11.3 宏的作用 274
11.3.1 替代字面常量 274
11.3.2 替代运算符 275
11.3.3 声明已定义符号 276
11.3.4 预定义的宏 276
11.4 带参数的宏 277
11.4.1 定义带参数的宏 277
11.4.2 注意宏展开的结果 279
11.4.3 带参数的宏与函数的异同 279
11.4.4 特殊的宏符号 280
11.5 宏指令和预定义宏 280
11.5.1 宏指令和预定义宏 280
11.5.2 利用预定义的宏指令进行条件编译 281
11.5.3 文件包含命令和包含警卫 284
11.6 综合实例 286
11.7 小结 286
11.8 习题 286
第12章 复合数据类型(教学视频:59分钟) 291
12.1 定义结构体 291
12.1.1 结构体概述 291
12.1.2 定义结构体类型 292
12.1.3 声明结构体变量 292
12.2 结构体的应用 294
12.2.1 初始化结构体变量 294
12.2.2 引用结构体变量成员 295
12.2.3 结构体指针 297
12.2.4 结构体数组 298
12.3 联合 299
12.3.1 定义联合类型 299
12.3.2 声明联合变量 300
12.3.3 引用联合类型成员 301
12.4 枚举 302
12.4.1 定义枚举类型 302
12.4.2 声明枚举变量 304
12.4.3 引用枚举变量成员 305
12.5 用户自定义数据类型 306
12.6 复合数据类型综合应用 307
12.7 小结 309
12.8 习题 309
第2篇 面向对象编程篇 316
第13章 对象与类(教学视频:54分钟) 316
13.1 对象与类概述 316
13.1.1 对象 316
13.1.2 对象分类 316
13.1.3 类 317
13.2 面向对象开发与面向过程开发的比较 318
13.2.1 面向过程开发 318
13.2.2 面向对象开发 318
13.3 类的特征 319
13.3.1 封装 319
13.3.2 继承 319
13.3.3 多态 320
13.4 从结构到类 320
13.5 类 323
13.5.1 类的声明 323
13.5.2 类的访问控制 324
13.5.3 类的定义 325
13.6 构造函数 328
13.6.1 构造函数的概念 329
13.6.2 构造函数的声明和定义 329
13.6.3 构造函数的调用 331
13.6.4 不带参数的构造函数 332
13.6.5 带有默认参数的构造函数 333
13.6.6 构造函数的重载 334
13.7 拷贝构造函数 335
13.7.1 自定义拷贝构造函数 335
13.7.2 调用拷贝构造函数 337
13.7.3 默认拷贝构造函数 338
13.8 析构函数 339
13.9 友元 341
13.9.1 友元函数 341
13.9.2 友元成员 342
13.9.3 友元类 344
13.10 类的static成员 346
13.10.1 定义static成员 346
13.10.2 使用static成员 347
13.11 小结 350
13.12 习题 350
第14章 继承(教学视频:56分钟) 359
14.1 继承与派生 359
14.1.1 继承与派生概述 359
14.1.2 声明派生类 359
14.2 继承的访问控制 360
14.2.1 公有继承 361
14.2.2 私有继承 363
14.2.3 保护继承 364
14.3 派生类的构造函数和析构函数 368
14.3.1 执行顺序和构建原则 368
14.3.2 派生类构造函数的创建 369
14.3.3 派生类析构函数的构建 369
14.4 多重继承 371
14.4.1 二义性问题 371
14.4.2 多重继承 374
14.4.3 多重继承的构造函数和析构函数 376
14.5 虚基类 378
14.5.1 虚基类的引入 378
14.5.2 虚基类 380
14.5.3 虚基类的构造函数和初始化 381
14.6 小结 383
14.7 习题 383
第15章 多态(教学视频:53分钟) 393
15.1 多态 393
15.1.1 多态的含义 393
15.1.2 多态的作用 393
15.1.3 多态的引入 394
15.2 函数重载 396
15.3 虚函数 397
15.3.1 定义虚函数 397
15.3.2 多级继承和虚函数 399
15.4 纯虚函数与抽象类 401
15.4.1 纯虚函数 401
15.4.2 抽象类 403
15.5 小结 405
15.6 习题 405
第16章 运算符重载(教学视频:51分钟) 414
16.1 运算符重载简介 414
16.1.1 运算符重载的定义 414
16.1.2 运算符重载的特点 414
16.2 运算符重载形式 416
16.2.1 重载为类的成员函数 416
16.2.2 运算符重载为类的友元函数 419
16.2.3 运算符成员函数与友元运算符函数的比较 422
16.3 特殊运算符重载 422
16.3.1 “++”和“--”重载 422
16.3.2 赋值运算符“=”重载 424
16.3.3 下标运算符“[]”重载 426
16.4 类类型转换 427
16.5 小结 429
16.6 习题 429
第17章 输入/输出流(教学视频:46分钟) 437
17.1 输入/输出流的引入 437
17.1.1 C语言中输入/输出缺陷 437
17.1.2 输入/输出流简介 438
17.1.3 输入/输出流类层次 439
17.2 标准输入/输出流 440
17.2.1 标准输出流对象 440
17.2.2 标准输入流对象 443
17.3 输入/输出流成员函数 445
17.3.1 get()函数 445
17.3.2 getline()函数 446
17.3.3 put()函数 447
17.3.4 read()和write()函数 447
17.3.5 其他成员函数 448
17.4 输入/输出格式控制 448
17.4.1 用ios类的成员函数进行格式控制 449
17.4.2 使用格式控制符进行格式控制 451
17.5 用户自定义数据类型的输入/输出 455
17.5.1 重载输出运算符“<<” 455
17.5.2 重载输入运算符“>>” 457
17.6 综合实例 458
17.7 命名空间 460
17.7.1 命名空间概述 460
17.7.2 定义命名空间 460
17.7.3 使用命名空间 462
17.8 小结 465
17.9 习题 466
第18章 文件(教学视频:57分钟) 471
18.1 文件概述 471
18.1.1 操作文件的过程 471
18.1.2 处理文件流的类 473
18.2 文件的打开与关闭 476
18.2.1 打开文件 476
18.2.2 关闭文件 478
18.3 文件的顺序读写 479
18.3.1 读写文本文件 480
18.3.2 文本文件应用示例 481
18.3.3 读写二进制文件 483
18.4 文件的随机读写 487
18.5 综合实例 488
18.6 小结 493
18.7 习题 493
第19章 类模板(教学视频:44分钟) 499
19.1 什么是类模板 499
19.2 定义类模板 500
19.2.1 语法 500
19.2.2 非类型参数 502
19.2.3 模板参数的缺省实参 503
19.3 生成类模板的实例 503
19.3.1 类型参数的模板实例化 503
19.3.2 非类型参数的模板实例化 504
19.3.3 类模板范例 504
19.4 类模板的静态成员 506
19.5 类模板的友元 509
19.6 类模板的特化 511
19.6.1 类模板的全特化 511
19.6.2 偏特化 512
19.6.3 类模板的匹配规则 513
19.7 小结 515
19.8 习题 515
第20章 标准模板库STL(教学视频:45分钟) 521
20.1 标准模板库概述 521
20.1.1 C++标准库 521
20.1.2 STL的形成 522
20.1.3 STL的组成 522
20.1.4 STL的引入 523
20.2 算法 525
20.3 容器 527
20.3.1 容器概述 527
20.3.2 向量 528
20.3.3 列表 529
20.3.4 集合 531
20.3.5 双端队列 532
20.3.6 栈 534
20.3.7 映射和多重映射 535
20.4 迭代器 536
20.5 综合练习 537
20.6 小结 538
20.7 习题 538
第21章 程序调试与异常处理(教学视频:46分钟) 543
21.1 程序错误 543
21.1.1 编译错误 543
21.1.2 逻辑错误 544
21.1.3 运行错误 545
21.2 程序调试 546
21.2.1 DEV-C++的调试功能 546
21.2.2 调试程序示例 547
21.3 异常处理 549
21.3.1 基本思想 549
21.3.2 抛出异常 551
21.3.3 捕获异常 551
21.4 错误处理实例 553
21.5 异常处理实例 555
21.6 小结 556
21.7 习题 556
第3篇 综合案例篇 561
第22章 人事管理系统开发实例(教学视频:35分钟) 561
22.1 需求分析 561
22.2 系统设计 562
22.2.1 概要设计 562
22.2.2 详细设计 563
22.2.3 数据结构设计 564
22.3 系统实现 565
22.3.1 创建应用程序 566
22.3.2 注册职工 567
22.3.3 更新职工信息 568
22.3.4 职工去职 571
22.3.5 查询职工信息 572
22.3.6 保存数据 573
22.3.7 工资排序 574
22.3.8 职工信息显示 576
22.4 系统集成 577
22.5 小结 580
22.6 习题 580