Project Description

Banking services providers need a software system that allows to safely manage the customers accounts. In order to ensure correct and integrated updates for customers accounts, you need to implement a simple bank management system that enables users to perform different transactions (updates) on the accounts that are usually performed in real bank environment. In particular, the user of your system can create a new account, update information of an existing account, view and manage transactions, check the details of an existing account, remove existing account and view customers list. Moreover, you need to store customers records (including account information) in a way that facilitates processing these accounts. The user should be able to track all updates (transactions) conducted on customers' accounts.

In order to achieve the tasks mentioned above, you need to implement the appropriate structures for the following:

1. The system should serve customers with updating/processing account information, where first customer comes (enter the waiting list) must be served first.

2. The system should be able to present and track the accounts information for all updated/processed accounts starting from the last customer account (backtracking).

3. A data base that stores customers accounts' records in a way that the search process can be performed within (log(n)) time.

Hints:

  • Your system should be implemented using a dynamic-size data structures to ensure the efficiency in terms of space complexity.
  • All operations should be conducted within the least possible time complexity.
  • Use a BST structure to create a hierarchy of customers records. Customers records should be inserted/searched based on a key value. You may generate consecutive values for the records and use the average number as the root of the tree.
  • Once you develop a data structure, make sure to implement its basic operations.
  • Listed below are some of the more important methods that can be defined to perform several banking activities (you can use more methods according to your implementation):

ShowMenu(): This method displays the menu to select/perform different banking activities.

CreateAccount(): This method creates a new customer account. It asks for some personal and banking details of the customer such as name, date of birth, citizenship number, address and phone number, initial balance to be deposit, and the account type. For the account type use: Saving Account, Fixed for 1 year, or Fixed for 2 years.

DoTransact() : This method performs two banking activities: deposit and withdraw to and from a particular customer account.

EditCustomerInfo(): This method modifies personal information for a particular customer, such as name, telphone, address, ... etc.

SortCustomersRecord(): This method can sort customers records in the waiting list (for processing/serving) based on a particular key (name, balance, customerID, ... etc)

DeleteAccount(): This method can be used to delete a particular customer account/record

Print(): This method prints a particular customer information.

ShowCustomerList(): This method shows a list of customer records in a particular list, such as the waiting list for customers to be served.

Project Requirements:

  • Design the system considering the description provided above.
  • Implement and test your code and make sure that it is error free, and can perform all tasks correctly.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.