Here is my project: Write a program that dynamically allocates an array large enough to hold a user defined number of structures (string name and three double tests). Using a function, the user will enter a name and 3 test scores for each element in the array. Using another function, the user will sort the array into ascending order by name. Using a third function a table will be displayed on the screen(under a header labeling each column) showing:
Name Test1 Test2 Test3 Average
Then average for each element(three test grades/3) will be calculated by a 4th function as it is being displayed.
Please help! Here's what I have so far not sure about some of the code. I am new to this and honestly am quite lost. I would gladly appreciate any help anyone can give. I can't get my program to compile. Here's what I've got so far:
//Get the number of test scores
cout << "How many test scores will you enter? ";
cin >> numTestScores;
//Validate the input
while(numTestScores < 0)
{
cout << "Please re-enter a positive number other than zero. ";
cin >> numTestScores;
}
//Allocate an array to hold the test scores
std::vector <std::string> studentNames(numTestScores);
std::vector <double> testScorePtr(numTestScores);
for(int i=0; i<numTestScores; i++)
{
cout << "Enter the name and test score for test # "
<< (i+1) << " : " << endl;
std::getline(std::cin, studentNames[i]);
studentNames[i] = name;
cout << studentNames[i] <<endl;
cin.get();
}
/*//Get a test score.
cout << "Enter test score "
<< (i+1) << " : " << endl;
cin >> testScorePtr[i]; */
//Validate the input.
/*
while (numTestScores < 0)
{
cout << "Please re-enter a positive number other than zero. ";
cin >> testScorePtr[i];
}
*/
// Sort the test scores.
sort(testScorePtr, numTestScores);
//Display the resulting data.
cout << "\nThe test scores in ascending "
<< "order, and their average, are:\n\n";
cout << "Score" << endl;
cout << "----" <<endl;
for (int j = 0; j < numTestScores; j++)
{
cout << "\n" << fixed << setprecision(2);
cout << setw(6) << testScorePtr[j];
}
// Get the average of the test scores.
testAverage = average(testScorePtr, numTestScores);
cout << "\n\nAverage score: ";
cout << setprecision(2) << fixed << testAverage <<endl;
// Free the dynamically-allocated memory.
delete [] testScorePtr;
testScorePtr = 0;
return 0;
}
double average(double* score, int numScores)
{
double total = 0; //Accumulator
numScores--;
//Calculate the total of the scores.
for (int k = 0; k <= numScores ; k++)
{
total += score[k];
}
//Return the average score.
return (total/numScores);
}
If you expect me to look through all that unformatted code for a missing bracket or something, you're sadly mistaken. If you want any hope of someone helping you, at least use code tags and post the errors your getting.
while (numTestScores < 0)
{
cout << "Please re-enter a positive number other than zero. ";
cin >> testScorePtr[i];
}
You never increment numTestScores (are you using negative numbers with the less than 0?). You also never change the value of i, so you will always enter a value into the same slot.
This was just a quick run through. Please use the tags mentioned by Modshop and format your code, it's annoying and hard to read.