A fully functional ATM simulation built in C++, developed as part of Course 8 – Algorithms & Problem Solving Level 4 on the Programming Advices roadmap by Dr. Mohamed Abou Hadhoud.
| Version | Description |
|---|---|
| Project 4 — ATM System | Core ATM functionality: login, withdrawals, deposits, balance check, file storage |
| Project 4.1 — 1st Extension | Extended with: PIN update, client info update, view client details |
- 🔐 Secure Login — Authenticate via account number & PIN
- ⚡ Quick Withdraw — Select from predefined amounts instantly
- 💵 Normal Withdraw — Enter a custom amount (must be a multiple of 5)
- 💰 Deposit — Add funds with real-time balance update
- 📊 Check Balance — View current account balance at any time
- 💾 Persistent Storage — All data saved and loaded from a
.txtfile
- 🔑 Update PIN Code — Securely change the account PIN
- 📝 Update Client Info — Modify name and phone number
- 👤 View Client Info — Display full account details in a formatted card
- Modular design — each feature is isolated in its own function for readability and reuse
struct+vector— client data is stored in structs and managed via vectors- File I/O — data is read on startup and written back after every transaction
- Input validation — all user input is checked before any operation is performed
- Global session state —
CurrentClienttracks the logged-in user across all screens
├── Project4_ATM.cpp # Core ATM system
├── Project4.1_ATM_Extension.cpp # Extended version
└── Clients.txt # Client data file (required at runtime)
- Clone the repository
- Compile with any C++ compiler — e.g.
g++ Project4_ATM.cpp -o atm - Make sure
Clients.txtis in the same directory as the executable - Run and log in with a valid account number and PIN
Sample credentials from
Clients.txt: Account:A150| PIN:0000