Fundamentals of Computing II

 

Computer Science and Engineering Department

Don't use plagiarized sources. Get Your Custom Essay on
Fundamentals of Computing II
For $10/Page 0nly
Order Essay

 

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:

 

  1. Customer
  2. Account
  3. 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 :

 

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:

Calculator

Calculate the price of your paper

Total price:$26

Need a better grade?
We've got you covered.

Order your paper