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.

  1. First study the Analysis Documents and the Class Diagram to get a visual overview of the software design.
  2. 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.
  3. Download this zip file that contains the a partial implementation of the solution in Java.
  4. Write an implementation for the BankAccount class. Study the design documentation and make sure your solution implements the design exactly.
  5. 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.
  6. 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."
  7. 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.
  8. 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.