Lab Exploration: Automated Teller Machine Simulation
This program is a simulation of a very simplistic ATM. When the program
starts it loads a file of customer account numbers and PINs. It starts
all the accounts with a zero balance. A graphical user interface lets the
user enter an account number and PIN and (if the account is valid) then
make withdrawals or deposits to either a checking or savings account. The
data isn't saved, so on subsequent executions the account starts at zero
again.
-
First study the Analysis
Documents and the Class
Diagram to get a visual overview of the software design.
-
Read the complete design documentation (javadocs) online here.
It is quite extensive and should tell you everything you need to know in
order to complete the skeleton implementation.
-
Download this zip
file that contains the a partial implementation of the solution in
Java.
-
Write an implementation for the BankAccount class. Study the design documentation
and make sure your solution implements the design exactly.
-
Study the Bank and Customer classes which are partially complete. Finish
the implementation for the Bank and Customer classes. Wherever the code
is incomplete you will find a "fill in code here" or similar comment. The
classes for ATMSimulation, ATM, and KeyPad are complete and need
no work on your part.
-
Now make an enhancement to the program. After a transaction is performed,
show a message dialog box which informs the user "Your [deposit/withdrawal]
of [amount] has been accepted."
-
Now modify the program so that the account balances are also stored in
the customer file (along with the customer number and PIN) so that the
account balances can be retrieved in subsequent executions.
-
Submit a printout of the source code containing your modifications and
a printout of a screen capture of the application running and your dialog
box displayed. Use a highlighter to mark the sections of code that you
created.
If you feel you have already mastered the concepts in
this lab, you may submit a copy of some other work you have already produced
(e.g. a program in another class) which demonstrates the same topics.