Terminal-based ATM simulator in C++ demonstrating object-oriented design: accounts, PIN authentication, transactions, and an ANSI-colored console UI.
A single-file C++ console application that models a small bank ATM. Users authenticate with account ID and PIN, then deposit, withdraw, check balance, or view history. An admin mode supports adding and removing accounts. The UI uses ANSI colors and a short animated splash screen.
- PIN authentication with 3-attempt lockout
- Deposit, withdraw, and balance inquiry
- Per-account transaction history
- Multiple customer accounts plus admin access
- Admin panel — create and delete accounts
- ANSI color UI with animated startup banner
Compile and run (from the repository root):
g++ -std=c++17 -o atm "Atm Simulation.cpp" && ./atmWindows (PowerShell / CMD):
g++ -std=c++17 -o atm.exe "Atm Simulation.cpp"
.\atm.exeUse Windows Terminal or a modern terminal for full ANSI color support.
| Account | ID | PIN |
|---|---|---|
| Shahab Ahmed | 1001 | 1234 |
| Sara Khan | 1002 | 4321 |
| Ali Hassan | 1003 | 0000 |
| Admin | — | 9999 |
- Encapsulation — account data and operations behind classes
- Separation of concerns — UI flow vs. banking logic
- STL usage — containers and strings for account storage
- User input validation — PIN attempts and menu-driven control flow
Simple-ATM-Simulation/
├── Atm Simulation.cpp # Application source
└── README.md
Shahab Ahmed — GitHub · LinkedIn · Portfolio
Open source for learning and portfolio use.



