Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Program 7 CSDP 222 Fall 2017 Due 13 October 2017 Write a program that dynamicall

ID: 3587642 • Letter: P

Question

Program 7 CSDP 222 Fall 2017 Due 13 October 2017 Write a program that dynamically allocates an array large enough to hold a user-defined number of test scores. Once the scores are read in from the file grades.dat, the array should be passed to a function that sorts them in ascending order. The lowest test score should be dropped and another function should be called that calculates the average score. The program should display the sorted list of scores and averages with appropriate headings. Use pointer notation rather than array notation whenever possible. The file - grades.dat will be attached to an email and sent to you. Input validation: Do not accept negative numbers for test scores.

Explanation / Answer

#include <iostream>
#include <iomanip>
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;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote