COBOL 教程

                                

 

目录

 

CHAPTER  1 COBOL 概述

CHAPTER  2 过程部初步

CHAPTER  3 标识部和环境部

CHAPTER  4 数据部之一

CHAPTER  5 过程部之二

CHAPTER  6 过程部之三

CHAPTER  7 各部之间的关系及程序举例

CHAPTER  8 联机及批量程序的一些差异

CHAPTER  9 COBOL 编程规范

 

CHAPTER 1 COBOL 概述

 

COBOL Common Business Oriented Language 的缩写。它不仅是商业数据处理的理想语言,

而且广泛用于数据管理领域,因此COBOL 语言也被称为用于管理的语言

 

一。COBOL 语言的特点

       最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑  关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。

 

二。COBOL的组成部分:

1。标识部(IDENTIFICATION DIVISION):用于标识程序名。

2。环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。

3。数据部(DATA DIVISION):用于说明程序中涉及的所有数据。

4。过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。

 

三。最简单的COBOL 程序举例:

COL 1 ---6    7        8       12---72 73---80

                                 IDENTIFICATIONDIVISION

                                 PROGRAM-ID PSAMPLE1

                                 ENVIRONMENTDIVISION

                                 DATA DIVISION

                                 PROCEUREDIVISION

       DISPLAY ‘THIS IS A COBOL PROGRAM.’

                                           STOP RUN

 

 

四。COBOL 源程序的书写格式:

      1 6 列为标号区       7列为续行标志区

      8至此11列,称为“A。程序中有些内容如部头,节头,段头,层号 01,层号 77 及文件

描述符FD等应从A区开始写。

       12至此72列,称为“B。写程序中的正文部分。如过程部中的句子只能从B区开始写。

      7380列,称为注释区

 

五。COBOL字符集包括:

 

      数字0 --- 9 ,字母 A--- Z a --- z , 专用字符:-  * / = , . ; ‘ ( ) < > $ 及空格。属于系统字符集而不属于COBOL字符集的字符只能出现    COBOL 程序中的字符串里。

 

六。常量:

 

       COBOL 常量分为数值常量(如 100-29),非数值常量(如 ‘ABC’ )和表意常量(如 ZEROSPACEHIGH-VALUELOW-VALUE QUOTE ALL 常量)。

 

七。COBOL 所处理的数据的特点

      层次的概念:数据间存在的从属关系。

      文件的概念:多个记录可以组成一个文件。

 

      记录的概念:具有一定层次关系的一组数据项的最大集合,它是内存中具有独立逻辑含义的最大存取项,具有最高层次。

 

 

CHAPTER 2 过程部初步-----最基本的过程部语句

 

一。输入输出语句。

1ACCEPT语句:直接从终端键盘或系统指定的输入设备上输入数据。

    ACCEPT   标识符 [FROM 助忆名]

注:A。标识符(identifier)指的是能唯一地标识一个数据项的数据名,不能唯一地标识一个

              数据项的数据名不是标识符。标识符可以是组合项。

       B。在ACCEPT语句中如不写FROM部分,如ACCEPT  ,则表示从系统隐含指定的

               设备上读入一个数据给A如果不想从指定的设备上输入,则要用FROM 选项,

               这时助忆名需要在环境部中事先说明和那种外部设备相联系。如:

ENVIRONMENT    DIVISION。(环境部)

CONFIGRATION  SECTION。(配置节)

SPECIAL-NAMES。(专用名段)

CONSOLE  IS  ABC

如在过程部中有 ACCEPT T  FROM ABC则表示要从控制台接收数据

2DISPLAY语句:从计算机内存中输出到某一指定的输出设备上。

    DISPLAY  { 标识符1,常量1}[标识符2,常量2]。。。[UPON 助忆名]

                       标识符和助忆名的说明同上)

    ACCEPT语句和DISPLAY语句不必定义文件适用于少量的数据输入输出。

3READ语句:COBOL语言中数据的输入输出主要是通过对外部文件的读写进行的。READ 语句就是从外部文件上读入数据输出到程序中的数据项中。在程序中用到的所有文件都需要在环境部中指定程序中用到的文件名与实际外部文件的联系。数据部也要对文件加以描述。指定数据结构各数据项所占的内存单元长度以及数据形式。

    COBOL 的存取是以文件为对象以记录为单位的。

READ语句的最简单的格式为: READ 文件名 

 

 

 ENVIRONMENT DIVISION

 INPUT-OUTPUT SECTION

 FILE-CONTROL

         SELECT      IN-FILLE    ASSIGN TO      外部文件名。

为了存储读入的记录,必须在内存开辟一个与文件记录长度相等的存储区,即输入文件纪录区。每一个输入文件都有相应的输入文件纪录区,与之一一对应。亦即在数据部中描述文件的数据结构。

3READ语句:

 

    假设   IN-FILE  文件每一记录中包含的内容为:产品代码,产品数量,产品单价,生产日期。设某一记录的具体数据

    如下:0  1 0  0  1  0  0 0  0  0 1  0  0 0  1  9 9  9  0 3  2  2

                 prodcode    quantity        price               year      mon day

    如果我们希望读入该记录并对各数据项进行处理,则需要在  输入纪录区中划分出各数据项,以便存放相应的数据。定义输入纪录区以及划分记录区中各数据项的工作是由数据部来完成的。下面我们简单介绍数据部定义记录区方法,针对上面输入数据的特点,我们可以在数据部中对记录区作如下描述:

 DATA DIVISION

 FD    IN-FILE   LABLE    RECORD IS   STANDARD

 01     IN-RECORD   (定义记录区名为IN-RECORD

          02     PROD-CODE PIC   94)。

          02     PROD-QUANTITY PIC   95)。

          02     PROD-PRICE PIC   96)。

          02     MANU-DATE。(生产日期为一组合项)

                    05   DATE-CCYY PIC   94)。

                    05   DATE-MM PIC  92)。

                    05   DATE-DD PIC  92)。

 

其中,FD FILE DESCRIPTION,表示从该行起是文件描述体

LABLE RECORD IS STANDARD :所有的磁盘文件和磁带文件都必须写明此句。

01 层定义输入纪录区的名字为IN-RECORD,由于 01层属于FD描述体,因此也就指定了 IN-RECORD IN-FILE 的关系。亦即从IN-FILE 读入的数据存放在 IN-RECORD记录区中。

这样,在执行一次READ语句后,文件中一个记录的数据便输入到内存记录区,按排列顺序分别送到记录区中各数据项中。注意文件的各记录中的数据是不分数据项的,只是按一定的顺序把数据存放在各字节中。所以数据部对记录区中各数据项的描述应该与文件的记录中各数据排列次序和长度相一致。

 

READ 语句的一般形式:READ    文件名   RECORD[INTO  标识符[AT   END  执行语句] 例如:

     READ  IN-FILE   INTO TEMP-RECORD   AT END   STOP  RUN  该语句除了将读到的数据传送到IN-RECORD之外,还传送到TEMP-RECORD中。在遇到文件尾时,程序结束运行。

 

4WRITE语句:将内存中的数据输出到外部设备,主要是由WRITE 语句来完成的。WRITE语句的最简单的格式为:

     WRITE        记录名(注意WRITE语句的操作对象是记录,所以是记录名而不是文件名 

    与输入文件相似输出文件也要在环境部中指定所对应的实际存在的外部文件:

 ENVIRONMENT DIVISION

 INPUT-OUTPUT SECTION

 FILE-CONTROL

         SELECT      OUT-FILLE    ASSIGN TO      打印机名。

也要在数据部中定义输出记录区:

 DATA DIVISION

 FD    OUT-FILE   LABLE    RECORD IS   OMITTED

 01     OUT-RECORD  

          02     PROD-CODE PIC   94)。

          02     PROD-QUANTITY PIC   95)。

          02     PROD-PRICE PIC   96)。

          02     MANU-DATE

                    05   DATE-CCYY PIC  94)。

                    05   DATE-MM PIC  92)。

                    05   DATE-DD PIC  92)。

LABLE RECORD IS OMITTED :凡输出设备是打印机的都必须写明此句。如输出设备是磁盘,则仍用LABLE RECORD IS STANDARD

01 层定义输出纪录区的名字为OUT-RECORD,由于 01层属于FD描述体,因此也就指定了

OUT-RECORD OUT-FILE 的关系。

 

 

在用WRITE 语句输出一个记录之前,应向输出记录区传送数据。如已将数据传送到上述各数据项中,则在执行 W RITE  OUT-RECORD 语句后,则记录区中的数据通过打印机打印出来。

 

 

WRITE 语句的一般形式:                     标识符 2 LINE

                      BEFORE                   整数 LINES

      WRITE     记录名 [FROM  标识符 1 ]      AFTER         ADVANCING          助忆名  

                      PAGE

5OPEN语句:程序中如果需要读写文件,则该文件必须先用OPEN语句打开,系统在执行READWRITE以前先检查该文件是否已在规定的外部设备上准备就绪。

     OPEN语句的一般格式为:

 

 INPUT 文件名1 [,文件名2]。。。

 OPEN   OUTPUT 文件名3 [,文件名4]。。。    。。。

6CLOSE语句:当对一个文件的读或写的操作已完成,就应关闭该文件。

     CLOSE语句的一般格式为: 

 CLOSE 文件名 1   [,文件名2]。。。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值