Question
We want to create a system in C++ to manage bank accounts. A bank has many branches. Each branch has a number of associated bank
We want to create a system in C++ to manage bank accounts. A bank has many branches. Each branch has a number of associated bank accounts. There are two types of accounts: Savings and chequing accounts. A customer of a bank can have many accounts. An account must belong to one customer only.
A bank has the following attributes:
- Bank id
- Name
- Address
- Telephone number
- List of branches
Typical operations are:
- Functions that modify bank attributes except bank id
- Functions that return bank attributes (id, address, tel, number of branches, etc.)
- Add a new branch
- Delete an existing branch
- List all branches
- List accounts of a given branch
- List customers of a given branch
- Print information about a specific branch
- Print information about a specific account
- Print information about a specific customer
A branch has the following attributes:
- Branch ID
- Address
- Telephone number
- List of accounts associated with this branch
Typical operations associated with a branch are:
- Function that modify branch attributes except branch id
- Functions that return branch attributes (id, address, tel, number of accounts, etc.)
- Add a new account
- Delete an existing account
- List all accounts
- Print information about a given account
- List customers of the branch
- Return true if a given customer is a customer of this branch
An account has the following attributes:
- Account number
- Balance
- Transaction fee
- The account owner
A savings account has the following additional attributes:
- Maximum number of transactions
- Interest rate
A chequing account has the following additional attributes:
- Privilege to write cheques (a Boolean variable set to true of false depending on whether one can write cheques from this account or not)
- Overdraft limit (an amount of money a person can use when the account does not have sufficient funds)
Account typical operations are:
- Functions that modify account attributes except account id
- Functions that return attributes of an account (account id, balance, transaction fee, account owner, writing cheques, interest rate, overdraft limit, etc.)
- Add account owner
- Delete account owner
- Print information about the account owner
- Print information about an account including account id, balance, transaction fee, and owners name, account-type specific information (e.g., maximum number of transactions for a savings account)
Note: The Account class must be abstract an abstract class.
A customer has the following attributes:
- Customer ID
- First name
- Last name
- Address
- Telephone number
- List of accounts
Typical operations of Customer class:
- Functions that modify customers information except customer id
- Functions that return attributes of a customer (i.e., customer id, name, address, tel, email, number of accounts)
- Add an account
- Delete an account
- List all accounts
- List all chequing accounts
- List all savings accounts
- Etc.
Deliverables:
- Bank class
- Branch class
- Account class
- Savings account class
- Chequing account class
- Customer class
A driver to test the system
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started