Advertisement
Guest User

Untitled

a guest
Jul 7th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 9.18 KB | None | 0 0
  1.  IDENTIFICATION DIVISION.
  2.  000002        PROGRAM-ID.    COB01E.
  3.  000003        AUTHOR.        ALEX EVANGELOU
  4.  000004        INSTALLATION.  LEARNQUEST
  5.  000005        DATE-WRITTEN.  JULY, 2017.
  6.  000006        DATE-COMPILED.
  7.  000007       ****************************************************************
  8.  000008       * CHANGE ALL OCCURRENCES OF E TO YOUR LETTER                  *
  9.  000009       ****************************************************************
  10.  000010       ****************************************************************
  11.  000011       *              PROGRAM COB01E                                 *
  12.  000012       ****************************************************************
  13.  000013       * THIS PROGRAM READS THE BONUS FILE AND WRITES IT OUT         *
  14.  000014       ****************************************************************
  15.  000015       *         E N V I R O N M E N T   D I V I S I O N             *
  16.  000016       ****************************************************************
  17.  000017        ENVIRONMENT DIVISION.
  18.  000018       *CONFIGURATION SECTION.
  19.  000019       *SOURCE-COMPUTER.  IBM.
  20.  000020       *OBJECT-COMPUTER.  IBM.
  21.  000021        INPUT-OUTPUT SECTION.
  22.  000022        FILE-CONTROL.
  23.  000023            SELECT INPUT-BONUS ASSIGN TO INBONUS
  24.  000024                   FILE STATUS IS WS-INBONUS-STATUS.
  25.  000025            SELECT OUTPUT-BONUS ASSIGN TO OUTBONUS
  26.  000026                   FILE STATUS IS WS-OUTBONUS-STATUS.
  27.  000027       ****************************************************************
  28.  000028       *         D A T A   D I V I S I O N                           *
  29.  000029       ****************************************************************
  30.  000030        DATA DIVISION.
  31.  000031        FILE SECTION.
  32.  000032       ****************************************************************
  33.  000033       *   INPUT-BONUS                                     INPUT     *
  34.  000034       ****************************************************************
  35.  000035        FD  INPUT-BONUS
  36.                    RECORDING MODE IS F
  37.  000037            LABEL RECORDS STANDARD
  38.  000038            RECORD CONTAINS 80 CHARACTERS
  39.                    BLOCK CONTAINS 0 RECORDS
  40.  000040            DATA RECORD IS IN-BONUS-REC.
  41.  000041        01  IN-BONUS-REC.
  42.  000042            05  IN-STATE-CODE                    PIC X(2).
  43.  000043            05  IN-LAST-NAME                     PIC X(20).
  44.  000044            05  IN-FIRST-NAME                    PIC X(15).
  45.  000045            05  IN-MID-INIT                      PIC X(1).
  46.  000046            05  IN-BONUS-AMT                     PIC 9(7)V99.
  47.  000047            05  IN-FED-EXEMPT-IND                PIC X(1).
  48.  000048            05  IN-ST-EXEMPT-IND                 PIC X(1).
  49.  000049            05  IN-FILLER                        PIC X(31).
  50.  000050       ****************************************************************
  51.  000051       *   OUTPUT-BONUS                                    OUTPUT    *
  52.  000052       ****************************************************************
  53.  000053        FD  OUTPUT-BONUS
  54.  000054            RECORDING MODE IS F
  55.  000055            LABEL RECORDS STANDARD
  56.  000056            RECORD CONTAINS 76 CHARACTERS
  57.  000057            BLOCK CONTAINS 0 RECORDS
  58.  000058            DATA RECORD IS OUT-BONUS-REC.
  59.  000059        01  OUT-BONUS-REC.
  60.  000060            05  OUT-STATE-CODE                   PIC X(2).
  61.  000061            05  OUT-LAST-NAME                    PIC X(20).
  62.  000062            05  OUT-FIRST-NAME                   PIC X(15).
  63.  000063            05  OUT-MID-INIT                     PIC X(1).
  64.  000064            05  OUT-BONUS-AMT                    PIC S9(7)V99 COMP-3.
  65.  000065            05  OUT-FED-EXEMPT-IND               PIC X(1).
  66.  000066            05  OUT-ST-EXEMPT-IND                PIC X(1).
  67.  000067            05  OUT-FILLER                       PIC X(31).
  68.  000068
  69.  000069        WORKING-STORAGE SECTION.
  70.  000070        01  FILLER                      PIC X(37)  VALUE
  71.  000071            'BEGIN WORKING STORAGE FOR COB01E'.
  72.  000072       ****************************************************************
  73.  000073       *   ACCUMULATORS                                              *
  74.  000074       ****************************************************************
  75.  000075        01  W01-ACCUMULATORS.
  76.  000076            05  W01-REC-IN              PIC S9(04) COMP   VALUE ZERO.
  77.  000077            05  W01-REC-OUT             PIC S9(04) COMP   VALUE ZERO.
  78.  000078       ****************************************************************
  79.  000079       *   SWITCHES                                                  *
  80.  000080       ****************************************************************
  81.  000081        01  W02-SWITCHES.
  82.  000082            05  W02-IN-EOF-SW          PIC X(01)    VALUE 'N'.
  83.  000083       * FILE STATUS VARIABLES
  84.  000084        01 WS-INBONUS-STATUS            PIC 9(02)   VALUE ZEROS.
  85.  000085        01 WS-OUTBONUS-STATUS           PIC 9(02)   VALUE ZEROS.
  86.  000086       ****************************************************************
  87.  000087       *         P R O C E D U R E   D I V I S I O N                 *
  88.  000088       ****************************************************************
  89.  000089        PROCEDURE DIVISION.
  90.  000090       ****************************************************************
  91.  000091       *   MAINLINE - ALL ROUTINES ARE PERFORMED FROM THIS ROUTINE   *
  92.  000092       ****************************************************************
  93.  000093        P0100-MAINLINE.
  94.  000094
  95.  000095            PERFORM P0200-INITIALIZE    THRU P0299-EXIT
  96.  000096
  97.  000097            PERFORM P0300-PROCESS-INPUT THRU P0399-EXIT
  98.  000098                    UNTIL W02-IN-EOF-SW = 'Y'
  99.  000099
  100.  000100            PERFORM P0400-WRAP-UP       THRU P0499-EXIT
  101.  000101
  102.  000102            GOBACK
  103.  000103            .
  104.  000104        P0199-EXIT.
  105.  000105            EXIT.
  106.  000106
  107.  000107       ****************************************************************
  108.  000108       *   INITIALIZE - OPEN FILES, DO PRIMING READ                  *
  109.  000109       ****************************************************************
  110.  000110        P0200-INITIALIZE.
  111.  000111       * YOU NEED TO PUT OPEN STATEMENT(S) HERE:
  112.  000112            OPEN INPUT INPUT-BONUS
  113.  000113            IF WS-INBONUS-STATUS NOT EQUAL TO 0
  114.  000114               DISPLAY 'THE INPUT BONUS FILE DID NOT OPEN'
  115.  000115               GOBACK
  116.  000116            END-IF.
  117.  000117
  118.  000118            OPEN OUTPUT OUTPUT-BONUS
  119.  000119            IF WS-OUTBONUS-STATUS NOT EQUAL TO 0
  120.  000120               DISPLAY 'THE OUTPUT FILE DID NOT OPEN'
  121.  000121               GOBACK
  122.  000122            END-IF.
  123.  000123
  124.  000124       * THIS IS THE "PRIMING" READ
  125.  000125            PERFORM P0900-READ-INPUT THRU P0999-EXIT.
  126.  000126
  127.  000127        P0299-EXIT.
  128.  000128            EXIT.
  129.  000129
  130.  000130       ****************************************************************
  131.  000131       *   PROCESS INPUT - READ AND WRITE IT OUT TO OUTBONUS FILE    *
  132.  000132       ****************************************************************
  133.  000133        P0300-PROCESS-INPUT.
  134.  000134       * YOU NEED TO PUT SEVERAL STATEMENTS HERE - FIRST MOVE THE DATA
  135.  000135       * FROM THE INPUT TO THE OUTPUT, THEN PERFORM THE WRITE ROUTINE,
  136.  000136       * THEN PERFORM THE READ ROUTINE (WHICH WILL GET THE NEXT RECORD)
  137.  000137                MOVE IN-BONUS-REC TO OUT-BONUS-REC.
  138.  000138                MOVE IN-BONUS-AMT TO OUT-BONUS-AMT.
  139.  000139                MOVE IN-FED-EXEMPT-IND TO OUT-FED-EXEMPT-IND.
  140.  000140                MOVE IN-ST-EXEMPT-IND TO OUT-ST-EXEMPT-IND.
  141.  000141                MOVE IN-FILLER TO OUT-FILLER.
  142.  000142                PERFORM P0800-WRITE-OUTPUT.
  143.  000143                PERFORM P0900-READ-INPUT.
  144.  000144
  145.  000145
  146.  000146        P0399-EXIT.
  147.  000147            EXIT.
  148.  000148
  149.  000149       ****************************************************************
  150.  000150       *   WRAP UP - CLOSE THE FILES, CHECK THE RECORD COUNTS        *
  151.  000151       ****************************************************************
  152.  000152        P0400-WRAP-UP.
  153.  000153       * NEED TO PUT CLOSE STATEMENT(S) HERE
  154.  000154            CLOSE INPUT-BONUS.
  155.  000155            CLOSE OUTPUT-BONUS.
  156.  000156
  157.  000157        P0499-EXIT.
  158.  000158            EXIT.
  159.  000159
  160.  000160       ****************************************************************
  161.  000161       *   WRITE OUTPUT RECORDS                                      *
  162.  000162       ****************************************************************
  163.  000163        P0800-WRITE-OUTPUT.
  164.  000164       * NEED TO PUT WRITE STATEMENT HERE
  165.  000165            WRITE OUT-BONUS-REC.
  166.  000166
  167.  000167        P0899-EXIT.
  168.  000168            EXIT.
  169.  000169
  170.  000170       ****************************************************************
  171.  000171       *   READ THE INPUT FILE                                       *
  172.  000172       ****************************************************************
  173.  000173        P0900-READ-INPUT.
  174.  000174       * NEED TO PUT READ STATEMENT HERE
  175.  000175            READ INPUT-BONUS
  176.  000176            AT END MOVE 'Y' TO W02-IN-EOF-SW.
  177.  000177
  178.  000178        P0999-EXIT.
  179.  000179            EXIT.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement