Mimic ATM operations (deposit, withdraw, check balance, exit).
PERFORM loops, IF-ELSE, arithmetic.
IDENTIFICATION DIVISION.
PROGRAM-ID. ATM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 BALANCE PIC 9(6)V99 VALUE 5000.00.
01 AMOUNT PIC 9(6)V99.
01 CHOICE PIC 9.
01 EXIT-FLAG PIC X VALUE "N".
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM UNTIL EXIT-FLAG = "Y"
DISPLAY "1. CHECK BALANCE"
DISPLAY "2. DEPOSIT"
DISPLAY "3. WITHDRAW"
DISPLAY "4. EXIT"
ACCEPT CHOICE
EVALUATE CHOICE
WHEN 1 DISPLAY "BALANCE: " BALANCE
WHEN 2
DISPLAY "ENTER DEPOSIT: " ACCEPT AMOUNT
ADD AMOUNT TO BALANCE
DISPLAY "UPDATED BALANCE: " BALANCE
WHEN 3
DISPLAY "ENTER WITHDRAWAL: " ACCEPT AMOUNT
IF AMOUNT > BALANCE
DISPLAY "INSUFFICIENT FUNDS"
ELSE
SUBTRACT AMOUNT FROM BALANCE
DISPLAY "UPDATED BALANCE: " BALANCE
END-IF
WHEN 4 MOVE "Y" TO EXIT-FLAG
WHEN OTHER DISPLAY "INVALID CHOICE"
END-EVALUATE
END-PERFORM.
STOP RUN.
Explanation:
PERFORM UNTIL
→ creates a menu-driven system.EVALUATE
→ works like switch-case in modern languages.- Handles deposits, withdrawals, exit.
Leave a Reply