This project is a console-based Bank Management System written in C++. It simulates the operations of a simple banking application where client data is stored in a file and managed through menus.
🔹 Core Features
Client Management
Add new clients (with account number, PIN code, name, phone, and balance).
List all existing clients in a formatted table.
Search for a client by account number.
Update client details.
Delete clients safely from the system.
Transaction Management
Deposit money into a client’s account.
Withdraw money (with balance validation).
Display total balances of all clients.
Data Handling
Client data is saved persistently to a file (Clients).
Data is read, parsed, and converted into stClient structures.
Changes (additions, updates, deletions, deposits/withdrawals) are written back to the file.
User Interface
Main Menu: Client listing, adding, deleting, updating, finding, transactions, exit.
Transaction Menu: Deposit, withdraw, show balances, return to main menu.
Clear, formatted console output with tables and client cards.
🔹 Technical Highlights
Uses structs (stClient) for client records.
Employs enums (enMainMenuOptions, enTransactionMenuOptions) for menu choices.
Demonstrates file handling (fstream) for persistent storage.
Implements validation (e.g., preventing duplicate account numbers, preventing over-withdrawal).
Modular design with separate functions for each screen and operation.
🔹 Example Workflow
User opens the program → Main Menu appears.
User selects an option (e.g., add client).
Program collects input, validates it, updates file.
User can switch to Transactions Menu to deposit/withdraw or check balances.
Exiting the program saves all changes.