Brief A local manufacturing organisation has a major production plant on the edge of Swansea and requires an order tracking system to allow the company to quickly identify the progress of any order if a query is received from a client. The company has in excess of 500 orders per month. The contents of each record will be: Order number, client name, date of order, product code, order description, delivery date agreed, quantity of order, status. The tracking system will consist of a database file that will hold all of the order details. Any new orders are added to this file and all orders that have been delivered have their details removed from this file and added to a delivered orders file. The database file is built through each new record being appended to the existing database file and the record number of that new record being recorded along with a key field in an index (for this exercise the key field will be the client name). As each new record is added to the file a new entry is added to the index that will be used to locate the record when necessary. Whenever an inquiry is made of a particular order the user will be asked by the system for the key field data (the client name) and the index is searched for the identification of the corresponding record numbers of that particular client. The file can then be accessed for these records and all orders currently being processed for that client are displayed on the screen. This will require reduced access to the database file to extract the required details. The index must also be saved as a file so that no data is lost when the system is powered down overnight. This will require the index to be reloaded immediately when the system is executed the following day. Requirements You are required to write a working program that will allow the tracking system to be implemented. The system will allow for: - An order to be added to the database file - An order to be removed from the file when it is delivered - A search for an order’s status for a particular client For this problem the database file will be built as a serial data file containing records in the format as outlined above. The index will be built as a binary tree structure, each node of which will contain the keyfield and associated record number for an order and pointers to the nodes to the left and right of it. (the tree will be ordered by Client Name). The program will be written in a suitable programming language (preferably C++ but similar languages will be acceptable) and will be required to be compiled and executed on the Institute’s computers. Thus you must use a development environment that is available within the Institute. In addition to the program you will provide the algorithms used for adding a node to the binary tree, removing a node from the binary tree and searching a binary tree. The algorithms are to be written in pseudo code. Marks will be awarded for: A working program. The building of the binary tree index: the ability to add an item to the index; the ability to search the index; the ability to remove an item from the index. The building of the database file as a serial file: adding a record to the file; removing a record from the file; extracting a record from the file for display purposes. Use of functions, parameters, appropriate record structures. The algorithms for adding nodes to and removing nodes from a binary tree. The algorithm for searching a binary tree.