精通cobol--9.6.1 如何定义用于直接查找的表

  在使用表进行数据查找时,首先应明确数据编号这个概念。数据编号是由人为指定的,用于代表相应数据的一种编号。编号通常为数字形式,也可看作一项数据,并不等同于下标。

用于直接查找的表中数据的编号和存储位置是相同的,因此在定义该表中不必指定数据编号。数据的编号直接由其所在位置确定。因此,定义用于直接查找的表时往往只用包含一个条目,即数据的条目。例如,对于一个大学里全体人员的管理系统,可简单的将各人员的数据定义如下。

01  UNI-ROLE-TABLE.             

    05  ROLE          PIC X(10)                     /*大学里各人员对应的角色*/

                        OCCURES 8 TIMES.           /*共有8种不同的角色*/

在实际应用中,还需将该表进行初始化。这里可通过上节所讲到的任意一种初始化表的方法进行初始化。即硬性编码方式或输入载入方式。不妨假设没有对应的输入加载数据文件,则可通过硬性编码方式初始化表,代码如下。

01  UNI-ROLE-VALUES. 

05  FILLER      PIC X(10)    VALUE  ‘FRESHMAN’.

05               PIC X(10)    VALUE  ‘SOPHOMORE’.

05               PIC X(10)    VALUE  ‘JUNIOR’.

05               PIC X(10)    VALUE  ‘SENIOR’.

05               PIC X(10)    VALUE  ‘MASTER’.

05               PIC X(10)    VALUE  ‘DOCTOR’.

05               PIC X(10)    VALUE  ‘FACULTY’.

05               PIC X(10)    VALUE  ‘STAFF’.

01  UNI-ROLE-TABLE  REDEFINES  UNI-ROLE-VALUES.

    05   ROLE      PIC X(10)     OCCURS 8 TIMES.

初始化后的表结构如表所示。

  大学全体人员表

Freshman

Sophomore

Junior

Senior

Master

Doctor

Faculty

Staff

以上表格所包含的内容,从上到下依次为:大一学生、大二学生、大三学生、大四学生、研究生、博士生、全体教员和全体职员。其中每项数据所在表中的编号和其存储位置都是一一对应的。并且编号从数字1开始。例如,大一学生对应的编号为1,大二学生对应的编号为2,等等。

你可能感兴趣的:(精通cobol--9.6.1 如何定义用于直接查找的表)