Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to Real-World Scenarios
Real-World Scenarios | Advanced | COBOL

Insurance Premium Calculator

Problem Description

Calculate insurance premium based on age, coverage amount, and risk factors.

Expected Output

Premium amount with breakdown

Hints

Base rate varies by age bracket, multipliers for risk factors.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. INSPREM. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-AGE PIC 9(3). 01 WS-COVERAGE PIC 9(9). 01 WS-SMOKER PIC X(1). 01 WS-HEALTH PIC X(1). 01 WS-BASE-RATE PIC 9V9(4). 01 WS-BASE-PREMIUM PIC 9(7)V99. 01 WS-SMOKE-MULT PIC 9V99 VALUE 1.00. 01 WS-HEALTH-MULT PIC 9V99 VALUE 1.00. 01 WS-FINAL-PREM PIC 9(7)V99. 01 WS-MONTHLY PIC 9(6)V99. 01 WS-DISP PIC Z,ZZ,ZZ9.99. PROCEDURE DIVISION. DISPLAY "=== INSURANCE PREMIUM CALCULATOR ===". DISPLAY "ENTER AGE: ". ACCEPT WS-AGE. DISPLAY "ENTER COVERAGE AMOUNT: ". ACCEPT WS-COVERAGE. DISPLAY "SMOKER? (Y/N): ". ACCEPT WS-SMOKER. DISPLAY "HEALTH: (G)OOD, (A)VERAGE, (P)OOR: ". ACCEPT WS-HEALTH. * Base rate by age EVALUATE TRUE WHEN WS-AGE < 30 MOVE 0.0025 TO WS-BASE-RATE WHEN WS-AGE < 40 MOVE 0.0040 TO WS-BASE-RATE WHEN WS-AGE < 50 MOVE 0.0065 TO WS-BASE-RATE WHEN WS-AGE < 60 MOVE 0.0100 TO WS-BASE-RATE WHEN OTHER MOVE 0.0180 TO WS-BASE-RATE END-EVALUATE. * Smoker multiplier IF WS-SMOKER = "Y" MOVE 1.50 TO WS-SMOKE-MULT END-IF. * Health multiplier EVALUATE WS-HEALTH WHEN "G" MOVE 0.90 TO WS-HEALTH-MULT WHEN "A" MOVE 1.00 TO WS-HEALTH-MULT WHEN "P" MOVE 1.30 TO WS-HEALTH-MULT END-EVALUATE. * Calculate premium COMPUTE WS-BASE-PREMIUM = WS-COVERAGE * WS-BASE-RATE. COMPUTE WS-FINAL-PREM = WS-BASE-PREMIUM * WS-SMOKE-MULT * WS-HEALTH-MULT. COMPUTE WS-MONTHLY = WS-FINAL-PREM / 12. DISPLAY " ". DISPLAY "=== PREMIUM BREAKDOWN ===". MOVE WS-COVERAGE TO WS-DISP. DISPLAY "COVERAGE: " WS-DISP. DISPLAY "BASE RATE: " WS-BASE-RATE. MOVE WS-BASE-PREMIUM TO WS-DISP. DISPLAY "BASE PREMIUM: " WS-DISP. DISPLAY "SMOKER FACTOR: " WS-SMOKE-MULT. DISPLAY "HEALTH FACTOR: " WS-HEALTH-MULT. MOVE WS-FINAL-PREM TO WS-DISP. DISPLAY "ANNUAL PREMIUM: " WS-DISP. MOVE WS-MONTHLY TO WS-DISP. DISPLAY "MONTHLY: " WS-DISP. STOP RUN.

Explanation:

Premium calculation with age brackets and risk multipliers.