IDENTIFICATION DIVISION. PROGRAM-ID. HW05GH. AUTHOR GAVIN HOOPER. DATE-WRITTEN 02/16/2019. DATA DIVISION. WORKING-STORAGE SECTION. 01 EMPLOYEE-RECORD-IN. 05 EMP-PAY-DATE-IN. 10 EMP-PAY-YY PIC X(02). 10 EMP-PAY-MM PIC X(02). 10 EMP-PAY-DD PIC X(02). 05 EMP-NUMBER PIC X(03). 05 EMP-NAME. 10 EMP-LAST-NAME PIC X(15). 10 EMP-FIRST-NAME PIC X(10). 05 HOURS-WORKED PIC 99V99. 05 PAY-RATE PIC 99V99. 05 EMP-PAY-TYPE PIC X. 88 HOURLY-PAY VALUE 'H'. 88 SALARY-PAY VALUE 'S'. 05 EMP-POSITION PIC X. 88 PROGRAMMER VALUE 'P'. 88 ACCOUNTANT VALUE 'A'. 88 MANAGER VALUE 'M'. 88 INTERN VALUE 'I'. 88 TESTER VALUE 'T'. 05 EMP-GROSS-OUT PIC 9(04)V99. 05 EMP-OVERTIME-HOURS-OUT PIC 9(02). 05 EMP-OVERTIME-OUT PIC 9(04)V99. 05 EMP-TAXES-OUT PIC 9(04)V99. 05 EMP-NET-OUT PIC 9(04)V99. 05 FILLER PIC X(10). 01 EMP-TAX-RATE PIC V99 VALUE .32. 01 EMP-POSITION-TITLE PIC X(18). 01 EMPLOYEE-PAY-TOTALS. 05 EMP-GROSS-PAY PIC 9(04)V99. 05 EMP-NET-PAY PIC 9(04)V99. 05 EMP-TAXES PIC 9(04)V99. 05 EMP-OVERTIME-HOURS PIC 9(02)V99. 05 EMP-OVERTIME-PAY PIC 9(03)V99. 01 PROGRAM-TOTALS. 05 PROGRAM-GROSS-PAY PIC 9(04)V99. 05 PROGRAM-NET-PAY PIC 9(04)V99. 05 PROGRAM-TAXES PIC 9(04)V99. 05 PROGRAM-RECORD-COUNT PIC 9(01). 05 PROGRAM-HOURS-WORKED PIC 9(04)V99. 05 PROGRAM-AVERAGE-GROSS PIC 9(04)V99. 05 PROGRAM-AVERAGE-NET PIC 9(04)V99. 05 PROGRAM-OVERTIME-HOURS PIC 9(02)V99. 05 PROGRAM-OVERTIME-PAY PIC 9(03)V99. 01 WS-DATE-IN PIC 9(08). 01 WS-POSITIONS. 05 WS-PROGRAMMER. 10 WS-PROGRAMMER-CODE PIC X(01) VALUE 'P'. 10 WS-PROGRAMMER-TITLE PIC X(18) VALUE 'PROGRAMMER'. 10 WS-PROGRAMMER-RATE PIC 9(02)V99 VALUE 65.00. 05 WS-ACCOUNTANT. 10 WS-ACCOUNTANT-CODE PIC X(01) VALUE 'A'. 10 WS-ACCOUNTANT-TITLE PIC X(18) VALUE 'ACCOUNTANT'. 10 WS-ACCOUNTANT-RATE PIC 9(02)V99 VALUE 58.00. 05 WS-MANAGER. 10 WS-MANAGER-CODE PIC X(01) VALUE 'M'. 10 WS-MANAGER-TITLE PIC X(18) VALUE 'MANAGER'. 10 WS-MANAGER-RATE PIC 9(02)V99 VALUE 62.00. 05 WS-INTERN. 10 WS-INTERN-CODE PIC X(01) VALUE 'I'. 10 WS-INTERN-TITLE PIC X(18) VALUE 'INTERN'. 10 WS-INTERN-RATE PIC 9(02)V99 VALUE 22.00. 05 WS-TESTER. 10 WS-TESTER-CODE PIC X(01) VALUE 'T'. 10 WS-TESTER-TITLE PIC X(18) VALUE 'TESTER'. 10 WS-TESTER-RATE PIC 9(02)V99 VALUE 22.00. PROCEDURE DIVISION. DISPLAY 'PAYROLL HW05GH FOR GAVIN HOOPER'. DISPLAY WS-POSITIONS. DISPLAY '--'. MOVE .32 TO EMP-TAX-RATE. ACCEPT EMPLOYEE-RECORD-IN. ADD 1 TO PROGRAM-RECORD-COUNT. EVALUATE EMP-POSITION WHEN 'P' MOVE 'PROGRAMMER' TO WS-POSITIONS WHEN 'A' MOVE 'ACCOUNTANT' TO WS-POSITIONS WHEN 'M' MOVE 'MANAGER' TO WS-POSITIONS WHEN 'I' MOVE 'INTERN' TO WS-POSITIONS WHEN 'T' MOVE 'TESTER' TO WS-POSITIONS WHEN OTHER MOVE 'UNDEFINED POSITION' TO WS-POSITIONS. EVALUATE EMP-POSITION WHEN 'P' MOVE 65.00 TO PAY-RATE WHEN 'A' MOVE 58.00 TO PAY-RATE WHEN 'M' MOVE 62.00 TO PAY-RATE WHEN 'I' MOVE 22.00 TO PAY-RATE WHEN 'T' MOVE 22.00 TO PAY-RATE WHEN OTHER MOVE 0000 TO PAY-RATE. IF HOURS-WORKED > 40 THEN COMPUTE EMP-OVERTIME-HOURS= HOURS-WORKED - 40. IF HOURS-WORKED > 40 THEN COMPUTE EMP-OVERTIME-PAY=PAY-RATE * 1.5 * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' THEN SUBTRACT EMP-OVERTIME-PAY FROM EMP-OVERTIME-PAY. IF EMP-PAY-TYPE = 'H' THEN COMPUTE EMP-GROSS-PAY= (HOURS-WORKED * PAY-RATE) + EMP-OVERTIME-PAY ELSE COMPUTE EMP-GROSS-PAY=(40 * PAY-RATE) COMPUTE EMP-TAXES= EMP-GROSS-PAY * EMP-TAX-RATE COMPUTE EMP-NET-PAY= EMP-GROSS-PAY - EMP-TAXES DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' WS-POSITIONS. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. ADD EMP-GROSS-PAY TO PROGRAM-GROSS-PAY. ADD EMP-TAXES TO PROGRAM-TAXES. ADD EMP-NET-PAY TO PROGRAM-NET-PAY. ADD HOURS-WORKED TO PROGRAM-HOURS-WORKED. ADD EMP-OVERTIME-HOURS TO PROGRAM-OVERTIME-HOURS. ADD EMP-OVERTIME-PAY TO PROGRAM-OVERTIME-PAY. ACCEPT EMPLOYEE-RECORD-IN. ADD 1 TO PROGRAM-RECORD-COUNT. EVALUATE EMP-POSITION WHEN 'P' MOVE 'PROGRAMMER' TO WS-POSITIONS WHEN 'A' MOVE 'ACCOUNTANT' TO WS-POSITIONS WHEN 'M' MOVE 'MANAGER' TO WS-POSITIONS WHEN 'I' MOVE 'INTERN' TO WS-POSITIONS WHEN 'T' MOVE 'TESTER' TO WS-POSITIONS WHEN OTHER MOVE 'UNDEFINED POSITION' TO WS-POSITIONS. EVALUATE EMP-POSITION WHEN 'P' MOVE 65.00 TO PAY-RATE WHEN 'A' MOVE 58.00 TO PAY-RATE WHEN 'M' MOVE 62.00 TO PAY-RATE WHEN 'I' MOVE 22.00 TO PAY-RATE WHEN 'T' MOVE 22.00 TO PAY-RATE WHEN OTHER MOVE 0000 TO PAY-RATE. IF HOURS-WORKED > 40 THEN COMPUTE EMP-OVERTIME-HOURS= HOURS-WORKED - 40. IF HOURS-WORKED > 40 THEN COMPUTE EMP-OVERTIME-PAY=PAY-RATE * 1.5 * EMP-OVERTIME-HOURS IF EMP-PAY-TYPE = 'S' THEN SUBTRACT EMP-OVERTIME-PAY FROM EMP-OVERTIME-PAY. IF EMP-PAY-TYPE = 'H' THEN COMPUTE EMP-GROSS-PAY= (HOURS-WORKED * PAY-RATE) + EMP-OVERTIME-PAY ELSE COMPUTE EMP-GROSS-PAY=(40 * PAY-RATE) COMPUTE EMP-TAXES= EMP-GROSS-PAY * EMP-TAX-RATE COMPUTE EMP-NET-PAY= EMP-GROSS-PAY - EMP-TAXES DISPLAY 'PAY DATE : ' EMP-PAY-MM '/' EMP-PAY-DD '/' EMP-PAY-YY. DISPLAY 'EMPLOYEE NAME: ' EMP-LAST-NAME ', ' EMP-FIRST-NAME. DISPLAY ' NUMBER : ' EMP-NUMBER. DISPLAY ' HOURS : ' HOURS-WORKED. DISPLAY ' PAY RATE : ' PAY-RATE. DISPLAY ' POSITION : ' EMP-POSITION. DISPLAY ' TITLE : ' WS-POSITIONS. DISPLAY ' PAY TYPE : ' EMP-PAY-TYPE. DISPLAY ' GROSS PAY: ' EMP-GROSS-PAY DISPLAY ' OT PAY : ' EMP-OVERTIME-PAY. DISPLAY ' OT HOURS : ' EMP-OVERTIME-HOURS. DISPLAY ' TAXES : ' EMP-TAXES. DISPLAY ' NET PAY : ' EMP-NET-PAY. DISPLAY '--'. ADD EMP-GROSS-PAY TO PROGRAM-GROSS-PAY. ADD EMP-TAXES TO PROGRAM-TAXES. ADD EMP-NET-PAY TO PROGRAM-NET-PAY. ADD HOURS-WORKED TO PROGRAM-HOURS-WORKED. ADD EMP-OVERTIME-HOURS TO PROGRAM-OVERTIME-HOURS. ADD EMP-OVERTIME-PAY TO PROGRAM-OVERTIME-PAY. COMPUTE PROGRAM-AVERAGE-GROSS=PROGRAM-GROSS-PAY/PROGRAM-RECORD-COUNT. COMPUTE PROGRAM-AVERAGE-NET=PROGRAM-NET-PAY/PROGRAM-RECORD-COUNT. DISPLAY 'FILE TOTALS:'. DISPLAY ' RECORDS : ' PROGRAM-RECORD-COUNT. DISPLAY ' HOURS : ' PROGRAM-HOURS-WORKED. DISPLAY ' GROSS : ' PROGRAM-GROSS-PAY. DISPLAY ' TAXES : ' PROGRAM-TAXES. DISPLAY ' NET : ' PROGRAM-NET-PAY. DISPLAY ' OT HOURS : ' PROGRAM-OVERTIME-HOURS. DISPLAY ' OT PAY : ' PROGRAM-OVERTIME-PAY. DISPLAY 'AVERAGE GROSS: ' PROGRAM-AVERAGE-GROSS. DISPLAY ' AVERAGE NET: ' PROGRAM-AVERAGE-NET. DISPLAY '--'. DISPLAY 'EXTRA CREDIT:' DISPLAY ' -Right Justify Align Decimal Places in Display + 5%'. DISPLAY ' -Update the PAY-RATE on the Input File and DISPLAY it as' ' as an output record. ' DISPLAY '--'. DISPLAY 'END OF PROGRAM FOR GAVIN HOOPER'. STOP RUN.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more