第一章 引论 1
1.1 数据处理简介 1
1.2 COBOL语言的产生与发展 2
1.3 COBOL语言的特点 3
1.4 COBOL程序的编译与运行 5
第二章 COBOL源程序 7
2.1 程序的词义 7
2.1.1 名词解释 7
2.1.2 格式中使用的符号 7
2.1.3 字符集 8
2.2 源程序的格式 8
2.3 程序结构 12
2.4 语言结构 13
2.4.1 分隔符 14
2.4.2 COBOL字 15
2.4.3 常字 18
2.5 算术表达式 18
2.5.1 算术表达式的形成规则 18
2.5.2 表达式求值 20
2.6 条件表达式 22
2.6.1 简单条件 22
2.6.2 组合条件 24
第三章 数据描述的概念 27
3.1 数据的描述 27
3.1.1 记录与文件的概念 27
3.1.2 数据的层次 27
3.1.3 表格的操作 28
3.1.4 数据类型 30
3.1.5 字符表示和基数的选择 30
3.1.6 代数符号 31
3.2 数据项和表的引用 31
3.2.1 用户定义字的限定 31
3.2.2 表项的标识 33
3.2.3 标识符的定义 36
第四章 标识部 38
第五章 环境部 39
5.1 配置节 40
5.2 输入输出节 45
第六章 数据部 54
6.1 数据部结构 54
6.2 文件节 55
6.2.1 文件描述体 56
6.2.1.1 BLOCK CONTAINS子句 56
6.2.1.2 CODE-SET子句 57
6.2.1.3 RECORD CONTAINS子句 58
6.2.1.4 LABEL RECORD子句 58
6.2.1.5 VALUE OF子句 59
6.2.1.6 DATA RECORD子句 60
6.2.1.7 LINAGE子句 61
6.2.2 记录描述体 62
6.2.2.1 BLANK WHEN ZERO子句 65
6.2.2.2 JUSTIFIED子句 65
6.2.2.3 OCCURS子句 66
6.2.2.4 PICTURE子句 69
6.2.2.5 REDEFINES子句 76
6.2.2.6 SIGN子句 79
6.2.2.7 SYNCHRONIZED子句 80
6.2.2.8 USAGE子句 82
6.2.2.9 VALUE子句 84
6.2.2.10 RENAMES子句 87
6.2.2.11 CONDITION-NAME VALUE子句 89
6.3 工作存贮节 91
6.4 连接节 92
第七章 过程部 94
7.1 算术语句 95
7.1.1 ADD(加)语句 96
7.1.2 SUBTRACT(减)语句 98
7.1.3 MULTIPLY(乘)语句 100
7.1.4 DIVIDE(除)语句 101
7.1.5 COMPUTE(计算)语句 103
7.2 数据传送语句 103
7.2.1 MOVE(传送)语句 103
7.2.2 INSPECT(检验)语句 109
7.2.3 STRING(联串)语句 116
7.2.4 UNSTRING(拆串)语句 118
7.3 控制语句 123
7.3.1 GOTO(转向)语句 123
7.3.2 ALTER(变更)语句 125
7.3.3 PERFORM(执行)语句 125
7.3.4 STOP(停)语句 131
7.3.5 IF(条件)语句 133
第八章 输入输出语句与USE语句 135
8.1 ACCEPT(接受)语句 135
8.2 DISPLAY(显示)语句 137
8.3 OPEN(打开)语句 137
8.4 CLOSE(关闭)语句 139
8.5 READ(读)语句 141
8.6 WRITE(写)语句 145
8.7 REWRITE(重写)语句 150
8.8 START(起始)语句 152
8.9 DELETE(删除)语句 155
8.10 USE(使用)语句 156
第九章 程序设计的策略和风格 159
9.1 结构程序设计 159
9.1.1 结构程序设计基础 156
9.1.2 结构程序设计在COBOL中的实现 163
9.2 程序设计的目标 164
9.3 COBOL程序设计实践 166
9.4 程序设计实例——两个文件的合并 169
第十章 表处理 174
10.1 概述 174
10.2 表的定义 174
10.3 表的结构与描述 175
10.4 可变长表 181
10.5 下标与变址 181
10.6 SET语句 185
10.7 表的检索 186
10.7.1 SEARCH语句格式之一 187
10.7.2 SEARCH语句格式之二 191
10.8 散列表 194
10.9 往表中读数 197
第十一章 磁带和磁盘顺序文件 206
11.1 磁带 206
11.2 程序实例——建立一个带文件 207
11.3 磁盘 210
11.4 程序实例——建立一个盘文件 211
11.5 变长记录 213
第十二章 分类与合并 216
12.1 分类、合并功能 216
12.2 分类、合并功能有关的语句形式 218
12.2 分类语句 219
12.4 合并语句 220
12.5 一个程序实例 222
第十三章 索引文件处理 225
13.1 索引顺序存取方法(ISAM) 225
13.2 设计一个索引文件 228
13.3 虚拟存贮存取方法(VSAM) 235
13.4 设计一个VSAM文件 237
第十四章 相对文件处理 243
14.1 相对文件的设计 243
第十五章 报表生成 250
15.1 报表文件 250
15.1.1 文件描述的结构 250
15.1.2 报表子句 251
15.2 专用寄存器 251
15.2.1 页计数器 251
15.2.2 行计数器 252
15.3 报表节 252
15.3.1 报表描述项 252
15.3.1.1 CODE子句 253
15.3.1.2 CONTROL子句 253
15.3.1.3 PAGE子句 254
15.3.2 报表栏描述项 256
15.3.2.1 LINE NUMBER子句 259
15.3.2.2 NEXT GROUP子句 260
15.3.2.3 TYPE子句 260
15.3.2.4 BLANK WHEN ZERO子句 266
15.3.2.5 COLUMN NUMBER子句 267
15.3.2.6 GROUP INDICATE子句 267
15.3.2.7 JUSTIFIED RIGHT子句 268
15.3.2.8 PICTURE子句 268
15.3.2.9 SOURCE子句 268
15.3.2.10 SUM子句 268
15.3.2.11 VALUE子句 270
15.3.2.12 USAGE子句 270
15.4 过程部的语句 271
15.4.1 INITIATE语句 271
15.4.2 GENERATE语句 271
15.4.3 TERMINATE语句 272
15.4.4 SUPPRESS语句 273
15.4.5 USE语句 273
15.5 二个实例 274
第十六章 内部程序通讯 287
16.1 被调用的COBOL程序 287
16.2 CALL(调用)语句 288
16.3 ENTER(入口)语句 289
16.4 EXIT(出口)语句 290
16.5 CANCEL(取消)语句 291
16.6 实例 291
第十七章 库功能 298
17.1 COPY(拷贝)语句 298
17.2 实例 300
第十八章 分段功能 302
18.1 程序分段概述 302
18.2 程序分段的结构 302
18.3 段限 303
18.4 对程序流的限制 303
第十九章 调试模块 305
19.1 调试模块的功能 305
19.2 开关和调试行 305
19.3 调试语句 306
第二十章 通讯 309
20.1 通讯概念 309
20.1.1 通讯功能 309
20.1.2 通讯环境 309
20.1.3 调用COBOL目标程序的方法 310
20.1.4 信息和队的概念 311
20.2 通讯节 313
20.2.1 CD输入区 314
20.2.2 CD输出区 318
20.3 通讯功能语句 321
20.3.1 ACCEPT语句 321
20.3.2 DISABLE语句 321
20.3.3 ENABLE语句 322
20.3.4 RECEIVE语句 323
20.3.5 SEND语句 324
附录一 事务处理程序实例 327
1.编制银行本利对照表 327
2.计算推销员提成费并打印报表 331
3.处理银行各种业务 338
4.为某百货公司结算代销服务费和欠款总额 346
5.建立职工薪金文件 352
附录二 COBOL语句格式 355
附录三 COBOL保留字 372
参考资料 375
图2-1 程序纸的格式 10
图2-2 程序行各区界划分 9
图2-3 语句结构 14
图6-1 编辑与不同数据的组合 71
图6-2 使用+,-,,,。的例子 72
图6-3 使用B和/及其它符号组合的例子 72
图6-4 使用*的例子 73
图6-5 使用$的例子 73
图6-6 使用CR和DB的例子 73
图6-7 不同字符的组合 73
图7-1 PERFORM语句流程图 132
图9-1(a) 顺序结构 161
图9-1(b) 选择结构 161
图9-1(c) 重复结构 161
图9-2(a) 一个选择结构,一个重复结构和一个顺序结构 162
图9-2(b) 三个选择结构和一个顺序结构 162
图9-4 两个文件合并的主例行程序流程图 173
图10-1 SEARCH语句(格式1)流程图 189
图10-2 SEARCH语句(格式2)流程图 192
图11-1 磁带上记录的安排 206
图11-2 带记录不分块 206
图11-3 带记录分块 207
图11-4 磁盘读/写设备 210
图11-5 盘片和盘道 211
图13-1 分块和不分块关键字 226
图13-2 柱面索引 226
图13-3 柱面-120的磁道索引 226
图13-4 磁道索引和记录关键字 227
图13-5 增加三个记录的磁道索引 228
图13-6 磁道索引和溢出链 228
图13-7 VSAM控制区道 236
图13-8 顺序关键字数据集结构 236
图13-9 控制区道的拼合 237
图15-1 PAGE子句的区域示意图 256
图20-1 COBOL通讯环境 310
图20-2 队的层次 312
图附录1-1 银行本利对照程序框图 328
图附录1-2 推销员提成费程序框图 332
图附录1-2 推销员提成费程序框图(续) 333
图附录1-3 银行业务处理程序框图 340
图附录1-3 银行业务处理程序框图(续) 341
图附录1-4 百货公司结算代销服务费和欠款总额程序框图 347
图附录1-5 职工薪金文件程序框图 353
表2-1 象征常数 17
表2-2 算术表达式中符号的组合 20
表2-3 关于运算量的计算 21
表2-4 关于条件表达式的比较 23
表2-5 条件逻辑运算符和括号组合 26
表3-1 数据项的类和类型的关系 30
表6-1 各种符号的组合规则 75
表6-2 数据项的内部表示 84
表7-1 MOVE语句操作类型 109
表20-1 INPUT CD区通讯状态键字条件码 317
表20-2 CD输入区的用法 318
表20-3 OUTPUT CD区STATUS KEY代码 320
表20-4 CD输出区的用法 321