第一篇 程序库设计基础知识 1
第一章 程序库及程序库单元的概念和构造 5
1.01 什么是程序库 5
1.02 什么是程序库单元 6
1.03 程序库单元的构造 8
第二章 程序库单元的设计方法 11
2.01 如何设计程序库单元 11
2.02 编程中良好的书写风格 12
2.03 两个简单的程序库单元 14
程序清单2.1 常用数据类型程序库DATATYPE.PAS 15
程序清单2.2 通用操作程序库GENERAL.PAS 16
第三章 程序库单元的使用方法 24
3.01 程序库单元的编译 24
3.02 程序库单元的调用 24
3.04 驻留单元与非驻留单元 25
3.03 程序库单元的维护 25
3.05 标准程序库单元 26
第二篇 实用程序库 29
第四章 屏幕管理 31
4.01 基本屏幕管理 31
4.02 二种直接写屏方式 34
4.03 一个中文屏幕管理程序库 38
程序清单4.1 基本屏幕管理程序库SCREEN00.PAS 39
程序清单4.2 显式直接写屏程序库WSCREEN0.PAS 46
程序清单4.3 隐式直接写屏程序库WSCREEN1.PAS 56
程序清单4.4 中文屏幕管理程序库CCSCREEN.PAS 65
第五章 键盘输入 84
5.01 键盘字符串输入 84
5.02 键盘数字输入 84
程序清单5.1 字符串输入编辑程序库INPUTSTR.PAS 85
程序清单5.2 键盘数字输入程序库INPUTNUM.PAS 91
6.01 通用字符串操作 97
第六章 字符串 97
6.02 超长字符串操作及其应用 101
6.03 字符串“单词”操作 105
6.04 简单的文本模式匹配 107
程序清单6.1 通用字符串操作程序库COMNSTR0.PAS 112
程序清单6.2 超长字符串操作程序库SUPERSTR.PAS 132
程序清单6.3 超长字符串集合程序库LSTRSETS.PAS 153
程序清单6.4 字符串“单词”操作程序库WORDS.PAS 162
程序清单6.5 文本模式匹配程序库MINIGREP.PAS 172
程序清单6.6 文本模式匹配演示程序GREPDEMO.PAS 182
第七章 排序 187
7.01 排序方法讨论 187
7.02 插入排序 190
7.03 SHELL排序 191
7.04 快速排序 192
7.05 基数排序 193
7.06 升序与降序 194
7.07 文本文件排序 194
程序清单7.1 SHELL排序程序库1 SHLSORT1.PAS 196
程序清单7.2 SHELL排序程序库1 SHLSORT2.PAS 197
程序清单7.3 常用排序程序库SORTLIB.PAS 199
程序清单7.4 排序演示程序SORTDEMO.PAS 207
第八章 查找 214
8.01 对无序数组的试探式查找 214
8.02 对有序数组的二分法查找 215
8.03 索引顺序查找 215
8.04 散列查找 216
8.05 查找应用实例 218
程序清单8.1 常用查找方法程序库SERCHLIB.PAS 221
程序清单8.2 查找演示程序之一SHDEMO1.PAS 230
程序清单8.3 查找演示程序之二SHDEMO2.PAS 236
9.01 虚拟矩阵方法 242
第九章 关于数组的二个问题 242
9.02 稀疏矩阵方法 245
程序清单9.1 虚拟矩阵程序库VMATLIB.PAS 248
程序清单9.2 虚拟矩阵演示程序VMATDEMO.PAS 255
程序清单9.3 稀疏矩阵程序库SMATLIB.PAS 257
程序清单9.4 稀疏矩阵演示程序SMATDEMO.PAS 265
第十章 链表 269
10.01 链表程序库及其应用 269
10.02 簇状链表结构及其应用 278
10.03 链表和LISP表达式 280
程序清单10.1 通用链表操作程序库LISTLIB0.PAS 282
程序清单10.2 链表操作演示程序LDIR.PAS 301
程序清单10.3 链表演示用程序库LDIRLIB.PAS 305
程序清单10.4 簇状链表操作程序库CLISTLIB.PAS 307
程序清单10.5 簇状链表演示程序CDIR.PAS 313
程序清单10.6 链表与LISP表达式转换程序库LISPLIST.PAS 316
程序清单10.7 演示程序LISPDEMO.PAS 321
第十一章 栈 323
11.01 用数组实现的栈 323
11.02 用链表实现的栈 325
11.03 栈的一个应用实例 326
程序清单11.1 用数组实现栈的程序库ARRSTACK.PAS 328
程序清单11.2 用链表实现栈的程序库LSTSTACK.PAS 330
程序清单11.3 复数四则运算程序库CMPLXLIB.PAS 333
程序清单11.4 栈操作演示程序RPNDEMO.PAS 336
第十二章 二叉树 346
12.01 一般二叉树结构及程序库 346
12.02 平衡二叉树结构及程序库 349
程序清单12.1 通用二叉树程序库BTREELIB.PAS 353
程序清单12.2 平衡二叉树程序库ATREELIB.PAS 360
程序清单12.3 平衡二叉树演示用程序库ADIRLIB.PAS 373
程序清单12.2 平衡二叉树演示程序ADIR.PAS 380
第三篇 面向对象的程序库 383
第十三章 对向对象的程序设计方法 385
13.01 OO PASCAL初阶 385
13.02 继承、对象的扩充和多态性 389
13.03 信息隐蔽和模块化 398
13.04 数据抽象 404
13.05 OOP的前景 411
第十四章 面向对象的程序库 413
14.01 对象Base 413
14.02 对象Stream 413
14.03 DOS文件数据流对象DosStream 417
14.04 带缓冲功能的数据流对象BufStream 418
14.05 对象Node和对象List 420
14.06 用汇编语言实现的方法函数 422
14.07 一个简单的例子 423
程序清单14.1 基本对象类型程序库OBJECT.PAS 423
程序清单14.2 对象的演示程序ODEMO.PAS 434
程序清单14.3 汇编程序包含文件OBJECTS.INC 438
程序清单14.4 汇编程序源代码之一STREAM.ASM 440
程序清单14.5 汇编程序源代码之二DOSSTM.ASM 443
程序清单14.6 汇编程序源代码之三BUFSTM.ASM 449
第十五章 几个应用程序库实例 455
15.01 格式化输入程序库单元FORMS.PAS 455
15.02 电子游标程序库 459
15.03 一个简单的格式化编辑程序 459
15.04 实现卡片式文件对象的程序库单元 459
15.05 卡片式文件演示程序 459
15.06 卡片式文件生成程序 460
程序清单15.1 格式化输入程序库FORMS.PAS 460
程序清单15.2 电子游标程序库SLIDER.PAS 474
程序清单15.3 格式化编辑程序FDEMO.PAS 476
程序清单15.4 卡片式文件操作程序库CARDS.PAS 478
程序清单15.5 卡片式文件演示程序CARDFILE.PAS 481
程序清单15.6 卡片式文件生成程序CARDGEN.PAS 485