CPP Array Sorting Example

Write a C++ program that will sort a template array of data using the following guidelines –

Ask the user for the number of elements, not to exceed SORT_MAX_SIZE = 16 (put appropriate input validation)
Ask the user for the type of data they will enter – int, string or Dollar.
Based on the input, create an appropriate array using your template array class.
Make sure your template class is contained in one file which does not contain either the main or the sort function of step 4 below. The class declaration should contain NO inline code.
Your code should have a function called RecurSelectionSort such that:
It is not part of your Array template class,
Takes in the same type of parameters as any standard SelectionSort with recursion behavior, i.e.
void SelectionSort( arr[], int size)
the trick is to overload and use the [] operator
Prints out how the array looks every time a recursive step returns back to its caller,
You can use it to sort the three Arrays created in Step 2/3 in the descending order.
Allow the user to enter data of their own choosing up to their chosen array size. There is no sample output – you are allowed to provide user interactivity as you see fit but programs will be graded for clarity of interaction.
Then sort the array using your sort function of step 4. Take screenshots to be uploaded with the project.
Also, write out the screen output to an output file. At the end of the file, write your identifying information.
Ensure input and any other data validations as needed and provide descriptive prompts with emphasis on usability.
Upload your code files, output file and the screenshots in one zip file.

Solution Screenshot