第一篇 C语言程序设计基础 2
第一章 Borland C++系统简介 2
1.1 C语言的历史 2
1.2 C语言的未来 2
1.3 C++语言的历史与未来 2
1.4 Borland C++系统 3
1.5 安装Borland C++软件 4
1.6 C和C++程序设计语言的开发过程 11
1.6.1 规划程序 13
1.6.2 程序的编辑 14
1.6.3 程序的编译与运行 21
1.6.4 退出Borland C++集成环境 25
1.6.5 检查A:\CH1子目录 25
1.6.6 编译出错的情形 26
1.6.7 另一种编译、链接和运行程序的方式 28
1.6.8 C语言程序main结构的分析 29
1.6.9 C语言程序的解释 31
1.6.10 C++语言与C语言在编译上的差异 33
1.7 Borland C++集成环境的几个常用功能 36
1.7.1 Esc键 36
1.7.2 清除窗口内容 37
1.7.3 打开文件 38
第二章 C语言数据处理的基本概念 43
2.1 变量名称的使用 43
2.2 变量的声明方式 44
2.3 基本数据类型 45
2.3.1 整数int 45
2.3.2 字符char 45
2.3.3 浮点数 46
2.3.4 字符串数据类型 47
2.4 常数的表达方式 47
2.4.1 整数常数 47
2.4.2 浮点常数 48
2.4.3 字符常数 48
2.4.4 字符串常数 48
2.5 基本算术运算 49
2.6 类型的转换 51
2.7 特殊表达式 52
2.7.1 递增和递减表达式 52
2.7.2 设置特殊表达式 53
22.7.3 sizeof 54
第三章 基本输入输出 55
3.1 printf() 55
3.1.1 C语言的控制字符\n 56
3.1.2 %d:打印十进制整数 57
3.1.3 %f浮点数的打印 59
3.1.4 %c字符的打印 60
3.1.5 其他格式化数据的打印 65
3.2 scanf() 67
3.3 字符输入和输出函数 69
第四章 程序的流程控制 77
4.1 关系操作符与逻辑操作符 77
4.2 for语句 78
4.3 while语句 86
4.4 do-while语句 93
4.5 if语句 96
4.6 else-if语句 104
4.7 e1?e2:e3特殊表达式 107
4.8 switch语句 108
4.9 break语句 111
4.10 continue语句 113
4.11 goto语句 114
第五章 数组和指针 116
5.1 一维数组 116
5.2 二维数组 122
5.3 指针的基本概念 126
5.4 指针和数组的混合应用 130
第六章 函数的应用 155
6.1 函数的定义 155
6.2 主程序函数的位置 158
6.3 函数的返回值return 158
6.4 数组数据的传递 161
6.5 指针的传递 166
6.6 递归函数的调用 169
6.7 新的ANSI函数声明 171
6.8 简单数学函数的使用 173
6.8.1 exp函数 174
6.8.2 log函数 174
6.8.3 log10函数 174
6.8.4 sqrt函数 174
6.8.5 floor函数 176
6.8.6 ceil函数 176
6.8.7 fabs函数 176
6.8.8 hypot函数 177
6.8.9 pow函数 178
6.8.10 三角函数 178
第七章 变量的类型 180
7.1 auto 180
7.2 static 182
7.3 external 185
7.4 static external 195
7.5 register 195
第八章 C语言预处理程序 197
8.1 #define宏指令 197
8.2 #include功能 201
8.3 条件编译 203
8.3.1 #if 203
8.3.2 #endif 203
8.3.3 #else 203
8.3.4 #ifdef 204
8.3.5 #ifndef 204
8.3.6 #undef 204
第九章 用户自定义数据类型 206
9.1 typedef 206
9.2 结构数据类型 207
9.3 结构数据与数组 212
9.4 嵌套结构 214
9.5 结构数据与函数 215
9.6 UNION 219
9.7 enum 221
第十章 字符串的彻底剖析 224
10.1 由字符所组成的一维数组 224
10.2 字符串的应用 227
10.2.1 构成字符串的基本要素 227
10.2.2 标准字符串输出 230
10.2.3 标准字符串的输入 231
10.3 字符串与指针 233
10.4 gets()和puts()函数 234
10.4.1 gets() 234
10.4.2 puts() 237
10.5 C语言中的字符串处理函数 239
10.5.1 strcat() 239
10.5.2 strcmp() 240
10.5.3 strcpy() 241
10.5.4 strlen() 243
10.5.5 strncat() 244
10.5.6 strncmp() 244
10.5.7 strncpy() 245
10.6 字符串数组 246
10.7 指向字符串数组的指针 248
10.8 命令行参数 250
第十一章 基本位运算 252
11.1 &操作符 252
11.2 |操作符 254
11.3 ^操作符 255
11.4 ~操作符 257
11.5 <<操作符 258
11.6 >>操作符 259
11.7 位字段 260
第十二章 测试符号与符号转换函数 262
12.1 isalnum() 262
12.2 isalpha() 262
12.3 isascii() 263
12.4 iscntrl() 264
12.5 isdigit() 265
12.6 isgraph() 265
12.7 islower() 266
12.8 isprint() 267
12.9 ispunct() 268
12.10 isspace() 268
12.11 isupper() 269
12.12 isxdigit() 270
12.13 tolower() 271
12.14 toupper() 271
第十三章 文件的输入与输出 272
13.1 有缓冲区的输入与输出函数 272
13.1.1 fopen() 273
13.1.2 fclose() 274
13.1.3 putc() 275
13.1.4 getc() 276
13.1.5 fprintf() 280
13.1.6 fscanf() 281
13.1.7 feof() 283
13.1.8 ferror() 283
13.1.9 fwrite() 284
13.1.10 fread() 285
13.1.11 fseek() 286
13.1.12 rewind() 288
13.2 Borland(Turbo)C++的缺省文件指针 289
13.3 文本方式和二进制方式的差异 292
13.4 无缓冲区的输入与输出 293
13.4.1 open() 293
13.4.2 close() 294
13.4.3 read() 295
13.4.4 write() 296
13.4.5 lseek() 298
13.5 Borland(Turbo)C++缺省的文件句柄 299
第十四章 文件及目录管理 301
14.1 文件的删除 301
14.1.1 remove() 301
14.1.2 unlink() 302
14.2 文件名的更改 303
14.3 文件的存取模式 304
14.3.1 access() 304
14.3.2 chmod() 305
14.4 计算文件长度 306
14.5 子目录的建立 307
14.6 删除子目录 308
14.7 获得当前目录路径 309
14.8 更改当前工作目录 309
第十五章 了解其它常用函数 311
15.1 数据转换函数 311
15.1.1 atof() 311
15.1.2 atoi() 312
15.1.3 atol() 313
15.1.4 gcvt() 313
15.1.5 itoa() 314
15.1.6 ltoa() 315
15.2 随机数函数 316
15.2.1 rand() 316
15.2.2 random() 318
第二篇 C语言数据结构 321
第十六章 基本的链表结构 321
16.1 动态数据结构的声明 321
16.2 内存的分配 321
16.3 链表的基本操作 324
16.4 链表的连接 327
16.5 链表内节点的删除 331
16.6 释放内存空间 334
16.7 节点的插入 337
16.8 双向链表 341
第十七章 堆栈与队列 344
17.1 堆栈 344
17.2 队列 349
第十八章 二叉树 354
18.1 二叉树的节点结构 354
18.2 二叉树的建立 355
18.3 二叉树的打印 356
18.3.1 中序方式 356
18.3.2 前序打印方式 360
18.3.3 后序打印方式 363
第三篇 DOS系统程序设计 368
第十九章 美妙的音乐 368
19.1 时间延迟的概念 368
19.1.1 sleep() 368
19.1.2 delay() 369
19.2 声音的产生 370
19.2.1 sound() 370
19.2.2 nosound() 370
19.3 美妙的音乐 372
第二十章 DOS系统时间 377
20.1 time() 377
20.2 ctime() 377
20.3 localtime() 378
20.4 asctime() 378
20.5 gmtime() 379
20.6 difftime() 380
20.7 clock() 381
第二十一章 识别键盘 383
21.1 kbhit() 383
21.2 识别键盘代码 383
21.2.1 键盘普通码 383
21.2.2 键盘的扩充键 384
第二十二章 文本方式的屏幕控制 389
22.1 屏幕的清除 389
22.2 移动光标 389
22.3 设置光标的外形 395
22.4 clreol() 396
22.5 删除光标所在行 398
22.6 窗口的建立 400
22.7 适用于窗口的输入/输出函数 402
22.8 窗口文本和背景颜色的设置 404
22.9 存储和装入文本 412
第二十三章 游戏专辑 417
23.1 “洪锦魁”图案 417
23.2 猜“洪锦魁” 437
第二十四章 计算机绘图 450
24.1 图形方式的设置 450
24.2 检测所使用的屏幕的最大水平及垂直坐标 452
24.3 绘制直线的函数 452
24.3.1 line() 452
24.3.2 用相对坐标画线的图形函数 453
24.4 图形函数的使用 457
24.4.1 circle() 457
24.4.2 ellipse() 458
24.4.3 arc() 460
24.4.4 rectangle() 462
24.4.5 drawpoly() 465
24.5 填充区间函数 467
24.5.1 fillpoly() 467
24.5.2 floodfill() 469
24.5.3 fillellipse() 470
24.6 颜色及填充图案 471
24.6.1 前景及背景颜色 471
24.6.2 填充图案 474
24.6.3 线条的设置 475
24.7 条形图的绘制 477
24.7.1 bar() 477
24.7.2 bar3d() 478
24.8 点绘图 479
24.9 动画设计 481
24.9.1 setcolor(BLACK) 482
24.9.2 cleardevice() 483
24.9.3 存取屏幕方式 484
24.10 图形方式下字符串的输出 485
24.10.1 outtextxy() 485
24.10.2 outtext() 487
24.10.3 settextstyle() 488
第二十五章 DOS和BIOS系统调用 490
25.1 IBM PC内部结构 490
25.1.1 通用寄存器 491
25.1.2 指针和变址寄存器 491
25.1.3 段寄存器 492
25.1.4 指令指针寄存器和状态标志寄存器 492
25.2 DOS和BIOS系统调用的基本概念 494
25.3 DOS系统调用 496
25.3.1 bdos() 496
25.3.2 intdos() 497
25.3.3 intdosx() 499
25.4 BIOS系统调用 502
25.4.1 int86() 502
25.4.2 int86x() 503
25.5 鼠标的控制 505
25.5.1 功能0 505
25.5.2 功能1 506
25.5.3 功能2 507
25.5.4 功能3 508
25.5.5 功能4 513
25.5.6 功能5 514
25.5.7 功能6 516
25.5.8 功能7 518
25.5.9 功能8 520
25.5.10 功能9 522
25.2.11 功能10 526
25.5.12 功能11 529
25.5.13 功能15 530
25.5.14 综合实例应用 531
第四篇 C++语言与OOP 549
第二十六章 C++语言和C语言的区别 549
26.1 C++语言的扩展文件名 549
26.2 函数的引用 549
26.3 程序的注释 550
26.4 C++语言新增加的输入与输出 550
26.4.1 cout 551
26.4.2 cin 555
26.4.3 cerr和clog 557
26.5 变量的声明 558
26.6 动态数据声明 558
26.7 const操作符 559
26.8 作用域访问操作符 560
26.9 struct 561
26.10 enum 562
26.11 类型转换 563
26.12 C++语言函数的规则 564
26.13 C++语言函数的声明 565
26.14 初始化函数参数值 567
26.15 函数重载 568
26.16 inline操作符 569
26.17 函数地址的传送 570
26.18 new和delete 573
第二十七章 类 576
27.1 类的定义 576
27.2 对象 577
27.3 构造函数和析构函数 579
27.4 构造函数的参数传递 582
27.5 友元函数 585
27.6 结构和类 587
27.7 再论inline操作符 589
27.8 类的继承 591
27.9 类的多重继承特性 593
27.10 函数调用与对象的传递 597
27.11 对象数组 599
27.12 对象指针 600
第二十八章 函数和操作符重载 603
28.1 函数重载与构造函数 603
28.2 动态数据声明与构造函数 604
28.3 this关键字 605
28.4 操作符重载 607
28.5 友元函数与操作符重载函数 611
28.6 地址概念与操作符重载函数 615
28.7 输入/输出流 618
28.7.1 设计<<操作符重载函数 618
28.7.2 设计>>操作符重载函数 620
第二十九章 虚拟函数与多态 623
29.1 指针与派生类 623
29.2 虚拟函数的概念 625
29.3 虚拟函数的基本功能 629
29.4 纯虚拟函数 634
29.5 派生类的构造和析构函数 637