GOVERNMENT POLYTECHNIC, THANE
PROGRAMME- INFORMATION TECHNOLOGY
Institute Code- 0116
Java Programming ()
A Micro-Project REPORT
On
“Mini Banking System”
Submitted By
[Link] Tukaram Patil (23110220440)
[Link] Ravindra Gavhande (23110220403)
[Link] Vijay Patil (23110220437)
UNDER GUIDANCE OF
Mrs. [Link]
LECTURER, INFORMATION TECHNOLOGY DEPARTMENT
1
GOVERNMENT POLYTECHNIC, THANE
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION (2024-2025)
Micro-Project Evaluation Sheet
Name of student: Yash Tukaram Patil
Roll No: 49
Name of programme: Information Technology Semester:4th
Processes Assessment Product Assessment Total
Marks
(10)
Enrolment Name of Part A Project Part B Individual
No. Student -Project Methodology Project presentatio
Proposal (2 marks) Report/ n/
(2 marks) Working Viva
Model (4 marks)
(2 marks)
23110220440 Yash
Tukaram
Patil
2
GOVERNMENT POLYTECHNIC, THANE
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION (2024-2025)
Micro-Project Evaluation Sheet
Name of student: Jagdish Ravindra Gavhande
Roll No: 13
Name of programme: Information Technology Semester: 4th
Processes Assessment Product Assessment Total
Marks
(10)
Enrolment Name of Part A - Project Part B Individual
No. Student Project Methodology Project presentatio
Proposal (2 marks) Report/ n/
( 2 marks) Working Viva
Model (4 marks)
(2 marks)
23110220403 Jagdish
Ravindra
Gavhande
3
GOVERNMENT POLYTECHNIC, THANE
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION (2024-2025)
Micro-Project Evaluation Sheet
Name of student: Paresh Vijay Patil
Roll No: 46
Name of programme: Information Technology Semester: 4th
Processes Assessment Product Assessment Total
Marks
(10)
Enrolment Name of Part A- Project Part B Individual
No. Student Project Methodology Project presentatio
Proposal (2 marks) Report/ n/
(2 marks) Working Viva
Model (4 marks)
(2 marks)
23110220437 Paresh
Vijay
Patil
4
GOVERNMENT POLYTECHNIC, THANE
CERTIFICATE
This is to certified that following Second year Information
Technology students have successfully and satisfactory
completed their micro project work, entitled “Mini Banking
System” in partial fulfillment of the requirement for diploma in
information technology academic year 2024-2025.
[Link] Tukaram Patil (23110220440)
[Link] Ravindra Gavhande (23110220403)
[Link] Vijay Patil (23110220437)
[Link] Mr. [Link]
Subject Teacher H.O.D
5
Table of Contents
Sr. No Topics Page NO.
1 Rational
2 Course Outcomes Addressed
3 Programe Code
4 Output of the micro-project
6
A Micro-Project Report On
“Mini Banking System”
Rational :-
The goal of this Java micro project is to develop a simple, functional
application using the Java programming language. This project aims to
demonstrate key principles of software development and object-oriented
programming (OOP). It will focus on applying core Java concepts such as
classes, inheritance, polymorphism, exception handling, and data structures.
These concepts will be implemented in a practical and manageable scope,
allowing developers to gain hands-on experience in Java programming while
reinforcing theoretical knowledge.
Course Outcomes Addressed :-
CO1 - Develop Java programs using classes and objects
CO2 - Develop Java programs for implementing the code reusability
concept
CO3 - Develop programs to implement exception handling
CO4 - Develop Java programs for implementing event handling using
window-based application components
7
Programme Code:
import [Link].*;
import [Link].*;
import [Link];
import [Link];
import [Link].*;
// Custom exception for insufficient balance
class InsufficientBalanceException extends Exception
{
public InsufficientBalanceException(String message)
{
super(message);
}
}
// Custom exception for invalid account number
class InvalidAccountException extends Exception
{
public InvalidAccountException(String message)
{
super(message);
}
}
// Interface defining common bank account operations
interface BankAccount
{
void openAccount(String accno, String name, long balance) throws
InputMismatchException;
void showAccount();
void deposit(long amt) throws InputMismatchException;
void withdrawal(long amt) throws InsufficientBalanceException,
InputMismatchException;
boolean search(String acn);
10
}
// Base class implementing the BankAccount interface
class Account implements BankAccount
{
protected String accno;
protected String name;
protected long balance;
// Constructor for predefined accounts
Account(String accno, String name, long balance)
{
[Link] = accno;
[Link] = name;
[Link] = balance;
}
// Default constructor for user-created accounts
Account() {}
@Override
public void openAccount(String accno, String name, long balance) throws
InputMismatchException
{
[Link] = accno;
[Link] = name;
[Link] = balance;
if (balance < 0)
{
throw new InputMismatchException("Balance cannot be negative.");
}
}
@Override
public void showAccount()
10
{
[Link](accno + ", " + name + ", " + balance);
}
@Override
public void deposit(long amt) throws InputMismatchException
{
if (amt < 0)
{
throw new InputMismatchException("Deposit amount cannot be negative.");
}
balance += amt;
}
@Override
public void withdrawal(long amt) throws InsufficientBalanceException,
InputMismatchException
{
if (amt < 0)
{
throw new InputMismatchException("Withdrawal amount cannot be negative.");
}
if (balance < amt)
{
throw new InsufficientBalanceException("Insufficient Balance. Transaction
Failed.");
}
balance -= amt;
}
@Override
public boolean search(String acn)
{
return [Link](acn);
}
10
}
// Derived class extending the Account class
class MiniBank extends Account
{
// Default constructor for user-created accounts
MiniBank()
{
super();
}
// Constructor for predefined accounts
MiniBank(String accno, String name, long balance)
{
super(accno, name, balance);
}
}
// Main class to run the banking application with GUI
public class BankManagementSystem11 extends JFrame implements ActionListener
{
// Predefined previous customer accounts
static ArrayList<MiniBank> prevCustomers = new ArrayList<>()
{{
add(new MiniBank("23110220440", "Yash", 245000));
add(new MiniBank("23110220437", "Paresh", 318000));
add(new MiniBank("23110220403", "Jagdish", 467000));
}};
// Dynamic list to store new accounts
static ArrayList<MiniBank> newCustomers = new ArrayList<>();
// GUI Components
private JTextArea outputArea;
private JTextField accNoField, nameField, balanceField, amountField;
10
private JButton createButton, depositButton, withdrawButton, searchButton,
displayButton, exitButton;
public BankManagementSystem11()
{
// Set up the JFrame
setTitle("Bank Management System");
setSize(500, 500); // Increased height for better spacing
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Create input panel
JPanel inputPanel = new JPanel();
[Link](new GridLayout(7, 0, 0, 0)); // Adjusted rows to accommodate
spacing
JLabel accNoLabel = new JLabel("Account No:");
[Link](accNoLabel);
accNoField = new JTextField();
[Link](accNoField);
[Link](new JLabel("")); // Empty label for spacing
JLabel nameLabel = new JLabel("Name:");
[Link](nameLabel);
nameField = new JTextField();
[Link](nameField);
[Link](new JLabel("")); // Empty label for spacing
JLabel balanceLabel = new JLabel("Balance:");
[Link]([Link]);
[Link](balanceLabel);
balanceField = new JTextField();
[Link](balanceField);
10
[Link](new JLabel("")); // Empty label for spacing
JLabel amountLabel = new JLabel("Amount:");
[Link]([Link]);
[Link](amountLabel);
amountField = new JTextField();
[Link](amountField);
[Link](new JLabel("")); // Empty label for spacing
// Create buttons
createButton = new JButton("Create Account");
[Link](this);
[Link](createButton);
depositButton = new JButton("Deposit");
[Link](this);
[Link](depositButton);
withdrawButton = new JButton("Withdraw");
[Link](this);
[Link](withdrawButton);
searchButton = new JButton("Search Account");
[Link](this);
[Link](searchButton);
displayButton = new JButton("Display All Accounts");
[Link](this);
[Link](displayButton);
exitButton = new JButton("Exit");
[Link](this);
[Link](exitButton);
10
// Create output area
outputArea = new JTextArea();
[Link](false);
[Link](new Font("Monospaced", [Link], 14)); // Use monospaced
font for better alignment
JScrollPane scrollPane = new JScrollPane(outputArea);
// Add components to the frame
add(inputPanel, [Link]);
add(scrollPane, [Link]);
// Display the frame
setVisible(true);
}
// Helper method to search for an account
private MiniBank searchAccount(String acn) throws InvalidAccountException
{
// Search in new customers
for (MiniBank account : newCustomers)
{
if ([Link](acn))
{
return account;
}
}
// Search in previous customers
for (MiniBank customer : prevCustomers)
{
if ([Link](acn))
{
return customer;
}
10
}
// If not found, throw an exception
throw new InvalidAccountException("Account Not Found.");
}
// ActionListener implementation
@Override
public void actionPerformed(ActionEvent e)
{
try
{
if ([Link]() == createButton)
{
String accno = [Link]();
String name = [Link]();
long balance = [Link]([Link]());
MiniBank newAccount = new MiniBank();
[Link](accno, name, balance);
[Link](newAccount);
[Link]("Account Created Successfully.\n\n");
}
else if ([Link]() == depositButton)
{
String accno = [Link]();
long amt = [Link]([Link]());
MiniBank account = searchAccount(accno);
[Link](amt);
[Link]("Deposit Successful.\n");
[Link]("Updated Balance:" + [Link] + "\n\n");
}
else if ([Link]() == withdrawButton)
{
10
String accno = [Link]();
long amt = [Link]([Link]());
MiniBank account = searchAccount(accno);
[Link](amt);
[Link]("Withdrawal Successful.\n");
[Link]("Updated Balance:" + [Link] + "\n\n");
}
else if ([Link]() == searchButton)
{
String accno = [Link]();
MiniBank account = searchAccount(accno);
[Link]("Account Details:\n");
[Link]("Account No:" + [Link] + "\n");
[Link]("Name:" + [Link] + "\n");
[Link]("Balance:" + [Link] + "\n\n");
}
else if ([Link]() == displayButton)
{
[Link]("Previous Customers:\n");
for (MiniBank customer : prevCustomers)
{
[Link]("Account No:" + [Link] + "\n");
[Link]("Name:" + [Link] + "\n");
[Link]("Balance:" + [Link] + "\n\n");
}
[Link]("New Customers:\n");
for (MiniBank account : newCustomers)
{
[Link]("Account No:" + [Link] + "\n");
[Link]("Name:" + [Link] + "\n");
[Link]("Balance:" + [Link] + "\n\n");
}
}
else if ([Link]() == exitButton)
10
{
[Link](0);
}
}
catch (InvalidAccountException | InsufficientBalanceException |
InputMismatchException ex)
{
[Link]("Error: " + [Link]() + "\n\n");
}
catch (NumberFormatException ex)
{
[Link]("Error: Invalid input. Please enter valid numbers.\n\n");
}
}
public static void main(String[] args)
{
new BankManagementSystem11();
}
}
10
Output of the Micro-Project :
Account Creation:-
Display All Created Accounts:-
10
Deposit by Account NO. :-
Withdraw by Account No. :-
10
Search Account by Account No. :-
Name of the student’s with Enrollment No:-
Name of Group Members Enrollment No.
Yash Tukaram Patil 23110220440
Jagdish Ravindra Gavhande 23110220403
Paresh Vijay Patil 23110220437
10
Mrs. S.S. Waje
Lect. In Information Technology Dept.
10