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 | Intermediate | COBOL

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.