Bank Account Balance
Problem Description
Track deposits and withdrawals, maintain balance, prevent overdraft.
Expected Output
Running balance with transaction history
Hints
Use loop for transactions, validate withdrawal.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. BANKACCT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-BALANCE PIC S9(9)V99 VALUE 1000.
01 WS-TRANS-TYPE PIC X(1).
01 WS-AMOUNT PIC 9(7)V99.
01 WS-CONTINUE PIC X(1) VALUE "Y".
PROCEDURE DIVISION.
DISPLAY "OPENING BALANCE: " WS-BALANCE.
PERFORM UNTIL WS-CONTINUE NOT = "Y"
DISPLAY "D=DEPOSIT, W=WITHDRAW, Q=QUIT: "
ACCEPT WS-TRANS-TYPE
EVALUATE WS-TRANS-TYPE
WHEN "D"
DISPLAY "AMOUNT: "
ACCEPT WS-AMOUNT
ADD WS-AMOUNT TO WS-BALANCE
DISPLAY "DEPOSITED. BALANCE: " WS-BALANCE
WHEN "W"
DISPLAY "AMOUNT: "
ACCEPT WS-AMOUNT
IF WS-AMOUNT > WS-BALANCE
DISPLAY "INSUFFICIENT FUNDS!"
ELSE
SUBTRACT WS-AMOUNT FROM WS-BALANCE
DISPLAY "WITHDRAWN. BALANCE: " WS-BALANCE
END-IF
WHEN "Q"
MOVE "N" TO WS-CONTINUE
END-EVALUATE
END-PERFORM.
DISPLAY "FINAL BALANCE: " WS-BALANCE.
STOP RUN.
Explanation:
Business logic includes overdraft protection. EVALUATE handles menu.