a program that implements an ATM machine

The second project involves writing a program that implements an ATM machine. The
interface to the program should be a GUI that looks similar to the following:

The program should consist of three classes. The first class should define the
GUI and should be hand-coded and not generated by a GUI generator. In
addition to the main method and a constructor to build the GUI, event
handlers will be needed to handle each of the four buttons shown above. When
the Withdraw button is clicked, several checks must be made. The first
check is to ensure the value in the text field is numeric. Next a check must
be made to ensure the amount is in increments of $20. At that point an
attempt to withdraw the funds is made from the account selected by the radio
buttons. The attempt might result in an exception being thrown for
insufficient funds, If any of those three errors occur a JOptionPane window
should be displayed explaining the error. Otherwise a window should be
displayed confirming that the withdrawal has succeeded. When the Deposit button
is clicked the only necessary check is to ensure that the amount input in the
textfield is numeric. Clicking the Transfer button signifies
transferring funds to the selected account from the other account. The checks
needed are to confirm that the amount supplied is numeric and that there are
sufficient funds in the account from which the funds are being transferred.
Clicking the Balance button will cause a JOptionPane window to be
displayed showing the current balance in the selected account. The main class
must contain two Account objects, one for the checking account and another
for the savings account.
The second class is Account.It must have a constructor plus a method that
corresponds to each of the four buttons in the GUI. It must also incorporate
logic to deduct a service charge of $1.50 when more than four total
withdrawals are made from either account. Note that this means, for example,
if two withdrawals are made from the checking and two from the savings, any
withdrawal from either account thereafter incurs the service charge. The
method that performs the withdrawals must throw an InsufficientFunds
exception whenever an attempt is made to withdraw more funds than are
available in the account. Note that when service charges apply, there must
also be sufficient funds to pay for that charge.
The third class is InsufficientFunds, which is a user defined checked exception.
Be sure to follow good programming style, which means making all instance and
class variables private, naming all constants and avoiding the duplication of
code. Furthermore you must select enough scenarios to completely test the
program.
The projects has to contain:

  • The implementation of solution as a Java
    source files.

  • The documentation as a separately .doc file


expect to find:


  • First, the program has to be compiled without error and
    has to be run.

  • Second is necessary to prepare a documentation that has
    to contain:



  1. Analyze the problem

  2. Design the program to solve the problem

  3. Code the program

  4. Test the program  (input data and expected
    output data)


1. Analyze the problem
1.1.     Your
analysis should be clearly written and demonstrate your thought process and
steps used to analyze the problem. 
1.2.     Include what is the required output?
1.3.     What is the necessary inputs?
1.4.     Include your variable names and definitions.
1.5.     Describe the necessary formulas and sample
calculations that might be needed.

Pseudocode and UML is welcome.
2. Design the
program to solve the problem
Provide your algorithm design for the program you
analyzed  
3. Code the program in Java
language ( include comments inside the code and at beginning of
each class)
4. Test plan
Prepare necessary 
sets of input data (Test data) along with their expected output for testing
your program. 
Powered by