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  " "