After your program works correctly for one student, add a loop so the user can process any number of students. Prompt the user for the number of students to process; use that value to control the loop.
*How do I prompt the user for the number of students to process and use that value to control the loop.
#include<iostream>
#include <string>
#include <cmath>
using namespace std ;
string getName ();
int averageScores( int);
void printMessage (string, int);
void tallyScores ( int,int&,int&,int&);
int main()
{
const int NUMBER = 4; // number of scores for each student
char moreStudents = 'y';
string who; //name of the student
int testAverage;
int students;
cout << "For each student, you will be prompted for a name and "<< NUMBER << " test scores\n" << endl;
while ( moreStudents =='y' || moreStudents == 'Y'){
who = getName () ;
testAverage = averageScores ( NUMBER);
printMessage ( who, testAverage );
cout << "\n\nMore students? Y or N: " ;
cin >> moreStudents ;
cout << endl;
cin.ignore (10, '\n');
}
system ("pause");
return 0;
} // end main
/////////////////////////////////////////////////////////////////////
// Prompts the user to input the student's name
string getName ()
{
string name ;
cout << "Enter student name " ;
getline ( cin, name);
return name ;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// this function inputs and averages scores. Parameter sum adds the scores up.
int averageScores( int sum )
{
int score1, score2, score3, score4 ;
int low;
int rounded;
float average;
cout << "\nEnter four interger scores with a space in between: " ;
cin >> score1 >> score2 >> score3 >> score4 ;
cout << "\nThe test scores enetered are: " << score1 << " " << score2 << " " << score3 << " " << score4 << endl;
sum = score1 + score2 + score3 + score4;
low = score1;
if(low > score2){
low = score2;
}
if(low > score3){
low = score3;
}
if(low > score4){
low = score4;
}
cout << "\nThe lowest score of " << low << " is dropped." << endl;
average = (sum - low) / 3.0;
cout << "\nThe average is " << average << " with three scores and the lowest score dropped." << endl;
rounded = static_cast<int>(average + 0.5);
cout << "\nThis average is then rounded to " << rounded << "." << endl;
return rounded;
} // averageScores /
//////////////////////////////////////////////////////////////////////
// adds to the appropriate count depeding on the score
void tallyScores ( int average, int& repeatIt,int& wow, int& passing)
{
if(average <60)
repeatIt++;
else if(average >= 95)
wow++;
else if(60 <= average < 95)
passing++;
}
/////////////////////////////////////////////////////
// Prints out a message for the student depending on the score
void printMessage (string name, int average)
{
string message ;
if(average <60)
message = ("Gotta repeat it");
else if(average >= 95)
message = ("WOW");
else if(60 <= average < 95)
message = ("passing");
cout << "\nAverage for " << name << " is " << average << "; " << message;
} //printMessage