Skip to content

prince-monga/ATM-Simulation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

💳 SmartATM – Java-Based ATM Simulation System

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.


🚀 Features

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


🧠 Concepts Used

  • Encapsulation
  • Loops (do-while)
  • Switch-Case Statements
  • User Authentication
  • Method Implementation
  • Conditional Statements

🧩 Technologies

Technology Purpose
Java Core programming language
Scanner Class User input handling
OOP Principles Encapsulation and modularity

💻 How to Run the Project

🪜 Steps:

  1. Clone the repository

    git clone https://github.com/yourusername/SmartATM.git
    cd SmartATM
    
    
  2. Compile the code

    javac ATM.java
  3. Run the program

    java ATM

🧮 Sample Output

Enter your 4-digit PIN: 1234

==== ATM Menu ====

  1. Check Balance
  2. Deposit Money
  3. Withdraw Money
  4. Exit Choose an option: 2 Enter deposit amount: 2000 Successfully deposited ₹2000

🧾 Code Overview

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

🎯 Learning Outcome

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

🧑‍💻 Author

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.

About

A Java-based ATM Simulation System implementing secure transaction logic with encapsulation and user authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages