Question: Modify the program to allow the user to enter name-score pairs. For each student taking a test, the user types the student's name followed by

Modify the program to allow the user to enter name-score pairs. For each student taking a test, the user types the student's name followed by the student's integer test score. Modify the sorting function so it takes an array holding the student names and an array holding the student test scores. When the sorted list of scores is displayed, each student's name should be displayed along with his or her socre. In stepping through the arrays, use pointers rather than array subscripts.

________________________________________________________________________________

#include #include using namespace std;

//Function prototypes void arrSelectSort(double *, int); double arrAvgScore(double *, int);

int main() { //Define variables double *TestScores, total = 0.0, average; int numTest, count;

//Get the number of test scores you wish to average and put in order cout << "How many test scores do you wish to enter?" << endl; cin >> numTest;

//Dynamically allocate an array large enough to hold that many scores TestScores = new double[numTest];

//Get the test scores cout << "Enter the test scores below. "; for (count = 0; count < numTest; count++) { //Display score cout << "Test Score " << (count + 1) << ": "; cin >> TestScores[count]; // Input validation. Only numbers between 0-100 while (TestScores[count]<0 || testscores[count]>99) { cout << "You must enter a scores that non-negative" << endl; cout << "Please enter again: "; cin >> TestScores[count]; } }

//Dsiplay the results arrSelectSort(TestScores, numTest); average = arrAvgScore(TestScores, numTest); cout << fixed << showpoint << setprecision(2); cout << "The test scores, sorted in ascending order, are: "; for (count = 0; count < numTest; count++) cout << TestScores[count] << " "; cout << endl; cout << "The average of all the test score is " << average << endl; //Free dynamically allocated memory delete[] TestScores; TestScores = 0; //make TestScores point to null //Display the Test Scores in ascending order

system("pause"); return 0; } //Ascending order selection sort void arrSelectSort(double *arr, int size) { int startScan; int minIndex; double minElem; for (startScan = 0; startScan < (size - 1); startScan++) { minIndex = startScan; minElem = arr[startScan]; for (int index = startScan; index < size; index++) { if (arr[index] < minElem) { minElem = arr[index]; minIndex = index; } } if (minIndex != startScan) { double temp = arr[minIndex]; arr[minIndex] = arr[startScan]; arr[startScan] = temp; } } }

double arrAvgScore(double *arr, int size) { double total = 0, average; int numTest; for (int count = 0; count < size; count++) { total += arr[count]; } average = total / size; return average; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!