Payroll Calculation
Problem Description
Calculate gross pay, deductions, and net pay. Regular hours up to 40, overtime at 1.5x.
Expected Output
Employee payslip with all calculations
Hints
Track regular and overtime hours separately.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. PAYROLL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-EMP-NAME PIC X(30).
01 WS-HOURLY-RATE PIC 9(3)V99.
01 WS-HOURS PIC 9(3)V99.
01 WS-REG-HOURS PIC 9(3)V99.
01 WS-OT-HOURS PIC 9(3)V99.
01 WS-REG-PAY PIC 9(7)V99.
01 WS-OT-PAY PIC 9(7)V99.
01 WS-GROSS-PAY PIC 9(7)V99.
01 WS-TAX PIC 9(7)V99.
01 WS-NET-PAY PIC 9(7)V99.
PROCEDURE DIVISION.
DISPLAY "ENTER NAME: ". ACCEPT WS-EMP-NAME.
DISPLAY "ENTER HOURLY RATE: ". ACCEPT WS-HOURLY-RATE.
DISPLAY "ENTER HOURS WORKED: ". ACCEPT WS-HOURS.
IF WS-HOURS > 40
MOVE 40 TO WS-REG-HOURS
COMPUTE WS-OT-HOURS = WS-HOURS - 40
ELSE
MOVE WS-HOURS TO WS-REG-HOURS
MOVE 0 TO WS-OT-HOURS
END-IF.
COMPUTE WS-REG-PAY = WS-REG-HOURS * WS-HOURLY-RATE.
COMPUTE WS-OT-PAY = WS-OT-HOURS * WS-HOURLY-RATE * 1.5.
COMPUTE WS-GROSS-PAY = WS-REG-PAY + WS-OT-PAY.
COMPUTE WS-TAX = WS-GROSS-PAY * 0.20.
COMPUTE WS-NET-PAY = WS-GROSS-PAY - WS-TAX.
DISPLAY "=== PAYSLIP ===".
DISPLAY "EMPLOYEE: " WS-EMP-NAME.
DISPLAY "REGULAR PAY: " WS-REG-PAY.
DISPLAY "OVERTIME PAY: " WS-OT-PAY.
DISPLAY "GROSS PAY: " WS-GROSS-PAY.
DISPLAY "TAX (20%): " WS-TAX.
DISPLAY "NET PAY: " WS-NET-PAY.
STOP RUN.
Explanation:
Real payroll: separate regular and OT hours, apply different rates, calculate tax.