
//*****************************************************************************
////  Course:             COMS 2104 03 Foundations of Computer Programming I
////  Semester:           Spring 2004
////  Assignment Number:  #7                             
////  Author Name:        DarC KonQuesT                        
////  Date Written:       April 6, 2004
////                                                         
////  Description of Program:                              
////  Reads student name and test scores through stdin and calculates the average
////  for each student and the class average.
////*****************************************************************************
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

void calculateAverage(float grade1, float grade2, float grade3, float grade4, float grade5, float& average)
{
	average = (grade1 + grade2 + grade3 + grade4 + grade5)/5;

}

char calculateGrade(float average)
{
	char letter_grade;
	if(average >= 90)
		letter_grade = 'A';
	else if(average >= 80)
		letter_grade = 'B';
	else if(average >= 70)
		letter_grade = 'C';
	else if(average >= 60)
		letter_grade = 'D';
	else if(average < 60)
		letter_grade = 'F';
	return letter_grade;

}
int main()
{
	float class_average, stud_average;
	int test1, test2, test3, test4, test5, i;
	char grade;
	string stu_name;
	bool state_loop;
	i = 1;
	cout.setf(ios::fixed, ios::floatfield);
	cout.setf(ios::showpoint);

	cout << "Student     Test1     Test2     Test3     Test4     Test5     Average     Grade" << endl;
	do{
	cin >> stu_name;
		if(cin == false)
		{
			state_loop = false;
			break;
		}
	cin >> test1;
	cin >> test2;
	cin >> test3;
	cin >> test4;
	cin >> test5;

	calculateAverage(test1, test2, test3, test4, test5, stud_average);
	grade = calculateGrade(stud_average);
	cout << "   " << stu_name << "           " << test1 << "        " << test2 << "        " << test3 << "        " << test4 << "        " <<  test5 << "        " << setprecision(1) << stud_average << "        " << grade << endl;
	if(i == 1)
		class_average = stud_average;
	else
		class_average = (class_average + stud_average)/2;
	i++;
	}while(state_loop != false);

cout << "Class Average = " << class_average << " --- " << calculateGrade(class_average) << endl;
return 0;
  }


