Sure, I can help you with your question.
For the first part of your question, you need to modify your existing grade program to include arrays and functions. Specifically, you need to create four functions for calculating the average, minimum, maximum, and number of grades above the average. These functions should take an array of grades as input and return the calculated values.
Additionally, you need to add input validation to your program so that if the user enters an invalid grade, they will be prompted to re-enter the grade until a valid value is entered. To do this, you can use a while loop that checks if the input value is within the valid range (0-100).
For the second part of your question, you need to add a selection sort function to your existing program. This function should take an array of grades as input and sort them in ascending order. You should not modify the selection sort function in any way.
To adequately test your program, you should create a set of test cases that cover a range of scenarios, including valid and invalid input values, as well as different sizes of arrays. Your sample output should include the sorted list of grades and any error messages that are generated during the input validation process.
You can write this program in C++ by using appropriate data structures and functions that are available in the language.