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:
#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
void sort(double*, int);
void drop(double*, int);
double average(double*, int);
int main()
{
char ch;
char name[30];
int numTestScores;
vector <string> names
string *studentNames;
double *testScorePtr;
double testAverage;
//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);
}