第一部分 Borland编译程序和C/C++程序设计 2
第一章 本书的用途 2
1.1 标准的发展 2
1.2 BorlandC++编译程序的安装 3
1.3 新特征 3
1.3.1 Windows 95特征 3
1.3.2 16位和32位应用程序特征 3
1.3.3 可缩放特征 3
1.4 系统建议 4
1.4.1 最小软硬件需求 4
1.4.2 建议的软硬件需求 4
1.5 内容安排 4
第二章 集成开发环境简介 6
2.1 BorlandC++ IDE的启动 6
2.2 上下文相关帮助的访问 6
2.3 了解菜单 7
2.4 File菜单 7
2.4.1 New 7
2.4.2 Open 7
2.4.3 Close 8
2.4.4 Save 8
2.4.5 Save As... 8
2.4.6 Save All 8
2.4.7 Print... 8
2.4.8 Printer Setup... 9
2.4.9 Send 9
2.4.10 Exit 9
2.4.11 最近文件列表 9
2.5 Edit菜单 9
2.5.1 Undo 9
2.5.2 Redo 9
2.5.3 Cut 10
2.5.4 Copy 10
2.5.5 Paste 10
2.5.6 Clear 10
2.5.7 Select All 10
2.5.8 Buffer List 10
2.6 Search菜单 10
2.6.1 Find.../Replace.../Search Again 11
2.6.2 Browsc Symbol 11
2.6.3 I ocate Symbol 11
2.6.4 Previous Message/Next Message 11
2.7 View菜单 11
2.7.1 ClassExpert 11
2.7.2 Project 11
2.7.3 Message 12
2.7.4 Classes 12
2.7.5 Globals 12
2.7.6 CPU 12
2.7.7 Process 12
2.7.8 Watch 12
2.7.9 Breakpoint 12
2.7.10 Call Stack 13
2.8 Project菜单 13
2.8.1 New Target 13
2.8.2 Compile 13
2.8.3 Make All 13
2.8.4 Build All 14
2.8.5 Generate Makefile 14
2.9 Script菜单 14
2.9.1 Run 18
2.9.2 Commands 18
2.9.3 Modules 18
2.9.4 Compile File 18
2.9.5 Run File 18
2.10 Tool菜单 18
2.10.1 Turbo Debugger 19
2.10.2 Grep 19
2.10.3 WinSight 19
2.11 Debug菜单 19
2.11.1 Run 19
2.11.2 Load 19
2.11.3 Attach 20
2.11.4 Run To 20
2.11.5 Pause Process 20
2.11.6 Reset This Process 20
2.11.7 Terminate Process 20
2.11.8 Find Execution Point 20
2.11.9 Add Breakpoint 20
2.11.10 Breakpoint Options 20
2.11.11 Add Watch 20
2.11.12 Evaluate 21
2.11.13 Inspect 21
2.12 Options菜单 21
2.12.1 Project 21
2.12.2 Environment 21
2.12.3 Tools 22
2.12.4 Style Sheets 22
2.12.5 Save 22
2.13 Window菜单 22
2.13.1 Cascade 22
2.13.2 Tile Horizontal/Tile Vertical 22
2.13.3 Arrange Icons 22
2.13.4 Close All 23
2.13.5 Minimize All 23
2.13.6 Restore All 23
2.4 Help菜单 23
2.14.1 Contents 23
2.14.2 Keyword Search 23
2.14.3 Keyword 23
2.14.4 Using Help 23
2.14.5 Windows API 24
2.14.6 OWL API 24
2.14.7 About 24
第三章 简单C/C++程序的编写和编译 25
3.1 第一个程序 25
3.1.1 启动Borland IDE 25
3.1.2 开始一个新文件 26
3.1.3 保存一个文件 27
3.1.4 编译一个程序 27
3.1.5 运行一个程序 29
3.2 一种替代方法 29
3.2.1 开始新项目 30
3.2.2 建立项目 33
第四章 程序调试 34
4.1 使用新语言时的惊奇 35
4.2 通过编译程序的诊断消息学习新语言 36
4.3 用集成调试程序跟踪逻辑错误 44
4.3.1 设置观察口 44
4.3.2 逐行执行程序 45
4.3.3 设置断点 45
4.3.4 运行到断点 45
4.3.5 程序复位 47
4.3.6 实践跟踪模式和跨越模式 48
4.4 本章概要 48
第二部分 C和C++语言程序设计基础 52
第五章 C和C++编程基础 52
5.1 C语言的发展 52
5.1.1 C语言和UNIX操作系统 53
5.1.2 C语言与其它语言 53
5.1.3 C语言的优点 54
5.1.4 C语言的缺点 56
5.1.5 编程规则 57
5.2 C与ANSI C标准 57
5.3 C到C++的发展 57
5.4 C++短暂的过去 58
5.4.1 C++对象可以简化代码设计 58
5.4.2 C++的次要增强 59
5.4.3 C++的主要增强 61
5.5 C程序的基本组成部分 62
5.5.1 七种关键元素 62
5.5.2 一个简单的C程序 63
5.5.3 一个简单的C++程序 64
5.5.4 第二个C程序 64
5.5.5 第二个C++程序 67
5.5.6 文 件 69
第六章 数据处理 72
6.1 命名变量、常数和函数的规则 72
6.2 保留字的使用 73
6.3 标准C和C++数据类型 74
6.3.1 字符类型 75
6.3.2 枚举类型 76
6.3.3 浮点类型 77
6.3.4 整数类型 78
6.3.5 修饰类型 78
6.4 存取修饰符 80
6.4.1 const修饰符 80
6.4.2 #define常数 80
6.4.3 volatile修饰符 81
6.4.4 const和volatile的结合使用 81
6.5 修饰符:pascal、cdecl、near、far及huge 82
6.5.1 pascal 82
6.5.2 cdecl 83
6.5.3 near、far及huge 83
6.6 数据类型转换 83
6.6.1 使用cast运算符转换数据类型 84
6.7 存储器类别 85
6.7.1 外层变量申明 85
6.7.2 内层变量申明 86
6.7.3 可见度规则概述 87
6.7.4 函数的外层申明 87
6.8 C/C++运算符 88
6.8.1 算术运算符 88
6.8.2 赋值运算符 88
6.8.3 逐位运算符 88
6.8.4 逗号运算符 89
6.8.5 复合赋值运算符 89
6.8.6 条件运算符 90
6.8.7 递增和递减运算符 90
6.8.8 左移和右移运算符 91
6.8.9 关系和逻辑运算符 91
6.8.10 运算符的优先级 93
6.9 标准C和C++库 94
第七章 逻辑控制语句 97
7.1 条件语句 97
7.1.1 简单条件if 97
7.1.2 简单双条件if-else 98
7.1.3 嵌套if-else 98
7.1.4 if-else-if语句 99
7.1.5 条件运算符(?:)简介 100
7.1.6 switch-case选择语言的使用 101
7.1.7 if-else-if和switch-case的组合 104
7.2 循环语句 106
7.2.1 预测试for循环 106
7.2.2 预测试while循环 108
7.2.3 后测试do-while循环 109
7.2.4 break关键字简介 110
7.2.5 continue关键字简介 111
7.2.6 break和continue的组合 112
7.2.7 使用exit0函数终止程序 113
7.2.8 使用atexit0函数登记exit码 114
第八章 函 数 117
8.1 什么是函数 117
8.2 函数原型化和式样 117
8.2.1 原型化 117
8.2.2 值调用和引用调用 119
8.2.3 范 围 121
8.3 递 归 121
8.4 函数变元 122
8.4.1 形式变元和实际变元 122
8.4.2 void类型变元 123
8.4.3 字符变元 123
8.4.4 整数变元 124
8.4.5 浮点和双精度变元 125
8.4.6 数组变元 125
8.5 函数类型 126
8.6 函数main0的变元 127
8.6.1 串 128
8.6.2 整 数 128
8.6.3 浮点数 129
8.7 C++的重要特征 130
8.7.1 inline 130
8.7.2 重 载 131
8.7.3 省略号(...) 132
8.8 使用范围规则遇到的问题 133
8.8.1 C程序中的下划线符号 133
8.8.2 使用具有文件范围的变量 134
8.8.3 用局部变量超越文件变量 135
8.8.4 C++中的范围问题 135
8.8.5 C++范围分辨运算符 136
第九章 数 组 138
9.1 数组是什么? 138
9.2 数组申明 139
9.3 数组初始化 140
9.3.1 默认初始化 140
9.3.2 显式初始化 140
9.3.3 大小不定的初始化 141
9.4 存取数组元素 141
9.5 计算数组维数(sizeof0) 142
9.6 出界数组索引 143
9.7 串的输出和输入 144
9.8 多维数组 146
9.9 作为函数变元的数组 147
9.9.1 把数组传递给C/C++函数 147
9.10 三维数组 150
9.11 串函数和字符数组 153
9.11.1 gets0、puts0、fgets0、fputs0和sprinlf0 154
9.11.2 strcpy0、strcat0、strncmp0和strlen0 155
第十章 指 针 158
10.1 定义指针变量 158
10.1.1 指针变量申明 159
10.1.2 使用指针变量的简单语句 160
10.1.3 指针变量初始化 166
10.1.4 地址运算符的非法使用 168
10.1.5 指向数组的指针 168
10.1.6 指向指针的指针 168
10.1.7 指向串的指针 170
10.1.8 指针的算术运算 171
10.1.9 指针算术运算和数组 173
10.1.10 使用++和--运算符的问题 175
10.1.11 比较指针 175
10.1.12 指针可移植性 176
10.2 指向函数的指针 176
10.3 动态存储 178
10.3.1 使用void指针 180
10.4 指针与数组 182
10.4.1 串(char类型数组) 182
10.4.2 串指针数组 183
10.5 C++引用类型 184
10.5.1 返回地址的函数 185
10.5.2 使用集成调试程序 186
10.5.3 什么时候应该使用引用类型? 186
第十一章 C语言的输入和输出 187
11.1 流I/O 187
11.2 控制台和端口I/O 187
11.3 低层I/O 188
11.4 了解文件 189
11.4.1 打开文件 189
11.4.2 改变文件缓冲区 189
11.4.3 关闭文件 191
11.5 C语言中的低层输入和输出 191
11.6 字符输入和输出 192
11.6.1 gete0、pute0、fgetc0和fputc0的用法 192
11.6.2 getchar)、putchar0、fgetchar0和fputchar0的用法 193
11.6.3 getch0和putch0的用法 193
11.7 串输入和输出 193
11.7.1 gets0、puts0、fgets0和fputs0的用法 194
11.8 整数输入和输出 194
11.8.1 getw0和putw0的用途 195
11.9 输出格式化 196
11.9.1 printf0和fprintf0的用途 197
11.10 输入格式化 200
11.10.1 scanf0、fscanf0和sscanf0的用法 200
11.11 人工操纵文件指针 201
11.11.1 使用集成调试程序 203
第十二章 C++输入/输出简介 206
12.1 用C++简化I/O 206
12.1.1 cin对应stdin、cout对应stdout... 206
12.1.2 >>对应scanf0、<<对应printf0 206
12.2 从stream.h到iostream.h 209
12.2.1 运算符和成员函数 210
第十三章 结构、联合及其它数据项 221
13.1 C和C++结构 221
13.1.1 C和C++结构的语法和规则 221
13.1.2 C++结构的语法和规则扩充 223
13.1.3 结构成员的使用 223
13.1.4 简单结构 223
13.1.5 把结构传递给函数 224
13.1.6 结构数组 226
13.1.7 指向结构的指针 228
13.1.8 把结构数组传给函数 230
13.1.9 C++结构的用法 232
13.1.10 C++结构操纵 234
13.2 联 合 235
13.2.1 语法和规则 235
13.2.2 简单联合 236
13.3 其它数据项 237
13.3.1 typcdcf 237
13.3.2 cnum 238
第十四章 高级C/C++程序设计 241
14.1 类型兼容性 241
14.1.1 ANSIC对类型兼容性的定义 241
14.1.2 数组类型 241
14.1.3 枚举类型 241
14.1.4 函数类型 242
14.1.5 多源文件兼容性 242
14.1.6 指针类型 242
14.1.7 结构和联合类型 242
14.1.8 什么是一致类型? 242
14.2 宏 243
14.2.1 宏定义 243
14.2.2 宏与参数 244
14.2.3 宏扩展问题 244
14.2.4 建立并使用自己的宏 246
14.2.5 编译程序自带的宏 246
14.3 高级预处理器语句 247
14.3.1 #ifdef与#endif指令 247
14.3.2 #undef指令 247
14.3.3 #ifndef指令 248
14.3.4 #if指令 248
14.3.5 #else指令 248
14.3.6 #elif指令 248
14.3.7 #line指令 249
14.3.8 #crror指令 249
14.3.9 #pragma指令 249
14.4 条件编译 250
14.5 高级预处理器运算符 251
14.5.1 串化运算符(#) 251
14.5.2 并置运算符(##) 251
14.5.3 字符化运算符(#@) 252
14.6 头文件的合理使用 252
14.7 使头文件更有效 252
14.8 limits.h和float.h 253
14.9 处理出错:perror0 253
14.10 动态内存分配:链表 254
14.10.1 链表使用方法 255
14.10.2 简单链表 256
第三部分 C++面向对象程序设计基础 260
第十五章 面向对象程序设计简介 260
15.1 重新包装的老概念 260
15.2 自顶向下的设计 260
15.3 面向对象程序设计(OOP) 261
15.4 面向对象的C++程序设计 261
15.5 OOP术语 262
15.5.1 解释C++类 262
15.5.2 数据与封装 263
15.5.3 类层次 263
15.5.4 继承性 263
15.5.5 多态性 263
15.5.6 虚函数 264
15.6 第一个C++类 264
15.6.1 一个原始类 264
15.6.2 C++类语法 268
15.7 简单C++类 269
第十六章 C++类 271
16.1 高级对象概念 271
16.1.1 基本类对象 271
16.1.2 嵌套类 272
16.1.3 自动化类 274
16.1.4 重载类成员函数 277
16.1.5 利用友元访问私有成员 279
16.1.6 this指针 281
16.1.7 重载运算符 281
16.1.8 重载运算符与函数调用 282
16.1.9 派生类 284
第十七章 C++的高级I/O 289
17.1 枚举类型 289
17.2 引用变元 289
17.3 给变元赋缺省值 291
17.4 初始化被动态分配的内存 292
17.5 格式化输出的补充讨论 293
17.6 高级C++I/O的任选项 296
17.7 iostream.h类简介 296
17.7.1 输入流类 299
17.7.2 输出流类 300
17.7.3 缓冲流类 301
17.7.4 串流类 302
17.8 文本文件与二进制文件 304
17.9 使用extern“C”组合C和C++代码 306
17.10 创建您自己的操纵符 307
17.10.1 不带参数 308
17.10.2 带一个参数 309
17.10.3 带多个参数 309
第十八章 深入面向对象环境 312
18.1 C++中面向对象的栈 312
18.2 C++中面向对象的链表 314
18.2.1 创建父类 314
18.2.2 派生子类 315
18.2.3 使用友元类 316
18.2.4 分析完整的程序 319
18.2.5 链表输出 325
第四部分 专用库 330
第十九章 使用重要的C和C++库 330
19.1 BorlandC++头文件 330
19.2 字符函数(ctype.h) 330
19.2.1 查找字母数字混合、字母和ASCII值 331
19.2.2 查找控制符、空格和标点符号 332
19.2.3 到ASCII码、小写和大写的转换 333
19.3 数学函数(math.h) 334
19.3.1 复数结果的实数部分的虚数部分 336
19.3.2 用于复数和重载运算符 336
19.3.3 直角坐标到极坐标的变换 337
19.3.4 被重载的函数和复数算术运算 338
19.3.5 建立一个三角表 338
19.4 标准库函数(stdlib.h) 339
19.4.1 数据转换 339
19.4.2 搜索与分类 341
19.4.3 其它操作 342
19.5 串函数(string.h) 344
19.5.1 内存函数 344
19.5.2 串函数 346
19.6 时间函数(time.h) 348
19.6.1 时间/日期结构和语法 349
第五部分 Win32程序设计基础 356
第二十章 Windows:概念和工具 356
20.1 Windows的优点 356
20.1.1 一致性的外观和命令结构 356
20.1.2 图形用户界面(GUI) 356
20.1.3 多任务环境 357
20.1.4 DLL——动态连接库 360
20.1.5 从硬件约束中解放出来 360
20.1.6 Windows可执行格式 361
20.2 Windows术语 362
20.2.1 Windows窗口 362
20.2.2 窗口组件 362
20.2.3 一个用于Windows的伪类 364
20.2.4 资 源 364
20.2.5 消息处理 367
20.2.6 使用Windows函数 369
20.2.7 windows.h头文件 370
20.2.8 Windows应用程序组件 370
20.3 Borland C++ Windows工具 370
20.3.1 为什么建立项目? 371
20.3.2 包含资源 371
20.3.3 资源编辑程序 372
20.3.4 更多的资源信息 381
第二十一章 面向过程的C语言程序设计 382
21.1 一个简单的Windows程序 382
21.2 柄 383
21.3 开发一个模板(SWP)应用程序 383
21.4 应用程序元素 385
21.4.1 WinMain0函数 385
21.4.2 窗口类注册 385
21.4.3 建立窗口 390
21.4.4 显示和更新窗口 390
21.4.5 建立消息循环 391
21.4.6 所需的窗口函数 392
21.4.7 WM_PAINT消息 397
21.4.8 WM_DESTROY消息 397
21.4.9 DefWindowProc0函数 398
21.5 为什么使用项目文件? 398
21.5.1 建立项目文件 398
21.6 可执行文件(swp.exe) 400
21.7 再次使用模板 400
第二十二章 给Windows程序增加资源 404
22.1 一个科学波形 404
22.1.1 仔细分析这个应用程序 408
22.2 折线图 411
22.2.1 仔细分析这个应用程序 419
第六部分 使用对象库进行Win32程序设计 424
第二十三章 Borland的OWL 424
23.1 类 库 424
23.2 OWL环境 424
23.3 三个面向对象特征 425
23.3.1 封装 425
23.3.2 抽象 425
23.3.3 消息响应 425
23.4 一个ObjectWindows对象 425
23.5 一个简单的ObjectWindows应用程序 426
23.5.1 在应用程序中使用对象 429
第二十四章 使用Borland的OWL 435
24.1 试验字体 435
24.1.1 设计font.cpp应用程序 435
24.2 设计damp.cpp应用程序 437
第二十五章 给OWL应用程序增加资源 441
25.1 一个拖放式OWL应用程序 441
25.1.1 增加菜单 445
25.1.2 拖放连接 447
25.2 一个带有多种资源的图形应用程序 449
25.2.1 分析源代码文件 454
25.2.2 执行应用程序 456
25.3 一个具有多种资源的饼图应用程序 457
25.3.1 对话框 464
25.3.2 应用程序细节 466
25.3.3 执行应用程序 468
第二十六章 使用Microsoft的MFC库 469
26.1 MFC库是什么? 469
26.2 设计目标 469
26.3 CObjecf父类 470
26.4 附加父类 471
26.5 一个简单的MFC应用程序 474
26.5.1 创建窗口 474
26.5.2 运行这个应用程序 478
26.6 一个模板应用程序 478
26.6.1 头文件 479
26.6.2 源代码文件 480
26.6.3 运行这个应用程序 481
第二十七章 给MFC应用程序增加资源 482
27.1 一个傅里叶波形应用程序 482
27.1.1 应用程序的头文件 486
27.1.2 资源头、资源正本以及对话框正本文件 488
27.1.3 程序的源代码 489
27.1.4 运行这个应用程序 493
27.2 一个直方图应用程序 493
27.2.1 程序的头文件 500
27.2.2 资源头文件和资源正本文件 500
27.2.3 程序的源代码文件 501
27.2.4 运行这个应用程序 506
第七部分 Borland Experts 510
第二十八章 Borland Experts的Win32开发 510
28.1 Borland的Application Expert 510
28.1.1 设计应用程序 510
28.1.2 建立AppExpert应用程序 519
28.1.3 了解AppExpert代码 519
28.1.4 建立专用应用程序 536
第八部分 附 录 538
附录A 使用Borland BCWJAVA进行Java应用程序开发 538
A.1 安装BCWJAVA 539
A.2 Java语法要点 539
A.3 第一个Java项目 539
A.4 编写这个Java小程序 540
A.5 编译“HelloAgain.java” 541
A.6 调试HelloAgain.class 542
A.7 建立HTML页面 542
A.8 运行“HelloAgain.class” 543
A.9 当今的Java 545
A.10 Java语言概述 545