Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

JAVA Programming needs to be coded. A customer may open an account in Bank A, Bank B or both. For simplicity, we assume that customers

JAVA Programming needs to be coded.

A customer may open an account in Bank A, Bank B or both. For simplicity, we assume that customers can make only make one type of account, checking account. Also, customers makes at most one (0 or 1) account with a bank. An account is associated with one and only one cash card. A cash card comes with a card number from which bank_id and the associated account number can be identified. A cash card also comes with its expiration date.

Customers get an access to an ATM machine using their cash cards and enter their own transactions. We consider only withdrawals for transactions. Let's assume that each card is owned by a single customer and thus simultaneous use of the same card from different ATMs will not be considered.

Each ATM defines the maximum amount of cash a customer can withdraw per transaction. We assume ATMs never run out of cash for a withdraw request that satisfies these conditions.

The ATM reads a cash card number and checks if the card is valid. A card is valid if it is not expired and its bank id is correct for the bank associated with the ATM. If it not valid, display error message and return card to the customer. If the card is valid, the ATM Initiate authorization dialog.

Authorization dialog: The customer is requested to enter his password. The ATM verifies password with the bank. The ATM receives the result of authorization (accept/reject) from bank. For the authorization is rejected, the relevant error message is displayed and card is returned to the customer. If authorization is accepted, start transaction dialog.

Transaction dialog: When authorization is successfully completed, the customer can withdraw money by entering an amount. If the amount is not within the pre-defined transaction limit at the ATM, display an error message asking the customer to redo the transaction. Otherwise, the ATM starts the transaction by sending request to the bank. After the bank gets a withdraw request from the ATM, the bank checks if the corresponding bank account has enough money for the transaction. If the amount exceeds the limit, the transaction will fail and the bank will send an error message to the ATM. If the account has sufficient money for the transaction, the amount is reduced from the bank account, the transaction is logged against the card number at the bank, a success message is sent to the ATM, and the customer can get money dispensed from the ATM. We assume ATMs never run out of cash for a successful transaction. If the transaction is not successful due to insufficient fund from the account, an error message should be displayed. In this case, the customer will be asked to enter a different amount.

For simplicity, let's assume that after a customer received an error message about an incorrect password and a withdrawal amount exceeding the pre-defined limit at ATM or the available balance of the account, the customer will not make the same mistake.

-----------Sample Output------------

States of two Banks Assume all accounts have $40 preloaded. BankofA (two customers) Customer with Cash Card (bankid: A, account number (#11), expires on MM/DD/YY, password ... Customer with Cash Card (bankid: A, account number (#12), expires on MM/DD/YY, password ... BankofB (three customers) Customer - Cash Card (bankid: B, account number #: 111), expires on MM/DD/YY, password... Customer - Cash Card (bankid: B, account number #: 122), expires on MM/DD/YY, password... Customer - Cash Card (bankid: B, account number #: 133), expires on MM/DD/YY, password... States of four ATMs (2 for each Bank) ATM1_A: (ATM1 from BankofA) The maximum amount of cash a card can widthraw per day: $50 Do the same for ATM2_A, ATM1_B, and ATM2_B. ------------------------------------------------------------------------------ Now, your program is in an interactive mode. % means the prompt on your cmd (shell). % Enter your choice of ATM % ATM_A1 % Enter your card % A11 % This card is expired and returned to you. % Enter your card % B 111 % This card is not supported by this ATM % A 12 % The card is accepted. Please enter your password. (ATM takes this password and sends it to the bank) % &*(*&) % This is a wrong password. Enter your password. % mypassword % Authorization is accepted. Start your transaction by entering the amount to withdraw. % 100 % This amount exceeds the maximum amount you can withdraw per transaction. Please enter the amount or quit. % 25 (ATM passes $25 to the bank to determine the current balance can afford this money.) % $25 is withdrawn from your account. The remaining balance of this account is $. If you have more transactions, enter the amount or quit. $ 25 % The amount exceeds the current balance. Enter another amount or quit. % 15 % $15 is withdrawn from your account. The remaining balance of this account is $0. If you have more transactions, enter the amount or quit. %quit 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Seven Databases In Seven Weeks A Guide To Modern Databases And The NoSQL Movement

Authors: Luc Perkins, Eric Redmond, Jim Wilson

2nd Edition

1680502530, 978-1680502534

More Books

Students also viewed these Databases questions

Question

=+ What are the information and consultation requirements?

Answered: 1 week ago

Question

=+ Should the MNE belong (why, why not)?

Answered: 1 week ago