Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- 000002 PROGRAM-ID. COB01E.
- 000003 AUTHOR. ALEX EVANGELOU
- 000004 INSTALLATION. LEARNQUEST
- 000005 DATE-WRITTEN. JULY, 2017.
- 000006 DATE-COMPILED.
- 000007 ****************************************************************
- 000008 * CHANGE ALL OCCURRENCES OF E TO YOUR LETTER *
- 000009 ****************************************************************
- 000010 ****************************************************************
- 000011 * PROGRAM COB01E *
- 000012 ****************************************************************
- 000013 * THIS PROGRAM READS THE BONUS FILE AND WRITES IT OUT *
- 000014 ****************************************************************
- 000015 * E N V I R O N M E N T D I V I S I O N *
- 000016 ****************************************************************
- 000017 ENVIRONMENT DIVISION.
- 000018 *CONFIGURATION SECTION.
- 000019 *SOURCE-COMPUTER. IBM.
- 000020 *OBJECT-COMPUTER. IBM.
- 000021 INPUT-OUTPUT SECTION.
- 000022 FILE-CONTROL.
- 000023 SELECT INPUT-BONUS ASSIGN TO INBONUS
- 000024 FILE STATUS IS WS-INBONUS-STATUS.
- 000025 SELECT OUTPUT-BONUS ASSIGN TO OUTBONUS
- 000026 FILE STATUS IS WS-OUTBONUS-STATUS.
- 000027 ****************************************************************
- 000028 * D A T A D I V I S I O N *
- 000029 ****************************************************************
- 000030 DATA DIVISION.
- 000031 FILE SECTION.
- 000032 ****************************************************************
- 000033 * INPUT-BONUS INPUT *
- 000034 ****************************************************************
- 000035 FD INPUT-BONUS
- RECORDING MODE IS F
- 000037 LABEL RECORDS STANDARD
- 000038 RECORD CONTAINS 80 CHARACTERS
- BLOCK CONTAINS 0 RECORDS
- 000040 DATA RECORD IS IN-BONUS-REC.
- 000041 01 IN-BONUS-REC.
- 000042 05 IN-STATE-CODE PIC X(2).
- 000043 05 IN-LAST-NAME PIC X(20).
- 000044 05 IN-FIRST-NAME PIC X(15).
- 000045 05 IN-MID-INIT PIC X(1).
- 000046 05 IN-BONUS-AMT PIC 9(7)V99.
- 000047 05 IN-FED-EXEMPT-IND PIC X(1).
- 000048 05 IN-ST-EXEMPT-IND PIC X(1).
- 000049 05 IN-FILLER PIC X(31).
- 000050 ****************************************************************
- 000051 * OUTPUT-BONUS OUTPUT *
- 000052 ****************************************************************
- 000053 FD OUTPUT-BONUS
- 000054 RECORDING MODE IS F
- 000055 LABEL RECORDS STANDARD
- 000056 RECORD CONTAINS 76 CHARACTERS
- 000057 BLOCK CONTAINS 0 RECORDS
- 000058 DATA RECORD IS OUT-BONUS-REC.
- 000059 01 OUT-BONUS-REC.
- 000060 05 OUT-STATE-CODE PIC X(2).
- 000061 05 OUT-LAST-NAME PIC X(20).
- 000062 05 OUT-FIRST-NAME PIC X(15).
- 000063 05 OUT-MID-INIT PIC X(1).
- 000064 05 OUT-BONUS-AMT PIC S9(7)V99 COMP-3.
- 000065 05 OUT-FED-EXEMPT-IND PIC X(1).
- 000066 05 OUT-ST-EXEMPT-IND PIC X(1).
- 000067 05 OUT-FILLER PIC X(31).
- 000068
- 000069 WORKING-STORAGE SECTION.
- 000070 01 FILLER PIC X(37) VALUE
- 000071 'BEGIN WORKING STORAGE FOR COB01E'.
- 000072 ****************************************************************
- 000073 * ACCUMULATORS *
- 000074 ****************************************************************
- 000075 01 W01-ACCUMULATORS.
- 000076 05 W01-REC-IN PIC S9(04) COMP VALUE ZERO.
- 000077 05 W01-REC-OUT PIC S9(04) COMP VALUE ZERO.
- 000078 ****************************************************************
- 000079 * SWITCHES *
- 000080 ****************************************************************
- 000081 01 W02-SWITCHES.
- 000082 05 W02-IN-EOF-SW PIC X(01) VALUE 'N'.
- 000083 * FILE STATUS VARIABLES
- 000084 01 WS-INBONUS-STATUS PIC 9(02) VALUE ZEROS.
- 000085 01 WS-OUTBONUS-STATUS PIC 9(02) VALUE ZEROS.
- 000086 ****************************************************************
- 000087 * P R O C E D U R E D I V I S I O N *
- 000088 ****************************************************************
- 000089 PROCEDURE DIVISION.
- 000090 ****************************************************************
- 000091 * MAINLINE - ALL ROUTINES ARE PERFORMED FROM THIS ROUTINE *
- 000092 ****************************************************************
- 000093 P0100-MAINLINE.
- 000094
- 000095 PERFORM P0200-INITIALIZE THRU P0299-EXIT
- 000096
- 000097 PERFORM P0300-PROCESS-INPUT THRU P0399-EXIT
- 000098 UNTIL W02-IN-EOF-SW = 'Y'
- 000099
- 000100 PERFORM P0400-WRAP-UP THRU P0499-EXIT
- 000101
- 000102 GOBACK
- 000103 .
- 000104 P0199-EXIT.
- 000105 EXIT.
- 000106
- 000107 ****************************************************************
- 000108 * INITIALIZE - OPEN FILES, DO PRIMING READ *
- 000109 ****************************************************************
- 000110 P0200-INITIALIZE.
- 000111 * YOU NEED TO PUT OPEN STATEMENT(S) HERE:
- 000112 OPEN INPUT INPUT-BONUS
- 000113 IF WS-INBONUS-STATUS NOT EQUAL TO 0
- 000114 DISPLAY 'THE INPUT BONUS FILE DID NOT OPEN'
- 000115 GOBACK
- 000116 END-IF.
- 000117
- 000118 OPEN OUTPUT OUTPUT-BONUS
- 000119 IF WS-OUTBONUS-STATUS NOT EQUAL TO 0
- 000120 DISPLAY 'THE OUTPUT FILE DID NOT OPEN'
- 000121 GOBACK
- 000122 END-IF.
- 000123
- 000124 * THIS IS THE "PRIMING" READ
- 000125 PERFORM P0900-READ-INPUT THRU P0999-EXIT.
- 000126
- 000127 P0299-EXIT.
- 000128 EXIT.
- 000129
- 000130 ****************************************************************
- 000131 * PROCESS INPUT - READ AND WRITE IT OUT TO OUTBONUS FILE *
- 000132 ****************************************************************
- 000133 P0300-PROCESS-INPUT.
- 000134 * YOU NEED TO PUT SEVERAL STATEMENTS HERE - FIRST MOVE THE DATA
- 000135 * FROM THE INPUT TO THE OUTPUT, THEN PERFORM THE WRITE ROUTINE,
- 000136 * THEN PERFORM THE READ ROUTINE (WHICH WILL GET THE NEXT RECORD)
- 000137 MOVE IN-BONUS-REC TO OUT-BONUS-REC.
- 000138 MOVE IN-BONUS-AMT TO OUT-BONUS-AMT.
- 000139 MOVE IN-FED-EXEMPT-IND TO OUT-FED-EXEMPT-IND.
- 000140 MOVE IN-ST-EXEMPT-IND TO OUT-ST-EXEMPT-IND.
- 000141 MOVE IN-FILLER TO OUT-FILLER.
- 000142 PERFORM P0800-WRITE-OUTPUT.
- 000143 PERFORM P0900-READ-INPUT.
- 000144
- 000145
- 000146 P0399-EXIT.
- 000147 EXIT.
- 000148
- 000149 ****************************************************************
- 000150 * WRAP UP - CLOSE THE FILES, CHECK THE RECORD COUNTS *
- 000151 ****************************************************************
- 000152 P0400-WRAP-UP.
- 000153 * NEED TO PUT CLOSE STATEMENT(S) HERE
- 000154 CLOSE INPUT-BONUS.
- 000155 CLOSE OUTPUT-BONUS.
- 000156
- 000157 P0499-EXIT.
- 000158 EXIT.
- 000159
- 000160 ****************************************************************
- 000161 * WRITE OUTPUT RECORDS *
- 000162 ****************************************************************
- 000163 P0800-WRITE-OUTPUT.
- 000164 * NEED TO PUT WRITE STATEMENT HERE
- 000165 WRITE OUT-BONUS-REC.
- 000166
- 000167 P0899-EXIT.
- 000168 EXIT.
- 000169
- 000170 ****************************************************************
- 000171 * READ THE INPUT FILE *
- 000172 ****************************************************************
- 000173 P0900-READ-INPUT.
- 000174 * NEED TO PUT READ STATEMENT HERE
- 000175 READ INPUT-BONUS
- 000176 AT END MOVE 'Y' TO W02-IN-EOF-SW.
- 000177
- 000178 P0999-EXIT.
- 000179 EXIT.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement