Answered You can hire a professional tutor to get the answer.
AppManager.org has contracted you to implement a simple application management and tracking system to serve as a prototype for future work on a...
Need help with this program please.
AppManager.org has contracted you to implement a simple application management and tracking system to serve as a prototype for future work on a larger system. The system will allow the user manage the properties associated with various types of applications and games that can be downloaded from the company’s website. The program will manage a list of properties for each application (app) as a node within a single linked list stored in memory. This can be a global variable for simplicity. The program must use the “list” API in the C++ standard template library (STL). The program must implement at least one class that will hold the following variables (input validation is only required where indicated):
appID —A string variable that will hold an automatically generated 5-character string as the app identifier. The string must be in the form LLNNN, whereLisacharacterfromAtoZ,andNisanumberfrom0to9. For example: EJ843. The appID is a unique identifier for each app and repeats are not allowed.
version -A float variable to indicate the version of the app.
date -A string variable to hold the date that the app was developed or updated. The entered date must be in the form mm/dd/yyyy. Input Validation Required: The program must re-prompt the user to re- enter the date if it is not in the correct format.
category —An integer variable from 1 to 7 that associates the app with one of the following categories: 1=Game, 2=Book, 3=Fitness, 4=Finance, 5=Medical, 6=Kids, 7=Other. Input Validation Required: The program must re-prompt the user if the entered category does not match one of the valid category areas.
name –A string variable to hold the name or title of the app. Note that spaces between words must be allowed so that all of this information can be entered.
description -A string variable to hold a brief description of the app. Again, spaces between words must be allowed so that all words in the description can be entered.
size -A double variable that holds the size of the app in megabytes. For example, the user would enter 25.3 for an app that has a size of 25.3 MB.
cost —A float variable to hold the price of the app. Free apps must be allowed.
developer -A string variable to hold the name of the person or company who created the app.
Provide the appropriate methods to set and get the data for each of these class variables. For setCategory(string category) and string getCategory (). The Book Inventory provides an example on how this can be done. In addition, the main program must provide the following functionality:
1. When the program is first started, it must read a data file called appcatalog.dat. The program will not prompt the user for the name of the data file. The name of the file must be hard-coded in the program. If the file exists, the program will load the data for each app into a global linked list. If the file does not exist, the program will start with an empty linked list.
2. The program will provide a simple text-based user interface that manages the all of the apps within a linked list. Each app must be placed in linked list as an object that holds all of the properties associated with it as mentioned above. The user interface will allow the user to perform the following:
(a) Display Catalog – displays all of the apps within the linked list along with their associated properties. When displaying the category, the program must print the category number along with the category name. In addition, this option must print the total number of apps in the linked list and the total cost for all of the apps in the catalog.
(b) Enter App – allows the user to enter all of the fields associated with a given app, except for the appID, which will be automatically generated by the program as previously mentioned. After the fields are entered, the program will place the app object in the global linked list.
(c) Delete App – allows the user to delete an app from the linked list using the appID as the key. The program must display a message if the provided appID is not found in the linked list.
d) Search for App – allows the user to find an app. The program will prompt the user to enter the appID and will display all of the fields associated with the given app if it is found. The program must display a message if the app is not found in the linked list.
(e) Edit App – allows the user to edit the fields for a given app that is in the linked list (except for the appID). The program must prompt the user to enter the appID as the key to find the app to edit. Print a message if the app is not found in the linked list. For simplicity, the program may re-prompt the user to re-enter all of the fields associated with the given app; but again, it must reuse the appID value.
(f) ExitSystem–beforetheprogramexits,itmustsaveallofthedatainthelinkedlisttothedata file. I recommend using a standard text file with one field per line. At this point, if the file does not exist, the program will create it.