0% found this document useful (0 votes)
78 views6 pages

OOP CEP Assignment 3 12122022 035830pm

This document describes a complex engineering problem to design software for an automated teller machine (ATM). The software will allow bank customers to perform basic transactions like checking balances, withdrawing cash, and making deposits. The ATM software needs to authenticate users, interact with the bank's account database, and simulate the ATM's hardware components like the cash dispenser and deposit slot. The software will run initially on a PC to simulate the ATM interface. It must support the full transaction workflow including main menus, validation checks, database updates, and hardware simulation. Students are asked to implement the ATM software in C++ using object-oriented principles and file handling. They must provide documentation, UML diagrams, and test results.

Uploaded by

abdullah zafar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views6 pages

OOP CEP Assignment 3 12122022 035830pm

This document describes a complex engineering problem to design software for an automated teller machine (ATM). The software will allow bank customers to perform basic transactions like checking balances, withdrawing cash, and making deposits. The ATM software needs to authenticate users, interact with the bank's account database, and simulate the ATM's hardware components like the cash dispenser and deposit slot. The software will run initially on a PC to simulate the ATM interface. It must support the full transaction workflow including main menus, validation checks, database updates, and hardware simulation. Students are asked to implement the ATM software in C++ using object-oriented principles and file handling. They must provide documentation, UML diagrams, and test results.

Uploaded by

abdullah zafar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Bahria University, Islamabad Campus

Department of Electrical Engineering


Complex Engineering Problem
(Fall 2022 Semester)

Course: Object Oriented Programming


Course Code: CSC-210
Faculty Name: Engr. Asim Altaf Shah, Engr. Sadaf Farhan

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:

1. In this course, the assignment is mapped to CLO 3.


2. The performance of the students will contribute towards the attainment of the CLO(s).

CLO SKILL PLO Outcome


LEVEL
03 C3 03 Explain and apply the major object-oriented concepts (Inheritance/
Polymorphism) in order to design solution for medium-to-large
scale problem

Marks Distribution:

Marks: (10) [ CLO3 ]


Weightage: (100%) Total 10 absolute.

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

Figure 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 ATM’s 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 computer’s monitor to simulate the ATM’s screen,
and the computer’s keyboard to simulate the ATM’s keypad.
An ATM session consists of authenticating a user (i.e., proving the user’s 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 bank’s 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

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.

Figure 2 ATM main menu


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 user’s account balance. To do
so, the ATM must retrieve the balance from the bank’s database.
The following actions occur when the user enters 2 to make a withdrawal:
1. 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).
2. The user enters a menu selection (1–6) using the keypad.
3. If the withdrawal amount chosen is greater than the user’s account balance, the screen
displays a message stating this and telling the user to choose a smaller amount. The ATM

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.

Figure 3 withdrawal menu


The following actions occur when the user enters 3 (while the main menu is displayed) to make a
deposit:
1. The screen prompts the user to enter a deposit amount or to type 0 (zero) to cancel the
transaction.
2. 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).]
3. 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.
4. The screen displays a message telling the user to insert a deposit envelope into the deposit
slot.
5. If the deposit slot receives a deposit envelope within two minutes, the ATM credits (i.e.,
adds) the deposit amount to the user’s account balance in the bank’s database.

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.

Figure 4 UML diagram

REFERENCES

Deitel, Deitel. &. (Eigth edition.). C++ How to Program. prentice hall.

Deliverables: Marks 100 {absolute 10}

1. Use C++ and concepts of OOP (classes inheritance encapsulation etc)


2. Use concepts of File Handling to save data of each user and Exceptional handling for error
checking
3. Screenshots of code for each class and its explanation with UML diagram (should be well
documented)
5
4. Produce results of at least 10 examples

Submission Deadlines:

Submission date: Jan 5, 2023

You might also like