第一部分 C语言程序设计技巧 3
第一章 C语言基本数据处理的概念 3
1.1 变量名称的使用 3
1.2 变量的声明 4
1.3 基本数据类型 5
1.4 常数的表达方式 7
1.5 基本的算术运算 9
1.6 类型的转换 11
1.7 C语言的特殊表达式 13
第二章 基本的输入与输出 16
2.1 printf() 16
2.2 scanf() 29
2.3 字符的输入和输出函数 31
第三章 程序的流程控制 38
3.1 关系运算符与逻辑运算符 38
3.2 for语句 39
3.3 while语句 45
3.4 do…while语句 47
3.5 if语句 50
3.6 else——if语句 52
3.7 el?e2:e3特殊表达式 55
3.8 switch语句 56
3.9 breaki语句 58
3.10 continue语句 59
3.11 goto语句 61
第四章 数组和指针 63
4.1 一维数组 63
4.2 二维数组 68
4.3 指针的基本概念 70
4.4 指针和数组的混合应用 72
第五章 函数的应用 75
5.1 函数的定义 76
5.2 主程序函数的位置 77
5.3 函数的返回值 78
5.4 数组数据的传递 80
5.5 下标的传递 84
5.6 递归式函数的调用 85
5.7 新式ANSI函数的声明 86
5.8 简单数学函数的使用 87
第六章 变量的等级 93
6.1 auto 93
6.2 static 94
6.3 external 97
6.4 static external 99
6.5 register 100
第七章 C语言的预处理程序 101
7.1 宏#dcfine命令 101
7.2 #include功能 106
7.3 条件式的编译 108
第八章 用户自定数据类型 111
8.1 typedef 111
8.2 结构数据类型 112
8.3 结构数据与数组 115
8.4 嵌套结构 116
8.5 结构数据与函数 118
8.6 union 121
8.7 cnum 123
第九章 字符串的彻底剖析 125
9.1 由字符所组成的一维数组 125
9.2 字符串的应用 127
9.3 字符串与指针 131
9.4 gets()和puts()函数 133
9.5 字符串数组 136
9.6 数组的字符串指针 137
9.7 命令行参数 139
第十章 基本位运算 141
10.1 &运算符 141
10.2 运算符 143
10.3 ∧运算符 144
10.4 ~运算符 146
10.5 <<运算符 147
10.6 >>运算符 148
10.7 位字段 149
第十一章 测试符号与符号转换函数 152
11.1 isalmum() 152
11.2 isalpha() 153
11.3 isascii() 153
11.4 iscntrl() 154
11.5 isdigit() 155
11.6 isgraph() 156
11.7 islower() 157
11.8 isprint() 158
11.9 ispunct() 159
11.10 isspace() 160
11.11 isupper() 160
11.12 isxdigit() 161
11.13 tolower() 162
11.14 toupper() 162
第十二章 文件的输入与输出 164
12.1 有缓冲区的输入与输出函数 164
12.2 C语言缺省的文件指针 182
12.3 无缓冲区的输入与输出 186
12.4 C语言缺省的文件句柄 191
第十三章 基本的序列结构 193
13.1 动态数据结构的声明 193
13.2 存储器的配置 193
13.3 链表序列的基本操作 196
13.4 序列的连接 199
13.5 序列中节点的删除 204
13.6 释放存储器空间 207
13.7 节点的插入 207
13.8 双向链表序列 208
第十四章 堆栈与队列 212
14.1 堆栈 212
14.2 队列 216
第十五章 二叉树 221
15.1 二叉树的节点结构 221
15.2 二叉树的建立 222
15.3 二叉树的打印 223
第十六章 DOS系统时间 229
16.1 time() 229
16.2 ctime() 230
16.3 localtime() 230
16.4 asctime() 231
16.5 gmtime() 232
16.6 difftime() 232
16.7 clock() 233
16.8 随机函数 234
第十七章 认识键盘 236
17.1 __kbhit() 236
17.2 认识键盘码 237
第十八章 屏幕的控制 242
18.1 屏幕的清除 242
18.2 移动光标位置 243
18.3 设置光标外形 244
18.4 建立视区 245
18.5 卷动视区 246
18.6 动态画面的设计 248
第十九章 计算机绘图 250
19.1 了解屏幕模式 251
19.2 设置图形模式 252
19.3 __lineto() 253
19.4 __moveto() 254
19.5 __rectangle() 255
19.6 __ellipse() 256
19.7 __setpixel() 258
19.8 设计图样 259
19.9 线条样式的设置 261
19.10 动态画面的效果 262
19.11 文本与图形的结合 265
19.12 逻辑坐标 266
19.13 颜色的设置 267
19.14 视区的设定 268
第二十章 基本DOS和BIOS系统应用 271
20.1 IBM PC内部结构 271
20.2 DOS和BIOS系统调用的基本概念 275
20.3 DOS系统调用 277
20.4 BIQS系统调用 284
第二十一章 存储器映射绘图法 287
21.1 单色文本模式适配器 287
21.2 彩色文本模式适配器 291
第二十二章 ANSISYS与C语言 293
22.1 光标与屏幕的控制 293
22.2 属性的控制 297
22.3 键盘的重新设置 300
第二十三章 鼠标器的控制 302
23.1 功能0 302
23.2 功能1 303
23.3 功能2 304
23.4 功能3 305
23.5 功能4 311
23.6 功能5 313
23.7 功能6 317
23.8 功能7 319
23.9 功能8 321
23.10 功能9 323
23.11 功能10 325
23.12 功能11 327
23.13 功能15 327
第二十四章 QuickWin应用程序设计 329
24.1 一个简单的程序实例 329
24.2 一个简单的绘图程序实例 330
24.3 About对话方块 331
24.4 QuickWin与Windows应用程序的差别 332
第二部分 C++语言程序设计技巧 335
第二十五章 OOP简介 335
25.1 OOP的特点 335
25.2 软件要求及适用对象 340
25.3 如何学习OOP 340
25.4 结构化程序设计的缺点 340
25.5 OOP概述 342
第二十六章 C++语言的基本概念 343
26.1 变量名命名约定 343
26.2 变量的声明 344
26.3 基本数据类型 345
26.4 常数的表达 348
26.5 基本算术运算 350
26.6 类型转换 351
26.7 C++语言的特殊运算 352
第二十七章 输入/输出与用户定义数据类型 355
27.1 printf() 355
27.2 为什么OOP程序不使用printf()和scanf() 355
27.3 OOP程序特有的输出cout 356
27.4 OOP程序特有的输入 360
27.5 typedef 363
27.6 结构数据类型 364
27.7 嵌套结构 370
27.8 几个有关结构的实例 372
27.9 联合(union) 373
27.10 枚举(enum) 375
第二十八章 程序流程 380
28.1 关系与逻辑操作符 380
28.2 for语句 381
28.3 while语句 384
28.4 do...while语句 388
28.5 if条件语句 390
28.6 else if语句 393
28.7 e1?e2:e3条件表达式 394
28.8 switch开关语句 395
28.9 break语句 397
28.10 continue语句 398
28.11 goto语句 399
第二十九章 函数 401
29.1 函数定义 402
29.2 主程序和函数的次序 404
29.3 函数的返回值 406
29.4 结构数据与函数 408
29.5 地址的传送 409
29.6 函数参数值的初始化 413
29.7 函数重载 414
29.8 递归函数的调用 416
29.9 inline操作符 418
第三十章 类和对象 420
30.1 类的定义方法 420
30.2 对象概念 421
30.3 构造函数和析构函数 424
30.4 如何在构造函数内传递参数 427
30.5 函数的重载 428
30.6 函数的重载与构造函数的区别 430
30.7 成员函数的参数是对象的情形 431
30.8 成员函数的返回值是对象的情形 433
30.9 类与结构 435
30.10 inline函数 436
30.11 类、对象的内存分配 438
30.12 静态类数据 439
30.13 综合应用实例 440
第三十一章 数组 446
31.1 一维数组 446
31.2 设置一维数组的初值 448
31.3 二维数组 449
31.4 设置二维数组的初值 451
31.5 数组数据在函数内的传递 452
31.6 结构与数组 454
31.7 在对象内声明数组 455
31.8 对象数组 460
31.9 字符串 462
31.10 gets()和puts()函数 465
31.11 用cin读取字符串 467
31.12 字符串处理函数 469
31.13 字符串数组 469
31.14 字符串与类 470
31.15 综合应用实例 472
第三十二章 重载操作符 475
32.1 重载单目操作符 475
32.2 含返回值的操作符重载 478
32.3 重载双目操作符 480
32.4 重载比较操作符 484
32.5 重载特殊操作符 486
32.6 不同数据类型之间的转换 488
32.7 不同类类型之间的转换 490
32.8 重载等号操作符 495
32.9 综合应用实例 498
第三十三章 继承 501
33.1 继承的目的 502
33.2 构造函数与派生类 506
33.3 重载函数、基类与派生类 509
33.4 多重派生 512
33.5 多层派生类的概念 515
33.6 某个类继承多个类的概念 518
33.7 类的嵌套 524
33.8 私有派生类 527
33.9 私有数据的派生 528
33.10 综合应用实例 531
第三十四章 指针 537
34.1 指针 537
34.2 指针与函数 542
34.3 指针与数组 543
34.4 指针与字符串 545
34.5 指向指针的指针 546
34.6 指针与结构 550
34.7 内存分配 551
34.8 指针与类 553
34.9 指针、构造函数和析构函数 554
34.10 指针与对象数组 556
34.11 堆栈、队列与二元树 557
第三十五章 虚拟函数和多态 572
35.1 指针与派生类 572
35.2 虚拟函数 574
35.3 虚拟函数的作用 578
35.4 纯虚拟函数 581
35.5 虚拟基类 583
35.6 综合应用实例 586
第三十六章 OOP的其它概念 589
36.1 友元函数 589
36.2 友元函数对程序语义的作用 591
36.3 友元函数与重载操作符 593
36.4 友元类 596
36.5 static类成员 597
36.6 this 599
第三十七章 C++的I/O流与文件管理 602
37.1 流类的结构 602
37.2 设备操作符 603
37.3 ostream成员函数应用实例 605
37.4 istream成员函数应用实例 605
37.5 C++的文件管理 608
37.6 命令行参数 618
37.7 DOS设备文件 619
37.8 <<与>>的重载函数 621
37.9 综合应用实例 623
第三十八章 Microsoft类库(MFC) 626
38.1 建立面向DOS的类库文件 626
38.2 设置参数 627
38.3 CString类 628
38.4 CTimc类 630
38.5 CTimeSpan类 630
38.6 CByteArray类 632
38.7 CWordArray类 633
38.8 CStringArray类 634
38.9 CStringList类 635
38.10 CObList类 637
38.11 CMapStringToOb类 639
38.12 CMapStringToString类 641
第三十九章 QuickWin应用程序设计 643
39.1 一个QuickWin程序 643
39.2 一个简单的绘图程序 644
39.3 __wabout() 645
39.4 不同类型的窗口 645