CSci 581-01: Special Topics in Computer Science
Object-Oriented Design & Programming
Fall Semester 1997

Assignment #4
Due Midnight, Monday, 13 October

Note: The mid-term examination is scheduled for the same day this assignment is due.


Tasks

This is a small group exercise. It will be carried out in groups of approximately five people. I will provide some time during class on 29 September for the groups to work. Each group will turn in only one solution to the assignment.

Describe the software system to control an Automated Teller Machine (ATM):


Specification of the ATM

An automated teller machine (ATM) is a machine that performs financial transactions for bank customers. The machine's customer interface consists of a bank card reader, a display screen, numeric keys, special input keys, a cash dispenser, a deposit slot, and a receipt printer.

When idle, the ATM displays an appropriate greeting message on the screen. The keys and deposit slot are inactive until a customer inserts a bank card into the bank card reader.

When a customer inserts a bank card, the card reader attempts to read it. If the card cannot be read, the ATM displays an appropriate error message on the screen and ejects the card.

If the card can be read successfully, the ATM asks the user to enter his personal identification number (PIN) using the numeric keypad. As the customer enters each digit of the PIN, the ATM indicates that a digit has been entered (but does not display the actual digit).

If the user does not enter a correct PIN, he or she is given two additional opportunities to enter the correct PIN. If the user does not enter the correct PIN on the third attempt, the ATM keeps the card (in case it is a stolen card); the card must be retrieved manually from the appropriate bank employee.

If the user enters the correct PIN, the ATM displays the main menu. The main menu lists several transactions that are supported for that customer:

The customer can select the desired transaction and specify the relevant information. When the ATM completes a transaction, it returns to the main menu to allow the customer to carry out another transaction.

At any time before completing a transaction, the customer can cancel the transaction by depressing the special key marked CANCEL. In this situation the machine cancels any transaction in progress, prints a receipt of all transactions completed, ejects the bank card, and returns to the idle state.

If the customer selects a withdrawal transaction, the ATM asks the customer to specify the account from which the funds are to be withdrawn and the amount of the withdrawal. If the account contains sufficient funds, the cash is given to the customer through the cash dispenser and the customer's account is debited.

If the customer selects a deposit transaction, the ATM asks the customer to specify the account to which the funds are to be deposited and the amount of the deposit and then asks the customer to insert the deposit envelope in the deposit slot.

If the customer selects a transfer transaction, the ATM asks the customer to enter the account from which funds are to be withdrawn, the account to which funds are to be deposited, and the amount of the transfer. If sufficient funds exist, the transfer is made.

If the customer selects a balance inquiry, the ATM asks the customer to specify the account whose balance is desired. The ATM then prints the balance on the receipt.


UP to CSci 581 Assignments page?


Copyright © 1997, H. Conrad Cunningham
Last modified: 29 September 1997.