@SuppressWarnings({ "rawtypes", "unchecked" })
	public static void printTranscript() {

		System.out.println("Please Select Student Matriculation No. to Display Transcript : ");
		Student s = (Student)chooseChoosable((ArrayList)studentList);
		for (Course c: s.getCourseList()) {//loop through all courses
			int total, totalCourseWorkWeight=0, studentCourseTotalMark=0;
			for(Component com:c.getCourseWork().getComponent()) totalCourseWorkWeight+= com.getWeightage();//add total component weightage
			total = c.getExam().getWeightage() + c.getCourseWork().getWeightage();//total weightage for exam and component
			System.out.println("Results for Course: " + c.getName() + "...");
			Result examResult = null;
			for(Result r:c.getExam().getResultList()){
				if(r.getParentStudent().equals(s)){
					examResult=r;
					break;
				}
			}
			if(examResult==null)return;
			int adjustedExam = (int)((double)examResult.getScore()/(double)c.getExam().getTotalScore()*(double)c.getExam().getWeightage()/(double)total*(double)100);
			System.out.printf("Exam:\t\tActual: %d/%d\tAdjusted:%d/%d\n",examResult.getScore(),c.getExam().getTotalScore(),adjustedExam,(int)((double)c.getExam().getWeightage()/(double)total*100));
			System.out.println("\nCoursework Breakdown:");
			for(Component com:c.getCourseWork().getComponent()){
				Result comResult = null;
				for(Result r:com.getResultList()){
					if(r.getParentStudent().equals(s)){
					comResult=r;
					break;
				}
			}
			int adjustedResult = (int)((double)comResult.getScore()/(double)com.getTotalScore() * (double)com.getWeightage()/(double)totalCourseWorkWeight * (double)c.getCourseWork().getWeightage() /(double)total * (double)100);
			studentCourseTotalMark += adjustedResult;
			int adjustedTotal = (int)((double)com.getWeightage()/(double)totalCourseWorkWeight * (double)c.getCourseWork().getWeightage() /(double)total * (double)100);
			System.out.printf("%s:\t\tActual: %d/%d\tAdjusted:%d/%d\n",com.getName(),comResult.getScore(),com.getTotalScore(),adjustedResult,adjustedTotal);
			}
			studentCourseTotalMark += adjustedExam;
			System.out.printf("Final Mark: %d/100 Final Grade: %s",studentCourseTotalMark, computeGrade(studentCourseTotalMark));
			System.out.println();
			System.out.println();

		}

	}