Skip to content

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

💳 ATM System — C++ Console Application

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.


📦 Project Versions

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

✨ Features

🔷 Project 4 — ATM System

  • 🔐 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 .txt file

🔶 Project 4.1 — 1st Extension (builds on Project 4)

  • 🔑 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

🛠️ Technical Highlights

  • 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 stateCurrentClient tracks the logged-in user across all screens

📂 File Structure

├── Project4_ATM.cpp           # Core ATM system
├── Project4.1_ATM_Extension.cpp  # Extended version
└── Clients.txt                # Client data file (required at runtime)

🚀 How to Run

  1. Clone the repository
  2. Compile with any C++ compiler — e.g. g++ Project4_ATM.cpp -o atm
  3. Make sure Clients.txt is in the same directory as the executable
  4. Run and log in with a valid account number and PIN

Sample credentials from Clients.txt: Account: A150 | PIN: 0000