第1章 程序设计概述 1
1.1 程序与程序设计 1
1.1.1 程序 1
1.1.2 程序设计 2
1.2 指令和指令系统 3
1.2.1 概念 3
1.2.2 机器语言与指令 3
1.3 算法 4
1.3.1 概念 4
1.3.2 算法分析与设计 5
1.3.3 常用算法 7
1.4 数据结构 13
1.5 程序设计语言 14
1.5.1 分类 14
1.5.2 面向过程的高级语言 15
1.5.3 面向对象的程序设计语言 16
1.6 编程范型 16
1.6.1 命令式程序设计 17
1.6.2 函数式程序设计 17
1.6.3 面向对象程序设计 18
1.6.4 逻辑式程序设计 19
1.7 编程技巧 19
1.8 程序设计方法 20
1.8.1 结构化程序设计方法 20
1.8.2 面向对象程序设计方法 21
1.8.3 构件式程序设计方法 22
1.8.4 基于组件的程序设计方法 23
1.9 翻译系统 23
1.10 程序设计的一般步骤 24
1.10.1 理解问题:程序说明 24
1.10.2 设计解决问题的方案 24
1.10.3 编写程序代码 25
1.10.4 程序调试与测试 26
1.10.5 编写程序文档 27
1.10.6 运行与维护 27
小结 27
习题1 28
第2章 C++基础 30
2.1 C++的发展 30
2.1.1 C语言 30
2.1.2 面向对象的编程 32
2.1.3 C++的诞生 32
2.2 面向对象的程序设计方法 33
2.2.1 封装 33
2.2.2 多态 33
2.2.3 继承 34
2.2.4 C++与OOP 34
2.3 C++程序开发 35
2.3.1 开发过程 36
2.3.2 C++系统 36
2.3.3 Visual C++ 6.0 37
2.3.4 源程序的运行 41
2.3.5 源程序的建立 42
2.4 C++语言的词法规则 43
2.4.1 字符集 43
2.4.2 单词及词法规则 44
2.5 C++语言的程序结构和书写格式 46
2.5.1 一个C++语言程序实例 46
2.5.2 源程序格式 47
2.5.3 预处理、包含和宏 48
2.6 输入输出初步 50
2.6.1 输出符 50
2.6.2 输入符 51
2.7 函数返回值类型 52
2.8 前置声明 53
2.9 预处理和头文件 54
小结 54
习题2 54
第3章 常量、变量与表达式 56
3.1 基本数据类型概述 56
3.2 常量 57
3.2.1 整型常量 58
3.2.2 实型常量 58
3.2.3 字符转义序列 59
3.2.4 字符串常量 59
3.3 变量 60
3.3.1 变量名 60
3.3.2 变量的类型及类型修饰符 61
3.3.3 变量的初始化 64
3.4 运算符 64
3.4.1 算术运算符 64
3.4.2 增量运算与减量运算 65
3.4.3 关系运算符与逻辑运算符 68
3.4.4 各种类型数据间的混合运算 69
3.5 表达式 69
3.5.1 算术表达式 70
3.5.2 赋值表达式 71
3.5.3 关系表达式 72
3.5.4 逻辑表达式 72
3.5.5 逗号表达式 74
3.5.6 表达式的嵌套 75
小结 76
习题3 76
第4章 控制语句 80
4.1 程序的三种基本结构 80
4.1.1 流程图与N-S图 80
4.1.2 顺序结构 81
4.1.3 选择结构 81
4.1.4 循环结构 82
4.2 if语句 82
4.2.1 if语句的三种形式 82
4.2.2 if语句的嵌套 84
4.2.3 条件表达式 85
4.3 switch语句 87
4.4 while语句 89
4.5 do-while语句 90
4.6 for语句 92
4.6.1 for循环的一般形式及变形 92
4.6.2 省略循环组成部分 93
4.7 break语句和continue语句 96
4.7.1 break语句 96
4.7.2 continue语句 97
4.8 循环的嵌套 98
4.9 几种循环的比较 99
小结 99
习题4 100
第5章 数组 106
5.1 一维数组 106
5.1.1 一维数组的定义 106
5.1.2 一维数组元素的引用 107
5.1.3 一维数组的初始化 108
5.1.4 一维数组实例解析 109
5.2 二维数组 111
5.2.1 二维数组的定义 111
5.2.2 二维数组元素的引用 112
5.2.3 二维数组的初始化 112
5.2.4 二维数组实例解析 114
5.3 字符数组 115
5.3.1 字符数组的定义 115
5.3.2 字符数组的初始化 115
5.3.3 字符数组元素的引用 116
5.3.4 字符串结束标志 116
5.3.5 字符串处理函数 118
5.3.6 字符数组应用举例 121
小结 123
习题5 123
第6章 指针 135
6.1 指针的概念 135
6.1.1 对指针的理解 135
6.1.2 指针的定义 136
6.1.3 指针的运算符 137
6.1.4 指针的赋值 137
6.1.5 指针的运算 138
6.2 指针和数组 140
6.2.1 数组名 140
6.2.2 用指针表示数组元素 141
6.2.3 指向数组元素的指针 144
6.2.4 指针数组 145
6.3 指针与字符串 146
6.3.1 指向字符 146
6.3.2 指向字符串 147
6.4 this指针与智能指针 150
6.4.1 this指针 150
6.4.2 智能指针 150
小结 154
习题6 155
第7章 函数 164
7.1 函数的定义 164
7.1.1 库函数与自定义函数 164
7.1.2 参数与函数原型 165
7.2 函数的域 168
7.2.1 全局变量 169
7.2.2 局部变量 170
7.3 嵌套与递归 171
7.3.1 嵌套 171
7.3.2 递归 172
7.4 函数知识进阶 174
7.4.1 指针作为参数的使用 174
7.4.2 指针作为函数的返回值 175
7.4.3 函数的重载 176
7.4.4 函数的重载与歧义性 177
小结 178
习题7 179
第8章 构造数据类型 202
8.1 结构 202
8.1.1 结构的定义 203
8.1.2 结构的初始化 206
8.1.3 结构的引用 207
8.2 结构数组 208
8.2.1 结构数组的定义 208
8.2.2 结构数组的初始化 209
8.2.3 结构数组的引用 210
8.3 结构嵌套 211
8.4 结构体变量作为函数参数 213
8.5 结构指针 214
8.5.1 结构指针的概念 214
8.5.2 指针指向结构变量 215
8.5.3 指针指向结构数组 216
8.5.4 指向自身结构的指针 218
8.5.5 结构体指针作为函数参数 219
8.6 结构例 220
8.7 联合 223
8.8 枚举 224
8.9 自定义数据类型命令 226
小结 229
习题8 229
第9章 面向对象程序设计 237
9.1 类的基本概念 237
9.1.1 类和对象 237
9.1.2 结构与类 238
9.1.3 类的定义 244
9.2 对象 248
9.2.1 对象的概念 248
9.2.2 对象的定义 249
9.2.3 用对象来调用成员函数 249
9.2.4 类的作用域 250
9.3 C++面向对象程序设计概念 251
9.3.1 名字空间 251
9.3.2 联编 254
9.3.3 方法和消息 254
9.3.4 构造函数与析构函数 254
9.3.5 友元 258
9.3.6 重载 264
9.4 继承与派生 276
9.4.1 继承与派生的概念 276
9.4.2 定义 277
9.4.3 派生类的建立方法 278
9.4.4 多重继承 282
9.5 多态性与虚函数 283
9.5.1 概念 283
9.5.2 静态成员 284
9.5.3 虚函数 287
9.5.4 纯虚函数 292
9.5.5 抽象类 293
9.5.6 联编中的多态性 295
9.5.7 虚函数与实函数 300
9.5.8 构造函数和析构函数调用虚函数 303
9.5.9 对象的基类指针与多态性 305
9.5.10 多重继承与虚函数虚基类 305
9.6 编程示例 309
9.7 使用对象编程小结 311
9.7.1 标准库提供类的使用 311
9.7.2 string对象数组与范型算法 312
小结 312
习题9 313
第10章 流及输入输出 316
10.1 流的概念 316
10.1.1 流、流类和流库的概念 316
10.1.2 流类库 317
10.1.3 数据的输入输出 318
10.1.4 默认I/O格式控制 319
10.2 使用ios_base类的格式I/O 321
10.2.1 ios_base类简介 321
10.2.2 有关格式控制 322
10.2.3 直接使用格式控制 324
10.2.4 使用成员函数 326
10.3 使用系统预定义的操作符/操作符函数控制 327
10.4 使用用户自定义的操作符进行控制 328
10.5 用户自定义类型I/O 330
10.6 文件I/O 332
10.6.1 VC++文件I/O的函数 332
10.6.2 VC++文件的序列化 333
10.6.3 VC/MFC的CFile类 333
10.6.4 文件流 334
10.7 应用实例 344
小结 345
习题10 345
第11章 文件系统 349
11.1 文件系统概述 349
11.1.1 文件的分类 349
11.1.2 缓冲与非缓冲文件系统 350
11.2 文件的操作 351
11.2.1 FILE结构类型 351
11.2.2 相关的系统信息 351
11.2.3 文件的打开 353
11.2.4 文件的关闭 356
11.2.5 文件的读写 356
11.2.6 关于检测文件结束 361
11.2.7 文件的随机读写 362
11.3 文件操作函数 363
11.3.1 fgetc和fputc 364
11.3.2 fscanf和fprintf 367
11.3.3 fread和fwrite 367
11.3.4 标准I/O文件 370
11.3.5 fseek 371
11.3.6 出错检测函数 373
11.4 非缓冲文件系统 374
小结 376
习题11 378
第12章 Visual C++/MFC知识 380
12.1 VC/MFC概述 380
12.1.1 MFC的概念 381
12.1.2 MFC的发展 382
12.1.3 MFC库层次结构 383
12.1.4 学好VC/MFC 389
12.2 理解Windows消息机制 393
12.2.1 消息的组成 394
12.2.2 消息机制 395
12.3 MFC的消息机制 397
12.3.1 消息映射 397
12.3.2 消息处理函数 400
12.4 MFC的应用程序执行机制 401
12.4.1 WinMain函数 401
12.4.2 应用程序类 403
12.4.3 Run成员函数 405
12.4.4 关闭应用程序 405
12.5 利用MFC进行开发的注意点 406
12.5.1 开发思路和方法参考 406
12.5.2 MFC与Windows API 407
12.5.3 MFC的编程接口 408
12.5.4 虚拟函数 408
12.6 介绍MFC中的常用类 408
12.7 和GUI有关的各种对象 409
12.8 文档、视、框架间的关系和作用 411
12.8.1 文档、视、框架间的关系 411
12.8.2 文档、视、框架间的作用 412
12.8.3 MFC中所提供的各种视类介绍 412
12.9 Windows编程介绍 413
12.9.1 Windows编程的特点 413
12.9.2 常见Windows编程工具 414
小结 418
习题12 419
附录A C和C++保留字/关键字 422
附录B C和C++运算符 426
附录C C及C++基本数据类型 429
附录D C及C++常量 430
附录E C及C++标准库函数 433
附录F VC/MFC功能简介 437
附录G MFC类库层次结构 441
附录H ASCII码表 444
参考文献 447