Answered step by step
Verified Expert Solution
Link Copied!

Question

00
1 Approved Answer

Assignment's Objective: The objective of this assignment is to test the student's understanding and mastery of object - oriented programming concepts such as abstraction ,

Assignment's Objective:
The objective of this assignment is to test the student's understanding and mastery of object-oriented
programming concepts such as abstraction, encapsulation, polymorphism, inheritance, association,
aggregation, and composition which they have learnt throughout the semester. There are no restrictions
in the assignment as what data type you have to use i.e vectors, strings or char arrays. However, you
must make sure that there is no hardcoding in this assignment and it uses the concepts of OOP.
Assignment's Description:
In this assignment, you need to develop a banking management system that can help ABC Bank to
manage their customers data efficiently. The system should be able to handle the requirements of the
following stakeholders:
User Client: An ordinary single user account which can only be opened by a person.
Company Client: A multiple user account which can be opened by a Company's CEO.
Banking Employee: An Employee of the bank who will be able to manage the User and
Company's bank accounts.
Assignment's Requirements:
There are 3 types of accounts that a customer can open in the bank. The information is provided in the
table below for more details:
There are 3 types of transactions in your banking app:
Deposit
Withdraw
Transfer to another User Client
Refer to 4th(Other Requirements) Section for detailed explanation of these types.
User Client A user client can open a new bank account by providing the following information:
a. Full Name
i. Address
ii. Phone
iii. CNIC
iv. Login ID
v. Password
vi. Estimated Daily Withdrawal Limit
You have to employee proper checks here in order to verify the information is not
fraudulent. Once the banking employee approves the account, then assign the new
customer a randomly generated 16 Digit Card Number and Prompt them to enter the
PIN Number.
You also need to assign an appropriate account type according to the customer's
estimated daily withdrawal limit.
All of this information will be saved in a file "users.txt" in the following format:
The file format is saved as: userid, username, user address, user cnic, user id, user password, account
balance
b. The user client should be able to do the following:
i. They should be able to deposit and withdraw funds from their account.
ii. They should be able to view their account balance and transaction history.
iii. They should be able to transfer funds to other accounts within the bank.
c. Please note that you have to employee proper checks here i.e the user cannot withdraw
amount greater than their balance or daily max limit is reached.
d. Account balance will be 0 for a new account
Company Client:
A company's CEO can open a shared bank account on behalf of their company, whose access
will be available to all of that company's employees. It is assumed that all of the company's
employees already have an User Client account with the bank, i.e exist in the file "users.txt".
a. Therefore, to open the Company Client's Account, the CEO has to provide the
following:
i. Company's Name
ii. Company's Address
iii. Company's Tax Number
iv. Estimated Daily Withdrawal Limit
v. Account's ID
vi. Account's Password
Upon entering valid information for all of the above, you can save the
information in a file named "companies.txt". The format of the file is as
follows: b. The Company Client can do the following:
i. They should be able to deposit and withdraw funds from their account.
ii. They should be able to view their account balance and transaction history.
iii. They should be able to transfer funds to only user client's accounts within the
bank.
iv. They should be able to request loans from bank.
Remember that multiple user's can access this account via their Bank's User ID
as well if they are the part of the company. Therefore, you will have to maintain
the data in another file named "companies_employees.txt" which will contain
the following information:
The file format is saved as: user client id, company id
This file depicts that User Client with ID Number 1,5,6 are employees
of company with ID 1.
Similarly, User Client with ID 7 is employee of Company 4.
If the user client ID does not exist in this file, it means that user is not an
employee of any company.
In order to give a choice to user, you can ask them which account would
they like to access whether the company's or their personal.
A User client & Company's Client ID should be unique
Banking Employee:
The banking employee can simply login to the system using their user id and password which
is stored in the file named "admin txt" and can do the following: Banking Employee- i. They should be able to view the list of all client's accounts.
ii. They should be able to approve or reject new account applications.
iii. They should be able to approve or reject loan requests of companies.
iv. They should be able to view transaction history for a specific account.
v. They should be able to freeze or close an account if necessary.
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered 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

Students also viewed these Databases questions