Fundamentals of Computing II
Computer Science and Engineering Department
Fundamentals of Computing II
S2020
CSCE110101/02
Assignment 1
It is required to create a small Banking Management System that has at least (you may increase) three main classes:
- Customer
- Account
- ATM Transactions
Let us go through each one of those classes:
Customer:
The Customer class has Customers’ main information such as; but not limited to:
- Customer Unique Identification (Commonly known as Customer ID)
- Customer Full Name (Arabic and English)
- Customer Address
- Customer Emergency Contacts (eg. Wife)
- Customer Contacts (e-mail, Facebook, mobile, home)
- Any other relevant information
Methods:
The Customer class has -but not limited to – the following methods:
| METHOD nAME | dESCRIPTION |
| Search Customer | This method searches for a given Customer by name (whole or partial) , Customer ID, or by Account Number(s) |
| Add Customer(s) | Adding a given customer or customers to the customers’ list with his/her accounts and his/her transactions |
| Delete Customer(s) | Delete a given customer or customers to the customers’ list along with his/her accounts and his/her transactions |
| Modify Customer | Modify the content of one customer in the customers’ list along with his/her accounts without his/her transactions |
Pre-requisites and assumptions:
- Customers are saved in an input text file in any format you wish
- It is a must to load customers in memory as a list prior any operations undergoing them.
- It is a must to implement customers’ list as a linked list. It is up to you to have Customer’s list including also the Customer’s accounts or to have one list for the customer and one list for the account. Implementing a doubly linked list is a plus for speeding up operations.
- For Adding one or more customers, it is up to you to store them in a separate linked list, an array or a vector. Implementing as a vector is a plus.
- It is up to you to implement four methods or to subdivide them into more smaller methods.
- It is expected to have the following on the class:
- One or more constructors
- Destructor
- Loading the customers in memory (if needed to be in a separate function)
- The more you have more fields/methods in the customer’s class, the more you are eligible for a bonus
- If you opt to see how this is related to real life example and to enhance you output to get a bonus please look at :
- https://docplayer.net/11528927-Personal-account-opening-form.html
- or write Retail Account Opening form
Account:
The Account class has Customer’s account(s) information such as -but not limited- to:
- The account number as follows (Gov Initial – Branch Name Suffix as three Characters-Serial Number of 6 digits) (eg. CAI-ZML-000123)
- Type of account (Current, or Saving)
- Balance
- Creation Date
- Last access date
- Interest Rate
- Current Account has no interest
- Saving account has a monthly interest rate of 1.25% to the lowest balance by 30th of each month
- Overdraft (it is a flag to indicate if the account can go negative to certain limit)
- Card Number associated with the account. Each account may have one or more card numbers (make it as a constant as two cards) per account.
- Account Currency
| METHOD nAME | dESCRIPTION |
| Search Customer | This methods searches for a given Customer by name (whole or partial) , Customer ID, or by Account Number(s) |
| Add Customer(s) | Adding a given customer or customers to the customers’ list with his/her accounts and his/her transactions |
| Delete Customer(s) | Delete a given customer or customers to the customers’ list along with his/her accounts and his/her transactions |
| Modify Customer | Modify the content of one customer in the customers’ list along with his/her accounts without his/her transactions |
| METHOD nAME | dESCRIPTION |
| Create Account | This method creates an account for a given Customer ID |
| Show Account(s) | This method shows all the account(s) information (eg. Balance) related to a given Customer ID |
| Deposit | This method deposits an amount of money from a given account using a card where the customer has executed an ATM transaction |
| Withdraw | This method withdraws an account of money from a given account using a card where the customer has executed an ATM transaction |
| Search for my accounts | This method searches for given account(s) that belong to a given Customer’s ID and displays the result on the screen |
| Closes Account(s) | This method closes all, partial, or one account for a given Customer ID |
| Calculate account interest | This method calculated the new balances for ALL the customers with saving accounts and restores the accounts’ file again with new balances. The interest calculation is done monthly on the lowest balance that customer may have. |
Pre-requisites and assumptions:
- The above methods are the least to implemented where you are free to subdivide the above providing keeping the functionality.
- You should save the accounts inside a given file. It is up to you to have a separate file for the accounts or mixing them within the customer’s account.
- It is a must to load the accounts in memory and use the linked list as Data Structure for so. Having a Doubly Linked List is a plus.
- Like the Customer class, you can use also a text file with any structure you wish.
- It is expected to have the following on the class:
- One or more constructors
- Destructor
- Loading the accounts in memory (if needed to be in a separate function)
- The customer can have an overdraft that is limited to 10% of his/her balance at the month’s closing. For example, if we are at 23/2. you will calculate the 10% of the balance of the 30th of the months.
- It is a plus to separate the cards in a separate class called CARD.
- It is a plus to have a base class of account and having saving and current accounts as children classes.
- For simplicity, each account is related to one and only one card number.
ATM Transaction:
This class simulates the operation of deposit and withdrawal using the customer’s card(s) from an ATM. It has -but not limited to- the following fields:
- Transaction Date
- Transaction Time
- ATM Location
- Transaction Amount
- Transaction used card number
- Transaction Currency
| METHOD nAME | dESCRIPTION |
| Deposit Money | Deposit an amount of money using a give card that is related to a given Customer ID that is associated with certain account. |
| Withdraw Monday | Withdraws a given amount of money if the account’s balance permits so using a given card that is related to a given customer ID that is associated with certain account. |
| Search Transaction(s) | This method searches for all the customers’ transaction that occurred in a Date range and returns them (i.e Displays them). |
Pre-requisites and assumptions:
- The ATM Transactions should be saved in a separate file and the transactions should be identified by the card number. This file should have all the related fields such as the ATM location.
- The transactions for the customers should not be stored in memory. Rather, you must load only the customer’s related transactions. You are not obliged to use linked list. Rather, you can use arrays or vectors.
- It is expected to have the following on the class:
- One or more constructors
- Destructor
Delivery Guidelines:
- There are certain documentations that should be fulfilled upon the delivery of the assignment:
- Brief description about the application
- UML Class Diagram of all the classes with enough textual descriptions of both the class diagram, the classes, and the relationship between classes.
UML Diagrams Documentation: https://tallyfy.com/uml-diagram/
- An application (main function) to test all the public methods in your classes. The main function should be user selected. For example, the user should select if s/he wants to add a money, withdraw, show his/her balance etc.
- Both the application and the classes methods should account for the following:
- User’s wrong inputs (Eg. Deducting -3000 L.E)
- Exceptions like (Empty file or Customer does not exist)
- A test sheet highlighting the test cases and test data on how to use the application. It is required to submit more than one customer, account, or transaction file depends on the test cases you have.
- The source should be submitted well documented and adopting a good style of coding documentation found at:
We've got everything to become your favourite writing service
Money back guarantee
Your money is safe. Even if we fail to satisfy your expectations, you can always request a refund and get your money back.
Confidentiality
We don’t share your private information with anyone. What happens on our website stays on our website.
Our service is legit
We provide you with a sample paper on the topic you need, and this kind of academic assistance is perfectly legitimate.
Get a plagiarism-free paper
We check every paper with our plagiarism-detection software, so you get a unique paper written for your particular purposes.
We can help with urgent tasks
Need a paper tomorrow? We can write it even while you’re sleeping. Place an order now and get your paper in 8 hours.
Pay a fair price
Our prices depend on urgency. If you want a cheap essay, place your order in advance. Our prices start from $11 per page.