Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ Modify the program of Programming Challenge 1 to allow the user to enter name-score pairs. For each student taking a test, the user types

C++

Modify the program of Programming Challenge 1 to allow the user to enter name-score pairs. For each student taking a test, the user types a string representing the name of the student, followed by an integer representing the student's score. Modify both the sorting and average-calculating functions so they take arrays of structures, with each structure containing the name and score of a single student. In traversing the arrays, use pointers rather than array indices.

IMPORTANT:

Use arrays of objects not structures

Programming Challenge 1:

#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?";

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

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions