Urgenthomework logo
UrgentHomeWork
Live chat

Loading..

PI306 C++ Programming-Forums and Programming Platforms

  72 Download     📄   5 Pages / 1096 Words

SEADATH is a newly established recruitment agency. This company was established to serve a small community in Buckinghamshire. You have been awarded the contract to develop a prototype clients’ management system to deal with information regarding their clients. In a short interview with SEADATH’s managing director, a list of functional requirements were discussed and are listed below. You must develop the first TWO requirements, which are essential to run basic operations, plus any additional TWO from the desirable functional requirements. The system is to be mainly used by the administration staff members.

Essential Functional Requirements (EFR):


  1. Be able to save customer information such as customer name, customer ID, customer age, customer job status, customer job role, or any other important information using an array of structures or any other efficient data structure.
  2. Be able to update customer details such as changing customer address. The user will be prompted to enter Customer-ID.

Desirable Functional Requirements (DFR)

  1. Be able to display all customers who are currently employed.
  2. Be able to search for customers and count how many of them are 30 years old and above.
  3. Be able to delete a customer from the system. The user should be prompted to enter customer -ID in order to delete customer.
  4. Be able to produce a sorted list of Customers based on customer ID.

For this project, you are required to develop a fully working program in C++. Your design should reflect your knowledge of C++ language constructs. In addition, you must ensure that the program is error free. Internal documentation is essential in real life project development to ease any future maintenance and additional requirements. Therefore, you should take this into consideration when writing your code. Ensure that you use sensible variable names, proper indentation and ensure that you add sufficient comments or remarks when writing your code.

Having created your program(s), you should write a self-reflective commentary (approx. 800 words +- 10%) critically reflecting on your project. Your commentary should critically explore the work you have done to produce your project.

You should reflect on:

  1. The research you conducted while working your project.
  2. Decisions made while working on your project.
  3. Where you think you succeeded and how you think your work can be improved.
  4. What you would do differently if you were to attempt this project again, and limitations to this project.

Answer:

Research conducted for this project

While doing this project at first I researched about the use of the data structure to store the data for a specific employee.  This used struct can be passed to any method or function either as a value or a reference parameter to process the data. If the size of the structs are large in size then they are sometimes passed as reference parameters to avoid the cost of the copy by the compiler, even though the value is not going to be changed by this operations. At first I have tried to find out how I will provide options for the different actions with the customer data. After finding the solution for this in different forums and programming platforms I decided to use the switch rather than if else statement.

Decisions made for this project

 I have used the Visual studio as my IDE to develop this application in C++. I have made this choice as this IDE uses intelligence and helps thee developer to developer to complete the development faster. In addition to that as it is a prototype we have developed the application mainly to fulfill two major requirements that are able to save customer information such as customer name, customer ID, customer age, customer job status, customer job role and to update customer details such as changing customer ID, job status etc. The user will be prompted to enter Customer-ID in order to do so.

When the application executed it prompts several options for the users such as to build new customer table, to list all the customers, create new entry, update information of a customer, search for a customer, sort the customers, delete a customer entry and close the program .This options are handled using the switch case control of C++.

As this control mechanism allows a variable to be tested for equality against a list of values for the different options. Each value for the different options is called a “case”, and the variable being switched on is checked for each case.  When the users input matches with the used “case” in the control mechanism the execution code under that case is executed. After the operation is completed by the users it waits for an “ENTER” to get back to the main menu from where they can select what the users want to do with a Customer record. Being a prototype I have restricted the number maximum entries to 500 customers.

A “switch case” control statement works much faster than the similarly code block of   if-else code.  The reason behind this is, compiler created a jump table for a switch during compilation period of the code. As a consequence at the time of execution, rather than checking for the case that is satisfied as per the user input, it only decides which case has to be executed according to it.  This method is also helpful in providing more readable code and compared to if-else statements. It is more manageable for having higher level of indentation than if else code.

Scope of improvement

This specific application is not developed using the file operations thus the application records the data for the instance it is executed. When the project execution is stopped then all the entered data is lost. Since it is a prototype thus only to show the functionalities we have developed this application.  In the next phase I will use the file system operations to store the customer data so that the data can be stored even if one instance of the application is stopped by the users.

Limitations of this project and issues that can be differently done

As the application has not used any kind of file operations then the report generation with the customer details are not implemented due to criticality.  Also the number of Customers is restricted to 500 whose data can be entered in this application. Thus the company will be able to enter 500 customers’ data.

If the project can be done from the scratch again I will try to develop the application using the file operations of C++ to store the data so that the data is lost after the execution of the application.

Copyright © 2009-2023 UrgentHomework.com, All right reserved.