SmartATM is a Java-based ATM Simulation System designed to mimic real-world ATM functionalities.
It allows users to authenticate securely, check balances, deposit, and withdraw money — all within a console-based interface.
This project demonstrates encapsulation, loops, methods, and switch-case control flow in Java.
✅ User Authentication – PIN-based secure access
✅ Balance Inquiry – Displays the current account balance
✅ Deposit Functionality – Add money to your account securely
✅ Withdrawal Feature – Withdraw money with balance validation
✅ Menu-Driven Interface – Simple, user-friendly options
✅ Encapsulation – Data hiding for balance and PIN security
- Encapsulation
- Loops (do-while)
- Switch-Case Statements
- User Authentication
- Method Implementation
- Conditional Statements
| Technology | Purpose |
|---|---|
| Java | Core programming language |
| Scanner Class | User input handling |
| OOP Principles | Encapsulation and modularity |
-
Clone the repository
git clone https://github.com/yourusername/SmartATM.git cd SmartATM -
Compile the code
javac ATM.java
-
Run the program
java ATM
Enter your 4-digit PIN: 1234
==== ATM Menu ====
- Check Balance
- Deposit Money
- Withdraw Money
- Exit Choose an option: 2 Enter deposit amount: 2000 Successfully deposited ₹2000
Main Methods in ATM Class:
- authenticate(int enteredPin) → Verifies PIN
- checkBalance() → Displays current balance
- deposit(double amount)` → Deposits entered amount
- withdraw(double amount) → Withdraws cash with validation
By developing this project, I learned:
- How to implement encapsulation to secure sensitive data
- How to build interactive menus using loops and switch-case
- The use of methods for modular programming
- Practical application of authentication and transaction logic
Prince Monga 🚀 Java & Frontend Developer | AI & DevOps Enthusiast 📍 Sirsa, Haryana, India 🌐 https://princemonga.site 📧 growthprinceofficial@gmail.com
⭐ If you found this project helpful, give it a star on GitHub! ⭐
---
Would you like me to make a **formatted README.md file (ready to upload)** for your GitHub repo named **SmartATM**?
I can generate the `.md` file for you directly.