import cs1.Keyboard;
import java.text.DecimalFormat;

public class GPACalc3
{
	private String name;
	private double gr;
	private int cr;
	private int classnum;
	private int total_credit;
	private double total_points;
	private double gpa;
	private char Lgrade;			// a letter grade (A-F)
	private String PFstatus;		// Pass/Fail status

	public GPACalc3()			//default constructor
	{
	}


	public void getInput()
	{
		System.out.print("Enter student's name: \t");
		name = Keyboard.readString();

		System.out.print ("Number of classes: \t");
		classnum = Keyboard.readInt();

		while (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");
			gr = Keyboard.readDouble();

			while (gr < 0 || gr > 4)
			{
				System.out.println ("Invalid grade");
				System.out.print ("Grade for class " + i + ": \t");
				gr = Keyboard.readDouble();
			}

			System.out.print ("Credits for class " + i + ": \t");
			cr = Keyboard.readInt();

			while (cr < 1 || cr > 5)
			{
				System.out.println ("Invalid credit");
				System.out.print ("Credits for class " + i + ": \t");
				cr = Keyboard.readInt();
			}

			calcGPA();
		}
	}

	public double calcGPA()
	{
		total_points = total_points + (gr * cr);
		total_credit = total_credit + cr;
		gpa = total_points/total_credit;
		return gpa;
	}

	public char getLetterGrade()
	{
	             if (gpa >= 3.5 && gpa <= 4.0) {Lgrade = 'A';}
		else if (gpa >= 2.5 && gpa <  3.5) {Lgrade = 'B';}
		else if (gpa >= 1.5 && gpa <  2.5) {Lgrade = 'C';}
		else if (gpa >= 0.6 && gpa <  1.5) {Lgrade = 'D';}
		else if (gpa >= 0.0 && gpa <  0.6) {Lgrade = 'F';}
		return Lgrade;
	}

	public String getStatus()
	{
		if (gpa >= 2.0) {PFstatus = "PASSSS!";}
		else  {PFstatus = "Fail...";}
		return PFstatus;
	}

	public void DisplayGPA()
	{
		DecimalFormat dec = new DecimalFormat("0.00");

		System.out.println("\nGPA for " +name+ " is: " +dec.format(gpa));
		System.out.println("Letter grade: " +getLetterGrade());
		System.out.println(getStatus());

		System.out.println ("\n\n\n\n\n\n\n\n");
	}
}