OOP CEP Assignment 3 12122022 035830pm
OOP CEP Assignment 3 12122022 035830pm
Objective:
The objective of this Complex Engineering Problem is to address the Range of Complex Problem
Solving having the following attributes:
1. The Complex Engineering Problem (CEP) cannot be resolved without in-depth Engineering
knowledge.
2. The CEP also covers the depth of analysis and involves wide-ranging Engineering issues.
3. The CEP is formulated as a high-level problem including sub-problems.
Outcomes:
This assignment results in the attainment of the following outcomes:
Marks Distribution:
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).
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
2
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):
1. The screen displays a welcome message and prompts the user to enter an account number.
2. The user enters a five-digit account number, using the keypad.
3. The screen prompts the user to enter the PIN (personal identification number) associated with
the specified account number.
4. The user enters a five-digit PIN, using the keypad.
5. 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.
3
then returns to Step 1. If the withdrawal amount chosen is less than or equal to the user’s
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.
4. 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.
5. The ATM debits (i.e., subtracts) the withdrawal amount from the user’s account balance in
the bank’s database.
6. The cash dispenser dispenses the desired amount of money to the user.
7. The screen displays a message reminding the user to take the money.
4
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.
REFERENCES
Deitel, Deitel. &. (Eigth edition.). C++ How to Program. prentice hall.
Submission Deadlines: