//Xinnuo Wang                   CS1A                     chapter7 #12 pg.447 
/*******************************************************************************
 * Modify Grade Book
 * _____________________________________________________________________________
 * The program drops the lowerst score and determines the test score averages 
 * and letter grades.
 * 
 * _____________________________________________________________________________
 * Input:
 *    lowest_n    : The lowest score of each student.
 * Output:
 *    ave       : The average score
 *    letter    : The letter grade
 * 
 * ****************************************************************************/
 #include <iostream>
 #include<string>
using namespace std;

int main() 
{
	string name[5];
	char letter[5];
	double grade_1[4];
	double grade_2[4];
	double grade_3[4];
	double grade_4[4];
	double grade_5[4];
	double sum1 = 0,sum2 = 0,sum3 = 0,sum4 = 0,sum5 = 0;
	double ave1 = 0,ave2 = 0,ave3 = 0,ave4 = 0,ave5 = 0;
	double ave[5];
	double lowest_1,lowest_2,lowest_3;
	double lowest_4,lowest_5;
	for(int i = 0; i< 5; i++)
	{
		cout << "Enter the names in order" ;
		cin >> name[i];
		cout << name[i]<< endl;
	}
	for (int m = 0; m < 4; m++)
	{
		cout << "Enter all grades of the first student's grades" ;
		cin >> grade_1[m];
		sum1 += grade_1[m];
		while(grade_1[m]< 0||grade_1[m]>100)
		return 0;
		lowest_1 = grade_1[0];
		if(lowest_1 > grade_1[m])
		{
			lowest_1 = grade_1[m];
		}
	}
	sum1-=lowest_1;
	for (int m = 0; m < 4; m++)
	{
		cout << "Enter all grades of the second student's grades" ;
		cin >> grade_2[m];
		sum2 += grade_2[m];
		while(grade_2[m]< 0||grade_2[m]>100)
		return 0;
		lowest_2=grade_2[0];
		if(lowest_2 > grade_2[m])
		{
			lowest_2 = grade_2[m];
		}
	}
	sum2-=lowest_2;
	for (int m = 0; m < 4; m++)
	{
		cout << "Enter all grades of the third student's grades" ;
		cin >> grade_3[m];
		sum3 += grade_3[m];
		if(grade_3[m]< 0||grade_3[m]>100)
		return 0;
		lowest_3=grade_3[0];
		if(lowest_3 > grade_3[m])
		{
			lowest_3 = grade_3[m];
		}
	}
	sum3-=lowest_3;
	for (int m = 0; m < 4; m++)
	{
		cout << "Enter all grades of the fourth student's grades" ;
		cin >> grade_4[m];
		sum4 += grade_4[m];
		if(grade_4[m]< 0||grade_4[m]>100)
		return 0;
		lowest_4=grade_4[0];
		if(lowest_4 > grade_4[m])
		{
			lowest_4 = grade_4[m];
		}
	}
	sum4-=lowest_4;
	for (int m = 0; m < 4; m++)
	{
		cout << "Enter all grades of the fifth student's grades" << endl;
		cin >> grade_5[m];
		sum5 += grade_5[m];
		if(grade_5[m]< 0||grade_5[m]>100)
		return 0;
		lowest_5=grade_5[0];
		if(lowest_5 > grade_5[m])
		{
			lowest_5 = grade_5[m];
		}
	}
	sum5-=lowest_5;
	ave1 = sum1 / 3;
	ave2 = sum2 / 3;
	ave3 = sum3 / 3;
	ave4 = sum4 / 3;
	ave5 = sum5 / 3;
	ave[0] = ave1;
	ave[1] = ave2;
	ave[2] = ave3;
	ave[3] = ave4;
	ave[4] = ave5;
	
	for(int n =0; n< 5; n++)
	{
		if (ave[n]>= 90)
		{
			letter[n] ='A';
		}
		else if (ave[n]>=80 && ave[n]<=89)
		{
			letter[n] ='B';
		}
		else if (ave[n]>=70 && ave[n]<=79)
		{
			letter[n] ='C';
		}
		else if (ave[n]>=60 &&ave[n]<=69)
		{
			letter[n] ='D';
		}
		else if (ave[n]<=59)
		{
			letter[n] ='F';
		}
	}
	//Output Result
	for(int k = 0; k< 5; k++)
	{
		cout << "The student: " << name[k]<< "have got: "<< letter[k]<< endl;
	}
	return 0;
}
