Program help

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);
}






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.

[code]//code here [/code]
Last edited on
1
2
3
4
5
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.
Last edited on
Topic archived. No new replies allowed.