import cs1.Keyboard;
import java.text.DecimalFormat;

public class GPA_whole
{
	public static void main (String[ ] args)
	{
		String name;
		double grade, points, total_points=0, gpa = 0;
		int credit, total_credit=0, classnum = 1;
		char letter_grade = 'A';

		System.out.print ("Enter your name: \t");
		name = Keyboard.readString();

		System.out.print ("Number of classes: \t");
		classnum = Keyboard.readInt();
		if (classnum < 1)
		{
			System.out.print ("You must enter at least one class");

			System.out.print ("Number of classes: \t");
			classnum = Keyboard.readInt();
	    }

		for (int i = 1; i <= classnum; i++)
		{
			System.out.print ("Grade for class " + i + ": \t");
		    grade = Keyboard.readDouble();
		    while (grade < 0 || grade > 4)
		    {
				System.out.println ("Invalid grade");
				System.out.print ("Grade for class " + i + ": \t");
		    	grade = Keyboard.readDouble();
		    }

		    System.out.print ("Credits for class " + i + ": \t");
		    credit = (int)Keyboard.readDouble();
		    //credit = (int)Double.parseDouble(dialog);		//

		    while (credit < 1 || credit > 5)
		    {
				System.out.println ("Invalid credit");
		    	System.out.print ("Credits for class " + i + ": \t");
		   	 	credit = (int)Keyboard.readDouble();			//cast
		    }

           	    points = grade * credit;
		    total_points = total_points + points;
		    total_credit = total_credit + credit;
		}

		//-----------------------calculate GPA

		gpa = total_points / total_credit;

		DecimalFormat fred = new DecimalFormat("0.00");
		System.out.println ("\nThe GPA for " + name + " is: \t" + fred.format(gpa));


		//-----------------------letter grade

		     if (gpa >= 3.5 && gpa <= 4.0) { letter_grade = 'A';}
		else if (gpa >= 2.5 && gpa <= 3.4) { letter_grade = 'B';}
		else if (gpa >= 1.5 && gpa <= 2.4) { letter_grade = 'C';}
		else if (gpa >= 0.6 && gpa <= 1.4) { letter_grade = 'D';}
		else if (gpa >= 0.0 && gpa <= 0.5) { letter_grade = 'F';}

		System.out.println ("Letter grade: " + letter_grade);


		//-----------------pass/fail

		if (gpa >= 2.0) {System.out.println ("Passss!\n");}
		else            {System.out.println ("Fail...\n");}
	}
}
