第一部分 C++结构化语言基础 1
第1章 绪论 1
1.1 概述 1
1.1.1 面向对象方法的起源 1
1.1.2 面向对象语言 2
1.1.3 Visual C++的发展 2
1.2 简单的C++程序 3
1.2.1 C++程序 3
1.2.2 C++的头文件 3
1.2.3 源程序 4
1.3 程序的调试与运行 5
1.3.1 启动Visual C++ 6
1.3.2 编辑源文件 7
1.3.3 编译源程序 10
1.3.4 链接目标程序,形成可执行文件 10
1.3.5 运行程序 11
第2章 数据类型及表达式 12
2.1 词法符号 12
2.1.1 字符集 12
2.1.2 标识符 12
2.1.3 关键字 13
2.2 基本数据类型 13
2.3 常量与变量 14
2.3.1 常量 14
2.3.2 变量 18
2.4 运算符与表达式 20
2.4.1 算术运算 20
2.4.2 关系运算 23
2.4.3 逻辑运算 25
2.4.4 赋值运算 26
2.4.5 逗号运算 27
2.5.2 强制类型转换 28
2.5.1 自动类型转换 28
2.5 类型转换 28
2.6 小结 29
习题2 30
第3章 结构化程序设计及语句 31
3.1 C++的输入输出流 31
3.1.1 C++的无格式输入输出 31
3.1.2 指定格式输入输出 33
3.2 结构化程序设计概述 37
3.2.1 程序设计的发展历程 37
3.2.2 结构化程序设计概念 38
3.3 顺序结构及程序举例 40
3.3.1 顺序结构 40
3.3.2 程序举例 41
3.4 选择结构的实现 42
3.4.1 if语句实现选择结构 43
3.4.2 if语句的嵌套 46
3.4.3 switch语句实现选择结构 49
3.5 循环结构的实现 52
3.5.1 while语句 52
3.5.2 do-while语句 54
3.5.3 for语句 54
3.5.4 循环的嵌套 56
3.5.5 break语句 58
3.5.6 continue语句 59
3.6 结构化程序设计方法 60
3.6.1 逐步细化法 60
3.6.2 模块法 61
3.7 程序设计举例 61
习题3 65
第4章 数组与指针 67
4.1 数组 67
4.1.1 一维数组 67
4.1.2 二维数组 71
4.1.3 字符数组 75
4.2 指针 82
4.2.1 指针 82
4.2.2 指针与数组 92
4.2.3 多级指针与指针数组 98
4.2.4 指针与多维数组 102
4.2.5 数组指针 105
4.3 引用 106
4.4 内存管理 109
习题4 112
第5章 函数 113
5.1 函数的定义 113
5.1.1 函数概念的引入 113
5.1.2 函数的定义 114
5.1.3 函数原型 116
5.2.1 函数的调用 117
5.1.4 空函数 117
5.2 函数的调用 117
5.2.2 参数传递机制 120
5.2.3 函数返回值 123
5.3 指针与函数 124
5.3.1 指针作为函数参数 125
5.3.2 函数调用中数组的传递 127
5.3.3 函数指针 128
5.4 函数的嵌套调用 131
5.5 递归函数 134
5.6 作用域与生命期 137
5.6.1 作用域 137
5.6.2 全局变量和局部变量 140
5.6.3 生命期 142
5.7 编译预处理 147
5.7.1 宏定义(Macro) 147
5.7.2 文件包含(#include) 151
5.7.3 条件编译 152
5.8 程序举例 156
习题5 161
第6章 结构体、联合体、枚举类型 164
6.1 结构体与结构变量 164
6.1.1 结构的定义 164
6.1.2 结构变量的定义 165
6.2 结构成员的引用 168
6.1.3 结构变量的初始化 168
6.3 结构数组 171
6.3.1 结构数组的定义 171
6.3.2 结构数组的初始化 172
6.3.3 结构数组的应用 172
6.4 结构指针 173
6.4.1 结构指针 173
6.4.2 结构指针的应用 176
6.5.1 联合体的概念 184
6.5 联合体 184
6.5.2 联合体的引用 185
6.5.3 联合体类型的特点 185
6.6 枚举类型 188
6.6.1 枚举类型及枚举变量的定义 188
6.6.2 枚举元素的引用 188
6.6.3 用typedef定义类型 190
习题6 190
第二部分 C++的面向对象基础 193
第7章 面向对象设计 193
7.1 面向对象方法的提出 193
7.2 面向对象的主要概念 194
7.2.1 对象 194
7.2.2 类与封装 194
7.2.3 继承 195
7.2.6 面向对象方法与结构化方法比较 196
7.2.4 多态性 196
7.2.5 消息 196
7.3 面向对象程序设计语言 199
7.3.1 面向对象语言分类 199
7.3.2 C++对面向对象技术的支持 199
7.4 面向对象分析与设计 200
7.4.1 面向对象分析OOA 200
7.4.2 面向对象设计 203
7.5 面向对象分析与设计举例 204
第8章 类与对象 207
8.1 类的构造与封装 207
8.1.1 从结构到类 207
8.1.2 内联的成员函数 209
8.1.3 带缺省参数的成员函数及函数重载 211
8.2.2 成员的访问 212
8.2.1 创建对象 212
8.2 类与对象 212
8.2.3 构造函数与析构函数 213
8.2.4 类与对象的进一步讨论 218
8.3 友元 232
8.3.1 友元函数的定义 232
8.3.2 友元函数的作用 232
8.4 类模板 237
8.4.1 类模板的定义 237
8.4.2 定义类模板对象 238
8.5 程序举例 239
习题8 250
第9章 继承与派生 254
9.1 派生类 254
9.1.1 定义派生类 254
9.1.2 访问基类成员 255
9.2.1 定义派生类的构造函数 259
9.2 派生类的构造函数和析构函数 259
9.2.2 派生类的构造函数与析构函数的特点 260
9.3 虚函数 262
9.3.1 引入虚函数 262
9.3.2 虚函数实现运行多态性的原理 265
9.3.3 虚函数的特性 266
9.4 抽象基类 269
9.5 程序举例 271
习题9 273
第10章 运算符重载 277
10.1 重载运算符 277
10.1.1 重载运算符的意义 277
10.1.2 运算符重载形式 278
10.2 可重载的运算符 281
10.3 重载运算符举例 281
习题10 284
第11章 I/0流 285
11.1 标准I/O流 285
11.1.1 输入成员函数 285
11.1.2 输出成员函数 286
11.1.3 测试I/O成员函数 287
11.2 文件I/O流 287
11.2.1 文件的打开与关闭 288
11.2.2 文件的读写 289
习题11 289
第三部分 Visual C++的Windows编程 291
第12章 Visual C++创建Windows程序 291
12.1 Windows编程特点 291
12.2 Windows程序的基本结构 292
12.2.1 Windows应用程序的组成 293
12.2.2 源程序组成结构 293
12.2.3 利用Windows API函数编程实例 294
12.3.1 MFC编程特点 295
12.3 利用MFC生成Windows程序 295
12.3.2 利用MFC编程简单例子 296
12.3.3 Visual C++应用程序向导AppWizard 302
习题12 305
第13章 对话框和基本控件 306
13.1 对话框与常用控件概述 306
13.1.1 对话框的种类 306
13.1.2 对话框的创建和显示 306
13.1.3 对话框类Cdialog 307
13.1.4 CWnd类提供的管理对话框的成员函数 308
13.1.5 常用控件 309
13.2 对话框的设计 310
13.2.1 使用ClassWizard建立对话框类 310
13.2.2 对话框类成员变量的加入 310
13.3 基于对话框和基本控件的应用程序举例 311
13.3.1 编辑框类的结构及其方法 311
13.3.2 编程实例 312
习题13 323
第14章 菜单与文档视图结构 324
14.1 菜单 324
14.1.1 菜单概述 324
14.1.2 菜单类的方法 325
14.1.3 建立菜单及菜单消息映射 326
14.2 菜单设计 327
14.2.1 对话框应用程序中的菜单设计实例 327
14.2.2 文档结构应用程序中的菜单设计实例 332
14.3 文档与视图结构及其应用 335
14.3.1 概述 335
14.3.2 文档类及其派生类 336
14.3.3 视图类及其派生类 338
14.3.4 文档-视图结构编程举例 340
习题14 343
15.1.1 算法及其概述 344
15.1 算法与数据结构概述 344
第四部分 数据结构与软件工程基础 344
第15章 数据结构与算法 344
15.1.2 什么是数据结构 345
15.2 线性结构 345
15.2.1 线性表 345
15.2.2 栈 347
15.2.3 队列 348
15.2.4 小结 350
15.3 树形结构 350
15.3.1 树与遍历 350
15.3.2 二叉树及其遍历 352
15.4 内部排序与查找算法 354
15.4.1 内部排序 354
15.4.2 检索 355
16.1.3 软件工程方法 356
16.1.2 软件工程学 356
16.1.1 软件工程的概念 356
16.1 概述 356
第16章 软件工程基础知识 356
16.2 软件的生命周期 357
16.2.1 软件的生命周期 357
16.2.2 瀑布模型 357
16.3 软件定义时期的工作任务和分析方法 357
16.3.1 现状调查和问题定义 358
16.3.2 可行性研究 358
16.3.3 需求分析 358
16.4 软件设计时期的主要任务和分析方法 358
16.4.1 总体设计 359
16.4.2 详细设计 360
16.4.3 结构化程序设计与程序设计方法论 361
16.4.4 软件测试 361
参考文献 364