Employee Salary Report
Problem Description
Read employee file, calculate tax based on salary slabs, generate formatted salary report. Tax Slabs: 0-25000: 0%, 25001-50000: 10%, 50001-100000: 20%, Above 100000: 30%
Expected Output
Formatted salary report with tax calculations for each employee
Hints
Use EVALUATE for tax slabs. Format output with headers and totals.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. SALRPT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-EMP-ID PIC 9(5).
01 WS-EMP-NAME PIC X(25).
01 WS-SALARY PIC 9(7)V99.
01 WS-TAX-RATE PIC V99.
01 WS-TAX-AMT PIC 9(7)V99.
01 WS-NET-SALARY PIC 9(7)V99.
01 WS-TOTAL-SAL PIC 9(9)V99 VALUE 0.
01 WS-TOTAL-TAX PIC 9(9)V99 VALUE 0.
01 WS-COUNT PIC 9(3) VALUE 0.
01 WS-CONTINUE PIC X VALUE "Y".
PROCEDURE DIVISION.
DISPLAY "========================================".
DISPLAY " EMPLOYEE SALARY REPORT ".
DISPLAY "========================================".
DISPLAY "ID NAME SALARY TAX NET".
PERFORM UNTIL WS-CONTINUE NOT = "Y"
DISPLAY "ENTER EMP ID (0 TO END): "
ACCEPT WS-EMP-ID
IF WS-EMP-ID = 0
MOVE "N" TO WS-CONTINUE
ELSE
DISPLAY "ENTER NAME: "
ACCEPT WS-EMP-NAME
DISPLAY "ENTER SALARY: "
ACCEPT WS-SALARY
EVALUATE TRUE
WHEN WS-SALARY <= 25000 MOVE 0 TO WS-TAX-RATE
WHEN WS-SALARY <= 50000 MOVE 0.10 TO WS-TAX-RATE
WHEN WS-SALARY <= 100000 MOVE 0.20 TO WS-TAX-RATE
WHEN OTHER MOVE 0.30 TO WS-TAX-RATE
END-EVALUATE
COMPUTE WS-TAX-AMT = WS-SALARY * WS-TAX-RATE
COMPUTE WS-NET-SALARY = WS-SALARY - WS-TAX-AMT
ADD WS-SALARY TO WS-TOTAL-SAL
ADD WS-TAX-AMT TO WS-TOTAL-TAX
ADD 1 TO WS-COUNT
DISPLAY WS-EMP-ID " " WS-EMP-NAME " " WS-SALARY " " WS-TAX-AMT " " WS-NET-SALARY
END-IF
END-PERFORM.
DISPLAY "TOTAL EMPLOYEES: " WS-COUNT.
DISPLAY "TOTAL SALARY: " WS-TOTAL-SAL.
DISPLAY "TOTAL TAX: " WS-TOTAL-TAX.
STOP RUN.
Explanation:
Real payroll report with tax slabs using EVALUATE, running totals, formatted output.