ATM System Using Java
Diploma Project Report
Submitted by: Your Name
Enrollment No.: 123456789
Diploma in Computer Engineering
Sharad Institute of Technology
April 29, 2025
Abstract
This project report describes the development of an ATM (Automated Teller
Machine) system using Java programming language. The purpose is to simulate
basic ATM operations such as login authentication, balance inquiry, deposit, with-
drawal, and transaction history. The system uses Java’s object-oriented features
and graphical user interface capabilities to create a simple, modular, and user-
friendly application.
1
Java Programming ATM Using Java
Contents
1 Introduction 3
2 Objectives 3
3 Scope of the Project 3
4 Software and Hardware Requirements 3
4.1 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5 System Design 3
5.1 Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6 Class Diagram 4
7 Activity Diagram 5
8 Data Flow Diagram 6
9 Code Implementation 6
9.1 ATM.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
9.2 Main.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
10 Testing and Validation 7
11 GUI Design (Optional) 7
12 Limitations 8
13 Future Enhancements 8
14 Conclusion 8
15 References 8
2
Java Programming ATM Using Java
1 Introduction
An Automated Teller Machine (ATM) enables customers to perform financial transactions
without visiting a bank. This project simulates an ATM interface in Java to perform
essential tasks like balance inquiry, deposit, withdrawal, and transaction tracking.
2 Objectives
• Simulate ATM operations using Java.
• Implement GUI using Java Swing.
• Use object-oriented principles for design.
• Secure and validate user operations.
3 Scope of the Project
This project provides a basic simulation and does not connect to real-time banking servers.
It uses local storage and hardcoded credentials for learning purposes.
4 Software and Hardware Requirements
4.1 Software
• Operating System: Windows/Linux
• Java JDK 8 or above
• IDE: Eclipse or NetBeans
4.2 Hardware
• Intel i3 processor or above
• 4GB RAM minimum
• 500GB Hard Drive
5 System Design
5.1 Modules
1. Login Module – Authenticates users.
2. Transaction Module – Handles deposit, withdrawal, balance check.
3. History Module – Displays last transactions.
3
Java Programming ATM Using Java
6 Class Diagram
(You can include a diagram here by uploading ‘classd iagram.png‘inOverleaf )
class_diagram.png
Figure 1: Class Diagram
4
Java Programming ATM Using Java
7 Activity Diagram
activity_diagram.png
Figure 2: Activity Diagram
5
Java Programming ATM Using Java
8 Data Flow Diagram
dfd.png
Figure 3: Data Flow Diagram
9 Code Implementation
9.1 ATM.java
public class ATM {
private double balance ;
public ATM () {
balance = 1000.0;
}
public void deposit ( double amount ) {
balance += amount ;
}
public void withdraw ( double amount ) {
if ( amount <= balance ) {
balance -= amount ;
} else {
System . out . println ( " Insufficient Balance " ) ;
6
Java Programming ATM Using Java
}
}
public double getBalance () {
return balance ;
}
}
Listing 1: ATM.java
9.2 Main.java
import java . util . Scanner ;
public class Main {
public static void main ( String [] args ) {
ATM atm = new ATM () ;
Scanner sc = new Scanner ( System . in ) ;
int choice ;
do {
System . out . println ( " 1. Deposit \\ n2 . Withdraw \\ n3 . Check
Balance \\ n4 . Exit " ) ;
choice = sc . nextInt () ;
switch ( choice ) {
case 1:
System . out . print ( " Enter amount : " ) ;
atm . deposit ( sc . nextDouble () ) ;
break ;
case 2:
System . out . print ( " Enter amount : " ) ;
atm . withdraw ( sc . nextDouble () ) ;
break ;
case 3:
System . out . println ( " Balance : " + atm . getBalance () ) ;
break ;
}
} while ( choice != 4) ;
}
}
Listing 2: Main.java
10 Testing and Validation
The system was tested with valid and invalid inputs to ensure accurate handling of
deposits, withdrawals, and balance checks. Edge cases such as overdrawing or negative
values were tested for robustness.
11 GUI Design (Optional)
Add screenshots of Swing GUI if available.
7
Java Programming ATM Using Java
12 Limitations
• No real bank connection.
• Hardcoded credentials.
• No encryption used.
13 Future Enhancements
• Connect to a database.
• Add biometric or PIN authentication.
• Implement encryption for data storage.
14 Conclusion
The Java-based ATM simulation successfully demonstrates basic banking operations us-
ing object-oriented programming. It is an educational project to understand Java logic
and design.
15 References
• Java The Complete Reference – Herbert Schildt
• Oracle Java Docs: https://docs.oracle.com/en/java
• TutorialsPoint Java: https://www.tutorialspoint.com/java/