Professional Documents
Culture Documents
A
Project Report
ON
IN
THE PARTIAL FULFILLMENT OF REQUIREMENT FOR THE
AWARD OF THE DEGREE
OF
MASTER OF SCIENCE IN COMPUTER APPLICATIONS
(2020-2022)
CERTIFICATE
partial fulfillment of the requirement for the award of the degree of Master of Computer
ACKNOWLEDGEMENT
The project work mentioned in this report, is the result of cumulative effort over a
period an entire semester in course of which, I have received intellectual support from
various sources. It is my pleasure to express my profound sense of gratitude to all those who
have contributed richly to this project and have been highly instrumental in making this a
success.
opportunity to work on this project.He has been an invaluable source of guidance and
ANKIT
INDEX
1 Introduction 1
2 Problem Definition 2
3 Existing System and need for the new system 3
4 Scope of the work 4
5 Feasibility Study 6
6 Technical Feasibility 6
7 Economical Feasibility 6
8 Operational Feasibility 6
9 Hardware &software Requirement Specification 7
10 E-R Diagram 8
11 Normalized Database Design 9
12 Activity Diagram 11
13 Code 12-62
14 User interface design 62
15 Testing & Implementation plan 72
16 User manual 78
Introduction:-
I am very glad to introduce my project <AUTOMATED TELLER
MACHINE=. Now a day each company or organization prefers the computerized
paper-work. Definitely the computer system is more reliable than the manual works.
The common human errors can be eliminated with the help of system.
An ATM card (also known as a bank card, client card, key card or cash
card) is an ISO 7810 card issued by a bank, credit union or building society, Unlike a
debit card, in-store purchases or refunds with an ATM card can generally be made in
person only, as they require authentication through a personal identification number
(PIN). In other words, ATM cards cannot be used at merchants that only accept credit
cards.
Problem Definition:-
Existing System:-
Existing system, there is large documentary work so it requires space for its
storage.
Due to existing system crowding of customer in bank premises are more &
pressure of work on bank servants are also more.
The proposed system need to maintain all the records in computerized form.
It is useful to reducing the extra work which maintains the records of book
The storage space, extra workers, missing files all these possibilities are
With the help of this system ATM card holder can see all the records about his
account only at any time efficiently.
The most important facility provided by this system is that, there is no any
possibility of miss any records.
society. Unlike a debit card, in-store purchases or refunds with an ATM card
can generally be made in person only, as they require authentication through a
personal identification number or PIN. In other words, ATM cards cannot be
used at merchants that only accept credit cards.
1. Cash Withdrawal.
2. Balance Enquiry.
3. Mini Statement.
4. PIN Change.
5. Cash Deposit.
6. Loan Information.
7. Help Menu.
1. Cash Withdrawal :-
It mainly used for withdrawal of cash as per customer demand.
For any authorized ATM card holder the ATM system requests for its ATM no &
PIN no then customer to login in their accounts, then amounts are given to system
and customer can withdraw amount.
2. Balance Enquiry :-
It refers to enquiry of bank balance of an authorized ATM card
holder account to check for the resulting balance after certain transactions.
3. Mini Statement:-
It refers to enquiry of last ten transaction of an authorized ATM
card holder. It includes deposit & withdrawal amount of transaction & also
contains respective transaction date and current available balance.
4. PIN Change:-
It refers to the Change of PIN no of an authorized ATM card
holder. I require giving system old PIN no of the ATM card & then giving
new PIN no & confirm the new PIN no.
5. Cash Deposit:-
It mainly used for deposit cash amount to their bank account as per
customer demand. It is easy process of deposit amount to their bank accounts
without filling deposit sleep.
6. Loan Information:-
It mainly used for to give information about various bank loan rates
to ATM card holder.
7. Help Menu:-
Help menu gives information about how to use ATM card when
you give correct information to ATM system. I describe information
about all transaction menus & what is used of each menu.
Feasibility study:-
Feasibility Study is essential to evaluate cost & benefit of the proposed
system. This is very important step because on the basis of this; system decision is
taken on whether to proceed or to postpone the project or to cancel the project.
Feasibility study forms the most important phase in the system development life cycle
so that the people who are affected by the system benefit from the change. This
involves some very crude estimates of schedules of completion of the proposed
system and the cost of the system. This study ensures that the system meets the
objectives of the organization before it can be approved for development. It also
involves the study of different risks involved in developing the system.
The major areas to consider while determining the feasibility of a system
are:-
Technical Feasibility:-
ATM is a system that can work on single stand alone Pentium machine
with 128 MB RAM, Hard disk drive size of 80 GB, mouse, monitor and keyboard &
it also require internet connection to corresponding computer. The equipments are
easily available in the market, so technically the system is very much feasible.
Economical Feasibility: -
This feasibility is useful to find the system development cost and checks
whether it is justifiable. The cost overheads include software and hardware
maintenance cost, training costs that includes cost required for manpower, electricity,
stationary etc. The proposed system will provide the right type of information at right
time, and in the required format. This will save time required for decision-making and
routine operations. Considering all these advantages, the cost overheads of the system
are negligible. So the system is economically feasible.
❖ Operational Feasibility : -
Hardware Requirements:-
Software Requirements:-
● Java Run Time Environment (JRE) – jdk1.5 (As Front End Tool).
● Mysql-connector-java-5.1.22-bin.
● MYSQL server (As Back End Tool).
● JCreator.
Requirement Analysis:-
This involves studying the current system to find out how it is
working and where the improvements should be made. These studies consider both
manual and computer methods. Hence an early step in investigation is to understand
situation.
Controlled Redundancy
Accuracy
Integrity
Name varchar 100 Not Null Name of the ATM card holder.
Activity Diagram:-
Code:-
//Welcome screen
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.applet.*;
public Welcome()
{
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
120,37
0,580,
30);
jf.add(l
4);
img1=new ImageIcon("bank.jpg");
l1=new JLabel(img1);
l1.setBounds(1,1,800,700);
jf.add(l1);
//Transaction Menu
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.sql.*;
import java.io.*;
import java.applet.*;
import javax.swing.Timer;
JFrame jf;
Font f,f1;
JButton b1,b2,b3,b4,b5,b6,b61,b7;
JLabel l1,l2,l3;
ImageIcon img1;
Connection con;
PreparedStatement ps;
Statement stmt;
ResultSet rs;
File wavFile = new File("clicksound.au");
AudioClip sound;
Timer t;
int atno,acno,pno;
String actype;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
b2.addActionListener(this);
b6=new JButton("Help");
b6.setFont(f);
b6.setBounds(300,500,150,40);jf.add(b6);//320,500,190,40 cash dep
b6.addActionListener(this);
jf.setTitle("Transaction Menu");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
{
t.stop();
int reply=JOptionPane.showConfirmDialog(null,"Do you want continue?","ATM Time
Warning",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{
sound.play();
t.stop();
new CashWithdrawal(atno,acno,pno,actype);
jf.setVisible(false);
}
else if(ae.getSource()==b2)
{
sound.play();
t.stop();
new BalanceEnquiry(atno,acno,pno,actype);
jf.setVisible(false);
}
else if(ae.getSource()==b3)
{
sound.play();
t.stop();
new MiniStatement(atno,acno,pno,actype);
jf.setVisible(false);
}
else if(ae.getSource()==b4)
{
sound.play();
t.stop();
new PinChange(atno,acno,pno,actype);
jf.setVisible(false);
}
else if(ae.getSource()==b61)
{
sound.play();
t.stop();
new CashDeposit(atno,acno,pno,actype);
jf.setVisible(false);
}
else if(ae.getSource()==b5)
{
sound.play();
t.stop();
new LoanInformation();
jf.setVisible(false);
}
else if(ae.getSource()==b6)
{
sound.play();
t.stop();
new Help();
jf.setVisible(false);
}
else if(ae.getSource()==b7)
{
sound.play();
t.stop();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
new Welcome();
jf.setVisible(false);
}
}
/* public static void main(String args[])
{
new TransactionMenu(ano,acno,pno);
}*/
}
//Pin Change
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.sql.*;
import java.io.*;
import java.lang.*;
import java.applet.*;
JLabel l1,l2,l3,l4,l5;
ImageIcon img1;
JPasswordField p1,p2,p3;
Connection con;
PreparedStatement ps;
Statement stmt,stmt1;
ResultSet rs;
File wavFile = new File("clicksound.au");
AudioClip sound;
Timer t;
int atno,acno,pno;
String actype;
int pp1,pp2,pp3;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
p1=new JPasswordField(10);
p1.setBounds(360,350,200,30);
jf.add(p1);
p2=new JPasswordField(10);
p2.setBounds(360,400,200,30);
jf.add(p2);
p3=new JPasswordField(10);
p3.setBounds(360,450,200,30);
jf.add(p3);
jf.add(l1);
jf.setTitle("Pin Change");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{
sound.play();
t.stop();
if(((p1.getText()).equals(""))&&((p2.getText()).equals(""))&&((p3.getText()).equals("")))
{
JOptionPane.showMessageDialog(this,"Please enter old PIN no 1 times and new PIN no 2
times !","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
}
else if((Integer.parseInt(p2.getText()))!=(Integer.parseInt(p3.getText())))
{
JOptionPane.showMessageDialog(this,"Please enter New PIN no & confirm PIN no same
!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
p1.setText("");
p2.setText("");
p3.setText("");
}
else
{
try
{
int foundrec=0;
int pingiv=Integer.parseInt(p1.getText());
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
stmt1=con.createStatement();
ps=con.prepareStatement("select * from accountdetail where atmno='"+atno+"' and
accno='"+acno+"' and acctype='"+actype+"' and pinno='"+pingiv+"' ");
rs=ps.executeQuery();
while(rs.next())
{
foundrec=1;
}
if(foundrec==1)
{
pp1=Integer.parseInt(p1.getText());
pp2=Integer.parseInt(p2.getText());
pp3=Integer.parseInt(p3.getText());
stmt=con.createStatement();
stmt.executeUpdate("update accountdetail set pinno="+pp2+" where atmno='"+atno+"'
and accno='"+acno+"' and acctype='"+actype+"' and pinno='"+pp1+"' ");
JOptionPane.showMessageDialog(null,"You have update PIN no succesfully.");
new Welcome();
jf.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"You enter wrong old PIN no.");
p1.setText("");
p2.setText("");
p3.setText("");
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
// JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
}
}
else if(ae.getSource()==b2)
{
sound.play();
p1.setText("");
p2.setText("");
p3.setText("");
}
else if(ae.getSource()==b3)
{
sound.play();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
new Welcome();
jf.setVisible(false);
}
}
/*public static void main(String args[])
{
new PinChange();
}*/
}
//Mini Statement
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.sql.*;
import java.io.*;
import java.applet.*;
import javax.swing.table.*;
import javax.swing.table.DefaultTableModel;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,15);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
l3=new JLabel("DATE");
l3.setFont(f1);
l3.setForeground(Color.WHITE);
l3.setBounds(100,250,70,20);jf.add(l3);
l31=new JLabel(strdate);
l31.setFont(f1);
l31.setForeground(Color.WHITE);
l31.setBounds(100,270,150,20);jf.add(l31);
l31.setText(strdate);
l4=new JLabel("TIME");
l4.setFont(f1);
l4.setForeground(Color.WHITE);
l4.setBounds(250,250,70,20);jf.add(l4);
l41=new JLabel(strtime);
l41.setFont(f1);
l41.setForeground(Color.WHITE);
l41.setBounds(250,270,150,20);jf.add(l41);
l51=new JLabel();
l51.setFont(f1);
l51.setForeground(Color.WHITE);
l51.setBounds(380,270,300,20);jf.add(l51);
scrlPane.setBounds(100,300,300,190);
jf.add(scrlPane);
tabGrid.setFont(new Font ("Times New Roman",0,15));
model.addColumn("TRDate");
model.addColumn("Depositamt");
model.addColumn("Withamt");
model.addColumn("Balance");
.")
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps1=con.prepareStatement("select * from transaction where
atmno='"+atno+"' and accno='"+acno+"' order by trid desc limit 11");
rs=ps1.executeQuery();
int r=0;
rs.last();
while(rs.previous())
{
model.insertRow(r++,new
Object[]{rs.getString(7),rs.getString(4),rs.getString(5),rs.getString(6)});
t.stop();
int reply=JOptionPane.showConfirmDialog(null,"Do you want continue?","ATM Time
Warning",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{ sound.play();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
/*public static void main(String args[])
{
new MiniStatement();
}*/
}
//Loan information
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.io.*;
import java.applet.*;
LoanInformation()
{
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
tVisible(true);
2000 1911 .");
t =new Timer(30000,this);//
30 minisecond
t.start();
}
public void
actionPerformed(ActionEvent ae)
{
if(ae.getSource()==t)
{
t.stop();
int
reply=JOptionPane.showC
onfirmDialog(null,"Do you
want continue?","ATM
Time
Warning",JOptionPane.YES
_NO_OPTION);
if (reply ==
JOptionPane.YES_OPTION)
{
sound
.play()
;
t.start
();
}
else if (reply ==
JOptionPane.NO_OP
TION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
else if(ae.getSource()==cancel)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.io.*;
import java.applet.*;
Help()
{
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New
Roman",Font.BOLD+Font.ITALIC,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
l2=new JLabel("Help");
l2.setFont(new Font("Times New ROman",Font.BOLD,30));
l2.setForeground(Color.BLUE);
l2.setBounds(320,250,200,30);
jf.add(l2);
l3.setFont(f);
l3.setForeground(Color.WHITE);
l3.setBounds(40,300,670,25);
jf.add(l3);
balance.")
card.")
rate."
of our Bank.");
l10=ne
w
JLabel("
Mr.Aks
hay
Mahadi
k.");
l10.setF
ont(f1);
l10.setF
oregro
und(Col
or.RED)
;
l10.set
Bounds
(340,48
0,250,3
0);
jf.add(l
10);
img=new ImageIcon("bank.jpg");
l1=new JLabel(img);
l1.setBounds(1,1,800,700);
jf.add(l1);
jf.setTitle("Help");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==t)
{
t.stop();
int reply=JOptionPane.showConfirmDialog(null,"Do you want continue?","ATM Time
Warning",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
else if(ae.getSource()==cancel)
{
sound.play();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
public static void main(String args[])
{
new Help();
}
}
//Cash Withdrawal
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.sql.*;
import java.io.*;
import java.applet.*;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
t1=new JTextField(40);
t1.setBounds(500,380,200,30);jf.add(t1);
b3.addActionListener(this);
jf.add(l1);
jf.setTitle("Cash Withdrawal");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{ sound.play();
t.stop();
if(((t1.getText()).equals("")))
{
JOptionPane.showMessageDialog(this,"Please enter withdrawal
amount!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
}
givam=0;
amt=0;
givam=Float.parseFloat(t1.getText()); System.out.println("You
enter amount are:"+givam);//////////
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select sum(withamt) from transaction where
tdate='"+strdate+"' and atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())//check today withdrawal sum
{
sumbal=0;
sumbal=sumbal+rs.getFloat(1);
System.out.println("You Today previous wihthdraw Rs:"+sumbal);
}
if(sumbal>1.0) ////if record found on current date then
{
if(actype=="saving")//saving account checking previous amt on current date and
enter amt on current date
{
if((sumbal+givam)<=25000)
{
if(givam<100)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount less than 100
RS!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>10000)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount greater than
10000 RS at the same time!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>100 && (!(givam % 100 ==0)))
{
JOptionPane.showMessageDialog(this,"Withdrawal amount should
be multiple of 100","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else
{
if(rs.next())
{
abal=Float.parseFloat(rs.getString(6));
if(abal>1000)
{
if(givam<=(abal-1000))
{
amt=((abal-1000)-givam);
amtmin=(amt+1000);
stmt=con.createStatement();
stmt.executeUpdate("update
accountdetail set balance="+amtmin+" where atmno='"+atno+"'");
System.out.println("You withdraw rs:"+t1.getText());
stmt1=con.createStatement();
stmt1.executeUpdate("insert into transaction
(atmno,accno,depositamt,withamt,avbalance,tdate)values('"+atno+"','"+acno+"',0,'"+givam+
"','"+amtmin+"','"+strdate+"') ");//
int reply=JOptionPane.showConfirmDialog(null,"Your cash withdrawal is in processing take
money from machine.Do you have to take receipt?","Cash withdrawl
Message",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.stop();
new BalanceEnquiry(atno,acno,pno,actype);
jf.setVisible(false);
}
else if (reply == JOptionPane.NO_OPTION)
{
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
float curbal=rs.getFloat(6);
JOptionPane.showMessageDialog(null,"Your available balance are: '"+curbal+"'","Available
balance",JOptionPane.INFORMATION_MESSAGE);
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
}///
else
{
JOptionPane.showMessageDialog(this,"Your balance is less to withdraw
amount","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
else
{
JOptionPane.showMessageDialog(this,"Your balance is less,You should keep minimum
balance 1000 RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
}
}
else
{
JOptionPane.showMessageDialog(this,"Your can not withdraw per day greater than
25000 RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}//
}
else
{
if(actype=="current")//current account checking previous amt on current
date and enter amt on current date
{
if((sumbal+givam)<=50000)
{
if(givam<100)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount less than 100
RS!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>10000)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount greater than
10000 RS at the same time!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>100 && (!(givam % 100 ==0)))
{
JOptionPane.showMessageDialog(this,"Withdrawal amount should
be multiple of 100","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else
{
if(abal>1000)
{
if(givam<=(abal-1000))
{
amt=((abal-1000)-givam);
amtmin=(amt+1000);
stmt=con.createStatement();
stmt.executeUpdate("update
accountdetail set balance="+amtmin+" where atmno='"+atno+"'");
System.out.println("You withdraw rs:"+t1.getText());
stmt1=con.createStatement();
stmt1.executeUpdate("insert into transaction
(atmno,accno,depositamt,withamt,avbalance,tdate)values('"+atno+"','"+acno+"',0,'"+givam+
"','"+amtmin+"','"+strdate+"') ");//
int reply=JOptionPane.showConfirmDialog(null,"Your cash withdrawal is in processing take
money from machine.Do you have to take receipt?","Cash withdrawl
Message",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.stop();
new BalanceEnquiry(atno,acno,pno,actype);
jf.setVisible(false);
}
else if (reply == JOptionPane.NO_OPTION)
{
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
float curbal=rs.getFloat(6);
JOptionPane.showMessageDialog(null,"Your available balance are: '"+curbal+"'","Available
balance",JOptionPane.INFORMATION_MESSAGE);
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
}///
else
{
JOptionPane.showMessageDialog(this,"Your balance is less to withdraw
amount","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
else
{
JOptionPane.showMessageDialog(this,"Your balance is less,You should keep minimum
balance 1000 RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
}
}
else
{
JOptionPane.showMessageDialog(this,"Your can not withdraw per day greater than
50000 RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");//
}
}
}
} //if record not found on current date then else
else
{
if(actype=="saving")
{ System.out.println(actype);
if(givam<=25000)
{
if(givam<100)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount less than 100
RS!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>10000)
{
JOptionPane.showMessageDialog(this,"You can not withdraw amount greater than
10000 RS at the same time!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else if(givam>100 && (!(givam % 100 ==0)))
{
if(abal>1000)
{
if(givam<=(abal-1000))
{
amt=((abal-1000)-givam);
amtmin=(amt+1000);
stmt=con.createStatement();
stmt.executeUpdate("update
accountdetail set balance="+amtmin+" where atmno='"+atno+"'");
System.out.println("You withdraw
rs:"+t1.getText());
stmt1=con.createStatement();
stmt1.executeUpdate("insert into transaction
(atmno,accno,depositamt,withamt,avbalance,tdate)values('"+atno+"','"+acno+"',0,'"+givam+
"','"+amtmin+"','"+strdate+"') ");
{
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
int curbal=rs.getInt(6);
sound.play(); t1.setText("");
}
else if(givam>100 && (!(givam % 100 ==0)))
{
JOptionPane.showMessageDialog(this,"Wihdrawal
amount should
be multiple of 100","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
else
{
ps=con.prepareStatement("select * from accountdetail where atmno='"+atno+"' and
accno='"+acno+"' and pinno='"+pno+"' and acctype='"+actype+"'");
rs=ps.executeQuery();
while(rs.next())
{
abal=Float.parseFloat(rs.getString(6));
if(abal>1000)
{
if(givam<=(abal-1000))
{
amt=((abal-1000)-givam);
amtmin=(amt+1000);
stmt=con.createStatement();
stmt.executeUpdate("update
accountdetail set balance="+amtmin+" where atmno='"+atno+"'");
System.out.println("You withdraw rs:"+t1.getText());
stmt1=con.createStatement();
stmt1.executeUpdate("insert into transaction
(atmno,accno,depositamt,withamt,avbalance,tdate)values('"+atno+"','"+acno+"',0,'"+givam+
"','"+amtmin+"','"+strdate+"') ");
while(rs.next())
{
int curbal=rs.getInt(6);
JOptionPane.showMessageDialog(null,"Your available balance are: '"+curbal+"'","Available
balance",JOptionPane.INFORMATION_MESSAGE);
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
}///
else
{
JOptionPane.showMessageDialog(this,"Your balance is less to withdraw
amount","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
else
{
JOptionPane.showMessageDialog(this,"Your balance is less,You should keep minimum
balance 1000 RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
}
}
//}//
else
{
JOptionPane.showMessageDialog(this,"Your can not withdraw per day greater than 50000
RS","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
}
}
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
//JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
else if(ae.getSource()==b2)
{
sound.play();
t1.setText("");
}
else if(ae.getSource()==b3)
{
sound.play();
JOptionPane.showMessageDialog(this,"You
cancel."); r last transaction
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
/* public static void main(String args[])
{
new CashWithdrawal();
}*/
}
//Cash Deposit
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.sql.*;
import java.io.*;
import java.applet.*;
JFrame jf;
Font f,f1;
JButton b1,b2,b3;
JLabel l1,l2,l3,l4;
ImageIcon img1;
JTextField t1;
Connection con;
PreparedStatement ps;
Statement stmt,stmt1;
ResultSet rs;
File wavFile = new File("clicksound.au");
AudioClip sound;
Timer t;
int atno,acno,pno,foundrec=0;
String actype,strdate;
float givam,amt,abal,amtmin,sumbal;
Date date1;
GregorianCalendar calendar;
//atno=1000;
//acno=10001;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
t1=new JTextField(40);
t1.setBounds(460,380,200,30);jf.add(t1);
b1.addActionListener(this);
if (reply ==
JOptionPane.YES_OPTION)
{
sound
.play()
;
t.start
();
}
else if (reply ==
JOptionPane.NO_OP
TION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
elseif(ae.getSource()==b1)
{ sound.play();
t.stop();
if(((t1.getText()).equals("")))
{
JOptionPane.showMessageDialog(this,"Please enter deposit
amount!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
}
givam=0; amt=0;
givam=Float.parseFloat(t1.getText());
System.out.println("You enter deposit amount
are:"+givam);//////////
try
{
float curbal=0;
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
curbal=rs.getFloat(6);
}
amt=curbal+givam;
stmt=con.createStatement();
stmt.executeUpdate("update accountdetail set
balance="+amt+" where atmno='"+atno+"'");
stmt1=con.createStatement();
stmt1.executeUpdate("insert into transaction
(atmno,accno,depositamt,withamt,avbalance,tdate)values('"+atno+"','"+acno+"','"+givam+"'
,0,'"+amt+"','"+strdate+"') ");//
int reply=JOptionPane.showConfirmDialog(null,"Your cash deposit is in processing .Do you
have to take receipt?","Cash Deposit Message",JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.stop();
new BalanceEnquiry(atno,acno,pno,actype);
jf.setVisible(false);
}
else if (reply == JOptionPane.NO_OPTION)
{
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
float curbal1=rs.getFloat(6);
JOptionPane.showMessageDialog(null,"Your available balance are: '"+curbal1+"'","Available
balance",JOptionPane.INFORMATION_MESSAGE);
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
//JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
}
else if(ae.getSource()==b2)
{
sound.play();
t1.setText("");
}
else if(ae.getSource()==b3)
{
sound.play();
JOptionPane.showMessageDialog(this,"You
cancel."); r last transaction
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
/* public static void main(String args[])
{
new CashDeposit();
}*/
}
//Balance Enquiry
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.sql.*;
import java.io.*;
import java.applet.*;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
l3=new JLabel("DATE");
l3.setFont(f1);
l3.setForeground(Color.WHITE);
l3.setBounds(100,300,70,30);jf.add(l3);
l31=new JLabel(strdate);
l31.setFont(f1);
l31.setForeground(Color.WHITE);
l31.setBounds(80,340,150,30);jf.add(l31);
l31.setText(strdate);
l4=new JLabel("TIME");
l4.setFont(f1);
l4.setForeground(Color.WHITE);
l4.setBounds(250,300,70,30);jf.add(l4);
l41=new JLabel(strtime);
l41.setFont(f1);
l41.setForeground(Color.WHITE);
l41.setBounds(250,340,150,30);jf.add(l41);
l7.setBounds(50,450,650,20);jf.add(l7);
img1=new ImageIcon("bank.jpg");
l1=new JLabel(img1);
l1.setBounds(1,1,800,700);
jf.add(l1);
jf.setTitle("Balance Enquiry");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
try
{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select * from accountdetail where
atmno='"+atno+"' and accno='"+acno+"'");
rs=ps.executeQuery();
while(rs.next())
{
String atno2=rs.getString(1);
System.out.println("ATM NO is:"+atno2);
l51.setText(atno2);
String curbal=rs.getString(6);
System.out.println("Available balance are:"+curbal);
l61.setText(curbal);
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
//JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{ sound.play();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
t.stop();
new Welcome();
jf.setVisible(false);
}
}
/* public static void main(String args[])
{
new BalanceEnquiry();
}*/
}
//ATM Card No.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.sql.*;
import java.io.*;
import java.applet.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
public Atmcardno()
{
date= new Date();
calendar=new GregorianCalendar();
calendar.setTime(date);
curdate =calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-
"+calendar.get(Calendar.DATE);
System.out.println(curdate);
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
l4.setForeground(Color.BLUE);
l4.setBounds(250,250,300,30);
jf.add(l4);
t1 = new JTextField(20);
t1.setBounds(370,380,200,30);
jf.add(t1);
pwd=new JPasswordField(10);
pwd.setFont(f1);
pwd.setBounds(370,430,200,30);
jf.add(pwd);
img1=new ImageIcon("bank.jpg");
l1=new JLabel(img1);
l1.setBounds(1,1,800,700);
jf.add(l1);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{
//fetch
sound.play();
t.stop();
try
{
if(((t1.getText()).equals(""))&&((pwd.getText()).equals("")))
{
JOptionPane.showMessageDialog(this,"Please enter ATM card no and PIN
no!","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
}
else
{
int foundrec = 0;
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select * from accountdetail where
atmno='"+t1.getText()+"' and pinno='"+pwd.getText()+"'");
rs=ps.executeQuery();
while(rs.next())
{
atno=rs.getInt(1); System.out.println(atno);
acno=rs.getInt(2); System.out.println(acno);
pno=rs.getInt(3); System.out.println(pno);
String cardname=rs.getString(5); System.out.println(cardname);
String expdate=rs.getString(7);
try
{
if(date1.compareTo(date2)>=0)
{
System.out.println("Expiry date of atm:"+sdf.format(date1)+"is after today
date:"+sdf.format(date2));
JOptionPane.showMessageDialog(null,"Hello "+cardname);
sound.play();
new AccountType(atno,acno,pno);
jf.setVisible(false);
}
else if(date1.compareTo(date2)<0)
{
System.out.println("Date1 is before Date2");
JOptionPane.showMessageDialog(this,"Your atm card is out of expiry date.Please take
new ATM card from your home bank.","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
new Welcome();
jf.setVisible(false);
}
}
catch(ParseException ex)
{
System.out.println("Exception in date format"+ex);
ex.printStackTrace();
}
foundrec = 1;
}
if (foundrec == 0)
{
JOptionPane.showMessageDialog(null,"Invalid ATM card no or PIN
no.","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
t1.setText("");
pwd.setText("");
}
} con.close();
}
catch(SQLException se)
{
System.out.println(se);
// JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
}
else if(ae.getSource()==b2)
{
sound.play();
t1.setText("");
pwd.setText("");
}
else if(ae.getSource()==b3)
{
sound.play();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
new Welcome();
jf.setVisible(false);
}
}
/* public static void main(String args[])
{
new Atmcardno();
}*/
}
//Account Type
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import java.sql.*;
import java.io.*;
import java.applet.*;
JButton b1,bs1,bc1;
JLabel l1,l2,l4;
ImageIcon img1;
Connection con;
PreparedStatement ps;
Statement stmt;
ResultSet rs;
File wavFile = new File("clicksound.au");
AudioClip sound;
Timer t;
int atno,acno,pno;
String actype,actypegive;
jf=new JFrame();
f = new Font("Times New Roman",Font.BOLD,20);//button
f1 = new Font("Times New Roman",Font.BOLD,25);//label
jf.setLayout(null);
try{sound = Applet.newAudioClip(wavFile.toURL());}
catch(Exception e){e.printStackTrace();}
bs1=new JButton("Saving");
bs1.setFont(f);
bs1.setBounds(390,360,130,40);jf.add(bs1);
bs1.addActionListener(this);
bc1=new JButton("Current");
bc1.setFont(f);
bc1.setBounds(390,440,130,40);jf.add(bc1);
bc1.addActionListener(this);
b1.setBounds(280,550,130,40);jf.add(b1);
b1.addActionListener(this);
img1=new ImageIcon("bank.jpg");
l1=new JLabel(img1);
l1.setBounds(1,1,800,700);
jf.add(l1);
jf.setTitle("Account Type");
jf.setSize(800,700);
jf.setLocation(220,20);
jf.setResizable(false);
jf.setVisible(true);
if (reply == JOptionPane.YES_OPTION)
{
sound.play();
t.start();
}
else if (reply == JOptionPane.NO_OPTION)
{
sound.play();
t.stop();
new Welcome(); jf.setVisible(false);
}
}
else if(ae.getSource()==b1)
{
sound.play();
t.stop();
JOptionPane.showMessageDialog(this,"Your last transaction cancel.");
sound.play();
new Welcome();
jf.setVisible(false);
}
else if(ae.getSource()==bs1)//saving account matching
{
sound.play();
t.stop();
try
{
int foundrec = 0;
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select acctype from accountdetail where
atmno='"+atno+"' and accno='"+acno+"' and pinno='"+pno+"' ");
rs=ps.executeQuery();
while(rs.next())
{
actypegive=rs.getString(1);
System.out.println(actypegive);
foundrec = 1;
}
if (foundrec == 1)
{
if(actypegive.equals("saving"))
{
actype="saving";
System.out.println(actypegive);
new TransactionMenu(atno,acno,pno,actype);
jf.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"Your account type is not match with given
account type.","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
new Welcome();
jf.setVisible(false);
}
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
// JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
}
else if(ae.getSource()==bc1)//current account matching
{
sound.play();
t.stop();
try
{
int foundrec1 = 0;
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/atmdb","root","");
System.out.println("Connected to database.");
ps=con.prepareStatement("select acctype from accountdetail where
atmno='"+atno+"' and accno='"+acno+"' and pinno='"+pno+"' ");
rs=ps.executeQuery();
while(rs.next())
{
actypegive=rs.getString(1);
System.out.println(actypegive);
foundrec1 = 1;
}
if (foundrec1 == 1)
{
if(actypegive.equals("current"))
{
actype="current";
System.out.println(actype);
new TransactionMenu(atno,acno,pno,actype);
jf.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(null,"Your account type is not match with given
account type.","Warning",JOptionPane.WARNING_MESSAGE);
sound.play();
new Welcome();
jf.setVisible(false);
}
}
con.close();
}
catch(SQLException se)
{
System.out.println(se);
// JOptionPane.showMessageDialog(null,"SQL Error:"+se);
}
catch(Exception e)
{
System.out.println(e);
//JOptionPane.showMessageDialog(null,"Error:"+e);
}
}
}
/*public static void main(String args[])
{
new AccountType();
}*/
}
ATM
SYSTEM
1 1
5) ATM card no screen: each screen display out of 20sec then below message.
6) Account type screen: if account type is correct then go to transaction menu &
wrong then appear below screen & go to welcome screen.
8) Cash withdrawal screen: if cash withdrawal is success then appear below screen,
if we click on YES then go to balance enquiry screen, if NO then show available
balance.
10) Cash withdrawal screen: if per day withdrawal amount >25000 then below
appear screen if your account is saving & account is current then
amount>50000.
11) Cash deposit screen: if cash deposit is success then appear below screen, if we
click on YES then go to balance enquiry screen, if NO then show available
balance.
13) PIN change screen: if we enter old pin no correct and new & confirm pin no
same then appear below screen.
14) PIN change screen: if we enter old pin no wrong and new & confirm pin no
same then appear below screen.
15) PIN change screen: if we enter old pin no correct and new & confirm pin no
different then appear below screen.
Principle of Testing:
Unit Testing:
At vertex of spiral, testing begins with unit testing. It aims at testing each
component or unit of software to check its functionality, independently. Ensures that it
works properly as a unit. Typical units are
Interface: tested to check proper flow of information into and out of the program
unit under test.
Local data structures: tested to check integrity of data during execution.
Boundary conditions: tested to ensure unit operates properly at boundaries to limit
processing.
Independent paths: tested to ensure all statements in the unit are executed at least
once.
Error handling paths: tested to check whether error messages are user friendly and
corresponds to error encountered, whether they reroute or terminate process when
error occurred.
Common errors found during unit testing are: incorrect initialization, precision
inaccuracy, mixed mode operation, incorrect arithmetic precedence etc.
Integration testing:
Further progressing the testing process, these units must be assembled or
integrated to form complete software package. So integration testing focuses the
problems of verification and construction.
Validation testing:
Taking one more outward turn along spiral, comes validation testing. It
consists of higher order tests using validation criteria defined during requirement
Downloaded by Maheshwara Reddy (maheshwara8985@gmail.com)
lOMoARcPSD|33986000
analysis phase. This test assures that software meets all functional, behavioural and
performance requirements.
Performance Testing:
It concentrate on the transaction response time, throughput etc. It is
designed to test the run-time performance of software within the context of an integral
system. Performance testing is conducted throughout all steps of testing process.
continue?= continue?=
If user clicks on If user clicks on
YES then current YES then current
screen is display screen is display
20seconds. 20seconds.
If user clicks on If user clicks on
NO then current NO then current
screen is exit & screen is exit &
display <Welcome display <Welcome
screen= screen=
4 Validate Check for If account type of If account type of Pass
account account type of ATM card holder is ATM card holder
type of ATM card match then display is match then
ATM card holder of next screen as display next
holder. Account type <Transaction screen as
screen. Menu= <Transaction
If account type of Menu=
ATM card holder is If account type of
not match then ATM card holder
display messages is not match then
<Your account display messages
type is not <Your account
matched with type is not
given account matched with
type.= & current given account
screen is exit & type.= & current
display <Welcome screen is exit &
screen= display <Welcome
screen=
11 Validate old Check old PIN is If old PIN is correct If old PIN is pass
PIN no. correct of PIN then go to test no correct then go
Change screen. 12. to test no 12.
If old PIN is If old PIN is
wrong then display wrong then display
message "You message "You
enter wrong old enter wrong old
PIN no.” PIN no.”
User Manual:-
● Objective :
The main objective of this user manual is to introduce the user with the
available facilities in the ATM System. It provides a conceptual overview of the
functioning of the system and the detailed discussion and reports.
1. Getting Started.
The information regarding how one can start with the ATM system and how
to select appropriate buttons on the welcome screen can be seen and find in the
Getting Started portion.
The Functioning of the system part deals with the description of the
purpose of each of the menu items and screens. It also describes the functioning of
the system i.e. where to input data, how to process it and the detailed information
about the reports and their printing. This portion also describes the purpose of each
input screen used in the system.
● Getting Started:
2. Windows is loaded and goes the ATM project folder and in than run
welcome.java file.
4. Enter ATM card no and PIN no if it correct then go to account type screen, if
wrong then re-enter.
5. Select the account type, if account type is correct then goes to the next screen as
transaction menu if wrong then goes to the welcome screen.
6. Select any option from transaction menu screen and perform its respective
operations.
7. To cancel the current screen clicks in cancel button and next screen appear as
welcome.
8. To exit from the system clicks on the 8EXIT9 button on the welcome screen.
This part of the user manual describes the basic functioning of the
system the procedure to invoke the main menu which has been described
previously.
When the transaction screen appears the user can select several
operations that can be performed on the system.
Menu Explanation:-
This section refers to the various types of interfaces which the user has to
face during operating the computerized system of <System=.
The section refers with the entire interface [Screens] a user will have to face
while operating the current system. It shows the various screens appearing for
different transactions. All the screens of different transactions in the system are
shown here.
1) Welcome: - This is main file of ATM system, by using this we can enter to
the ATM system & go to next screen as ATM card no.
2) ATM card no: - by using this we can enter the ATM card no and PIN no &
these are correct then we go to next screen as Account type.
3) Account Type: - by using this we can press our account type if account
type is match then go to next screen as Transaction. If account type is not
match then display appropriate message and go to welcome screen.
9) PIN Change: - by using this we can change or update our PIN no of ATM
card.
10) Loan Information: - by using this we can see various loan rates such as
home loan, car loan and personal loan.
11) Help: - by using this we can see how to operate existing system.
Drawbacks:-
1. ATM System requires 24 hours security therefore it requires security guards.
2. ATM System requires small shop to store machine therefore need to pay that
shop rents.
3. If money in the ATM is not available then it takes some time to fill the money
in the cash stock box in ATM machine.
4. If ATM card is lost & this lost ATM card uses any other person then it will
become dangerous.
Limitations:-
1. Our system may become obsolete as in computer industry; technological
developments are very fast, new software, new utilities may obsolete this
system.
2. System security is ATM card no and PIN no dependent, if security about ATM
card no and PIN no information is not maintained, system could be in great
danger.
3. This system is constructed and developed for text environment so pack gives
best appearance and performance under text environment but poor appearance
on GUI environment.
Future scope:-
The system is designed keeping in mind the current requirements of the
ATM. However some aspects were not considered and system can easily changing
where shop requirements are changed.
❖ The system can be made flexible so that new modules can be added at any
given time.
Abbreviations:-
After I have completed the project we are sure that problem in the
existing system would overcome. <Automated Teller Machine (ATM). System”
process has been computerized reduced human error and to increase the efficiency.
The main focus of this project is to lessen human efforts. The maintenance of record
is made efficient, as all the records are stored in the database through which the data
can be retrieved easily. The navigation control is provided in all form to navigate
through large amount of records. My main aim of the project is to provide correct
banking services to customer of the bank at any time any place.
The problem which exited in earlier system, have been removed to large
extent. The computerization of the <Automated Teller Machine (ATM) System.”
will not only improve the efficiency but will also reduce human stress thereby
indirectly improving human resources.