Identification Division.
program-id. Lab2.
*********
*This program read a file from a diskette, do calcualtions,
*and then display one line of output per record. Report will
*include headings.
*The student will practice declaring and reading files, and the
*basic file handeling logic.
*********
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLOYEES
ASSIGN TO "D:\LAB2\EMPLOYEES"
ORGANIZATION IS LINE SEQUENTIAL
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD EMPLOYEES.
01 EMPLOY-RECORD.
05 EMPLOYEE-NAME PIC X(15).
05 HOURS-WORKED PIC 99.
05 PAY-RATE PIC 99.
WORKING-STORAGE SECTION.
01 HEADING-LINE1.
05 FILLER PIC X(15).
05 FILLER PIC X(21) VALUE "EMPLOYEE".
05 FILLER PIC X(11) VALUE "HOURS".
05 FILLER PIC X(8) VALUE "PAY".
05 FILLER PIC X(5) VALUE "GROSS".
01 HEADING-LINE2.
05 FILLER PIC X(15).
05 FILLER PIC X(20) VALUE "NAME".
05 FILLER PIC X(11) VALUE "WORKED".
05 FILLER PIC X(10) VALUE "RATE".
05 FILLER PIC X(4) VALUE "PAY".
01 OUTPUT-LINE.
05 FILLER PIC X(15).
05 EMPLOYEE-NAME-OUT PIC X(24).
05 HOURS-WORKED-OUT PIC 99.
05 FILLER PIC X(7).
05 PAY-RATE-OUT PIC 99.
05 FILLER PIC X(6).
05 GROSS-PAY-OUT PIC 9999.
01 WORK-FIELDS.
05 GROSS-PAY PIC 9(4).
01 ARE-WE-THRU PIC X(3).
PROCEDURE DIVISION.
MAIN-PROGRAM-LOGIC.
OPEN INPUT EMPLOYEES.
PERFORM READ-INPUT-FILE.
PERFORM PROCESS-EMPLOYEE-FILE
UNTIL ARE-WE-THRU = "YES".
CLOSE EMPLOYEES.
STOP RUN.
PROCESS-EMPLOYEE-FILE.
PERFORM CALCULATE-GROSS-PAY.
PERFORM REPORT-EMPLOYEE-INFORMATION.
PERFORM READ-INPUT-FILE.
CALCULATE-GROSS-PAY.
COMPUTE GROSS-PAY = HOURS-WORKED * PAY-RATE.
REPORT-EMPLOYEE-INFORMATION.
MOVE EMPLOYEE-NAME TO EMPLOYEE-NAME-OUT.
MOVE HOURS-WORKED TO HOURS-WORKED-OUT.
MOVE PAY-RATE TO PAY-RATE-OUT.
MOVE GROSS-PAY TO GROSS-PAY-OUT.
DISPLAY OUTPUT-LINE.
READ-INPUT-FILE.
READ EMPLOYEES
AT END MOVE "YES" TO ARE-WE-THRU.
PRINT-REPORT-HEADINGS.
DISPLAY HEADING-LINE1.
DISPLAY HEADING-LINE2.
DISPLAY " "