rendered paste body IDENTIFICATION DIVISION.
PROGRAM-ID. CWAGE.
AUTHOR. ALVIN LADDARAN.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPFILE ASSIGN TO "ACLIN1"
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS EMPStat.
SELECT PAYLIST ASSIGN TO "PAYLIST"
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS PAYStat.
DATA DIVISION.
FILE SECTION.
FD EMPFILE.
01 EMPREC.
10 EMP-NUM PIC X(20).
10 HRS-WORK PIC 99.
10 HRLY-RATE PIC 999V99.
10 FILLER PIC X(8) VALUE SPACES.
FD PAYLIST.
01 PAYREC.
10 PAY-EMP-NUM PIC X(20).
10 PAY-WKLY-WAGE PIC 9(7)V99.
10 FILLER PIC X(11) VALUE SPACES.
WORKING-STORAGE SECTION.
01 WORK-AREA.
10 WS-HRS-WORK PIC 99.
10 WS-HRLY-RATE PIC 999V99.
10 EndOfFile PIC XXX.
10 EMPStat PIC XX.
10 PAYStat PIC XX.
PROCEDURE DIVISION.
000-ProgramBegin.
PERFORM 100-INIT.
PERFORM 200-PROCESS.
PERFORM 900-ENDBLOCK.
000-EXIT.
200-PROCESS.
PERFORM WITH TEST AFTER UNTIL EndOfFile = "SET"
IF HRS-WORK IS NUMERIC AND HRLY-RATE IS NUMERIC
MOVE EMP-NUM TO PAY-EMP-NUM
MOVE HRS-WORK TO WS-HRS-WORK
MOVE HRLY-RATE TO WS-HRLY-RATE
COMPUTE PAY-WKLY-WAGE = WS-HRS-WORK * WS-HRLY-RATE
WRITE PAYREC
END-IF
PERFORM 800-PAYChecking
READ EMPFILE
AT END PERFORM 900-EOFPerform
END-READ
END-PERFORM.
200-EXIT.
800-EMPChecking.
IF EMPStat = "00" THEN
CONTINUE
ELSE
PERFORM 850-ERROR-DISPLAY
DISPLAY "the input file.)"
PERFORM 900-ENDBLOCK
END-IF.
800-EMPChecking-EXIT.
800-PAYChecking.
IF PAYStat = "00" THEN
CONTINUE
ELSE
PERFORM 850-ERROR-DISPLAY
DISPLAY "the output file.)"
PERFORM 900-ENDBLOCK
END-IF.
800-PAYChecking-EXIT.
800-EMPTY-INPUT.
MOVE "SET" TO EndOfFile.
DISPLAY " The input file was empty.".
DISPLAY "The program will terminate now.".
PERFORM 900-ENDBLOCK.
800-EMPTY-INPUT-END.
850-ERROR-DISPLAY.
DISPLAY "An error has occurred.".
DISPLAY "Please check your disk and input files".
DISPLAY "for possible problems.".
DISPLAY "(Hint: the error was triggered by ".
850-EXIT.
100-INIT.
MOVE "OFF" TO EndOfFile.
OPEN INPUT EMPFILE.
PERFORM 800-EMPChecking.
OPEN OUTPUT PAYLIST.
PERFORM 800-PAYChecking.
READ EMPFILE
PERFORM 800-EMPChecking
AT END PERFORM 800-EMPTY-INPUT
END-READ.
100-EXIT.
900-EOFPerform.
MOVE "SET" TO EndOfFile.
DISPLAY "The program has finished executing.".
900-EOF-EXIT.
900-ENDBLOCK.
CLOSE EMPFILE, PAYLIST.
STOP RUN.
900-ENDBLOCK-EXIT.