You’re working for a company that wants to take client contact information as it is entered by a salesperson from a stack of business cards that he or she has collected, and output the information to a file (contacts.dat) in alphabetical order. Assume that there are never more than 100 cards to enter. The program should prompt the salesperson for each of the following values for each card:
Middle Name or Initial
After the data are entered for each card, the user should be asked if there is another card to enter. This data should be sorted by Last Name, using a version of the SortedList class that will hold up to 100 struct values, each with a member corresponding to an item in the list above. Because the struct is so large, however, it will be more efficient if each element of the list array is a pointer to one of the struct values, and the class merely rearranges the pointers within the array in order to do the sorting. You should dynamically create a new struct value each componet of the list array to point to as the cards are input. The print function of the class will need to be modified to output the list to the contacts.dat file instead of cout. Each member of the struct should be written on a separate line. The function should also write the number of cards that are in the list as the first line of the file.