Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Problem statement: A local bank intends to install a new automated teller machine (ATM) to allow users (i.e., bank customers) to perform basic financial transactions.

  1. Problem statement:

A local bank intends to install a new automated teller machine (ATM) to allow users (i.e., bank customers) to perform basic financial transactions. Each user can have only one account at the bank. ATM users should be able to view their account balance, withdraw cash (i.e., take money out of an account) and deposit funds (i.e., place money into an account). Develop this using C++.

Design Specifications:

The user interface of the automated teller machine contains the following hardware components:

  • a screen that displays messages to the user
  • a keypad that receives numeric input from the user
  • a cash dispenser that dispenses cash to the user and
  • a deposit slot that receives deposit envelopes from the user. As shown bellow:image text in transcribedFigure 1 User Interfacing of ATM
  • The cash dispenser begins each day loaded with 500 $20 bills.

    The bank wants you to develop software to perform the financial transactions initiated by bank customers through the ATM. The bank will integrate the software with the ATMs hardware at a later time. The software should encapsulate the functionality of the hardware devices (e.g., cash dispenser, deposit slot) within software components, but it need not concern itself with how these devices perform their duties. The ATM hardware has not been developed yet, so instead of writing your software to run on the ATM, you should develop a first version of the software to run on a personal computer. This version should use the computers monitor to simulate the ATMs screen, and the computers keyboard to simulate the ATMs keypad.

    An ATM session consists of authenticating a user (i.e., proving the users identity) based on an account number and personal identification number (PIN), followed by creating and executing financial transactions.

    To authenticate a user and perform transactions, the ATM must interact with the banks account information database. [Note: A database is an organized collection of data stored on a computer.] For each bank account, the database stores an account number, a PIN and a balance indicating the amount of money in the account. [Note: For simplicity, we assume that the bank plans to build only one ATM, so we do not need to worry about multiple ATMs accessing this database at the same time. Furthermore, we assume that the bank does not make any changes to the information in the database while a user is accessing the ATM. Also, any business system like an ATM faces reasonably complicated security issues that go well beyond the scope of this project [not to implement security]. We make the simplifying assumption, however, that the bank trusts the ATM to access and manipulate the information in the database without significant security measures.]

    Upon first approaching the ATM, the user should experience the following sequence of events (shown in Figure. 1):

  • The screen displays a welcome message and prompts the user to enter an account number.
  • The user enters a five-digit account number, using the keypad.
  • The screen prompts the user to enter the PIN (personal identification number) associated with the specified account number.
  • The user enters a five-digit PIN, using the keypad.
  • If the user enters a valid account number and the correct PIN for that account, the screen displays the main menu (Figure 2). If the user enters an invalid account number or an incorrect PIN, the screen displays an appropriate message, then the ATM returns to Step 1 to restart the authentication process.
  • image text in transcribed
  • After the ATM authenticates the user, the main menu (Fig 2) displays a numbered option for each of the three types of transactions: balance inquiry (option 1), withdrawal (option 2) and deposit (option 3). The main menu also displays an option that allows the user to exit the system (option 4). The user then chooses either to perform a transaction (by entering 1, 2 or 3) or to exit the system (by entering 4). If the user enters an invalid option, the screen displays an error message, then redisplays to the main menu.

    If the user enters 1 to make a balance inquiry, the screen displays the users account balance. To do so, the ATM must retrieve the balance from the banks database.

    The following actions occur when the user enters 2 to make a withdrawal:

  • The screen displays a menu (shown in Fig. 25.3) containing standard withdrawal amounts: $20 (option 1), $40 (option 2), $60 (option 3), $100 (option 4) and $200 (option 5). The menu also contains an option to allow the user to cancel the transaction (option 6).
  • The user enters a menu selection (16) using the keypad.
  • If the withdrawal amount chosen is greater than the users account balance, the screen displays a message stating this and telling the user to choose a smaller amount. The ATM then returns to Step 1. If the withdrawal amount chosen is less than or equal to the users account balance (i.e., an acceptable withdrawal amount), the ATM proceeds to Step 4. If the user chooses to cancel the transaction (option 6), the ATM displays the main menu (Fig. 2) and waits for user input.
  • If the cash dispenser contains enough cash to satisfy the request, the ATM proceeds to Step 5. Otherwise, the screen displays a message indicating the problem and telling the user to choose a smaller withdrawal amount. The ATM then returns to Step 1.
  • The ATM debits (i.e., subtracts) the withdrawal amount from the users account balance in the banks database.
  • The cash dispenser dispenses the desired amount of money to the user.
  • The screen displays a message reminding the user to take the money.
  • image text in transcribed
  • The following actions occur when the user enters 3 (while the main menu is displayed) to make a deposit:

  • The screen prompts the user to enter a deposit amount or to type 0 (zero) to cancel the transaction.
  • The user enters a deposit amount or 0, using the keypad. [Note: The keypad does not contain a decimal point or a dollar sign, so the user cannot type a real dollar amount (e.g., $1.25). Instead, the user must enter a deposit amount as a number of cents (e.g., 125). The ATM then divides this number by 100 to obtain a number representing a dollar amount (e.g., 125 100 = 1.25).]
  • If the user specifies a deposit amount, the ATM proceeds to Step 4. If the user chooses to cancel the transaction (by entering 0), the ATM displays the main menu (Fig. 2) and waits for user input.
  • The screen displays a message telling the user to insert a deposit envelope into the deposit slot.
  • If the deposit slot receives a deposit envelope within two minutes, the ATM credits (i.e., adds) the deposit amount to the users account balance in the banks database.
  • After the system successfully executes a transaction, the system should redisplay the main menu (Fig. 2) so that the user can perform additional transactions. If the user chooses to exit the system (option 4), the screen should display a thank you message, then display the welcome message for the next user.

    Following is the UML diagram of ATM you can use this or can create your own if you want.
  • image text in transcribed
Welcome! Please enter your account number: 12345 Enter your PIN: 54321 Screen 2 3 Take cash nore Cash Dispenser On ON Keypad 00 Insert deposit anvelope hare Deposit Slot Enter Main menu: 1 - View my balance 2 - Withdraw cash 3 - Deposit funds 4 - Exit Enter a choice: Take cash here 4 IN 8 Insert deposit envelope here Enter Figure 2 ATM main menu Withdrawal options: 1 - $20 4 - $100 2 - $40 5 - $200 3 - $60 6 - Cancel transaction Choose a withdrawal option (1-6): 7 2 Take cash nare 3 6 45 8 9 Insert deposit envelope hero O Enter Figure 3 withdrawal menu ATM userAuthenticated : Boolean=false BalanceInquiry account Number: Integer execute() Account account Number: Integer pin: Integer availableBalance : Double totalBalance : Double validatePINO: Boolean getAvailableBalance(): Double get TotalBalance(): Double credit) debiti) Withdrawal account Number: Integer amount : Double execute() Screen displayMessage Keypad Deposit accountNumber: Integer amount: Double execute() getInput(): Integer BankDatabase Cash Dispenser count: Integer = 500 dispenseCash) isSufficientCashAvailable(): Boolean authenticateUser(): Boolean getAvailableBalance(): Double get TotalBalance(): Double credit() debit() Deposit Slot isEnvelopeReceived(): Boolean Figure 4 UML diagram

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

Database And Expert Systems Applications 23rd International Conference Dexa 2012 Vienna Austria September 2012 Proceedings Part 1 Lncs 7446

Authors: Stephen W. Liddle ,Klaus-Dieter Schewe ,A Min Tjoa ,Xiaofang Zhou

2012th Edition

3642325998, 978-3642325991

More Books

Students also viewed these Databases questions