https://github.com/muhamed-shillua/atm-system
A simple C++ project simulating an ATM system with Savings and Checking accounts, supporting deposits, withdrawals, statements, and monthly updates.
https://github.com/muhamed-shillua/atm-system
atm-simulation banking-system c-plus-plus educational-project oop-principles
Last synced: 24 days ago
JSON representation
A simple C++ project simulating an ATM system with Savings and Checking accounts, supporting deposits, withdrawals, statements, and monthly updates.
- Host: GitHub
- URL: https://github.com/muhamed-shillua/atm-system
- Owner: Muhamed-Shillua
- License: mit
- Created: 2025-08-28T12:45:27.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-28T13:23:24.000Z (11 months ago)
- Last Synced: 2025-08-28T20:13:13.480Z (11 months ago)
- Topics: atm-simulation, banking-system, c-plus-plus, educational-project, oop-principles
- Language: C++
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ATM Project (C++)
## Overview
This project is a simple **ATM simulation system** implemented in C++.
It was developed for educational purposes to practice **Object-Oriented Programming (OOP)** concepts such as **inheritance, polymorphism, encapsulation, and abstraction**.
The project models different types of bank accounts and provides common ATM operations like deposit, withdrawal, and monthly updates.
---
## Features
* Create different account types:
* **Savings Account** (with interest rate).
* **Checking Account** (with overdraft limit).
* Deposit and withdraw funds.
* Apply **monthly updates**:
* Interest added to savings accounts.
* Service fees applied to checking accounts.
* Print account statements.
---
## Project Structure
```
ATM_Project_CPP/
│
├── src/
│ ├── Account.cpp
│ ├── SavingsAccount.cpp
│ ├── CheckingAccount.cpp
│ ├── ATM.cpp
│ └── main.cpp
│
├── include/
│ ├── Account.h
│ ├── SavingsAccount.h
│ ├── CheckingAccount.h
│ └── ATM.h
│
├── .gitignore
└── README.md
```
---
## Learning Objectives
This project was built to strengthen understanding of:
* **Abstract classes** and **pure virtual functions**.
* **Method overriding** (polymorphism in action).
* **Encapsulation** of account details.
* Working with **dynamic memory** and destructors.
* Managing multiple objects using **STL containers** (`std::vector`).
---
## Notes
* The project is designed for **educational purposes** only.
* Code is kept simple and easy to read, focusing on **clarity over complexity**.
* Future extensions may include:
* Transaction history.
* User authentication.
* Graphical or menu-based interface.