import java.util.*;
public class Transcript
{
	private Header student;
	private ArrayList <DetailRecord> courses;
	
	public Transcript(Header student)
	{
		this.student = student;
		courses = new ArrayList <DetailRecord>();
	}
	
	public void addCourse(DetailRecord d)
	{
		courses.add(d);
	}
	
	public String getTranscript()
	{
		String builder;
		builder = "Digital University - Transcript Record\n\n";
		builder += student.getHeader();
		builder += "\nTranscript Detail\n\n";
		
		for (DetailRecord d : courses)
			builder += d.toString() + "\n";
		
		builder += "\nTranscript Summary\n\n";
		builder += String.format("\tSuccessful hours: %d\tGPA: %.2f\n", 
			getEarnedHours(), getGPA());
		builder += "End of Transcript for " + student.getName();
		
		return builder;
	}
	
	public int getEarnedHours()
	{
		int hours = 0;
		
		for (DetailRecord d : courses)
			hours += d.getEarnedHours();
		return hours;
	}
	
	public double getGPA()
	{
		int hours = 0;
		double qualityPoints = 0;
		double gpa;
		
		for (DetailRecord d : courses)
		{
			hours += d.getGradedHours();
			qualityPoints += d.getQualityPoints();
		}
		
		if (hours == 0)
			gpa = 0;
		else
			gpa = qualityPoints / hours;
		
		return gpa;
	}
}