/******************************************************************
 * Program: StudentScore
 *
 * Programmer: Tyler Johnson
 *
 * Due Date: N/A

 *
 * COMP 110-001        Instructor: Tyler Johnson
 *
 * Description: This file defines the class StudentScore.  The class
 *				maintains a students score on two quizzes, a midterm
 *				and a file.  It provides the capability to read in
 *				the students data and display the students record.
 *
 ******************************************************************/

import java.util.Scanner;

public class StudentScore  {

	private int quiz1;
	private int quiz2;
	private int midterm;
	private int finalExam;
	
	public void readData()  {
	
		Scanner keyboard = new Scanner(System.in);
		
		System.out.println("Please enter the student's record");
		System.out.print("Quiz 1: ");
		quiz1 = keyboard.nextInt();
		System.out.print("Quiz 2: ");
		quiz2 = keyboard.nextInt();
		System.out.print("Midterm: ");
		midterm = keyboard.nextInt();
		System.out.print("Final: ");
		finalExam = keyboard.nextInt();
		
		System.out.println("Thank you.");
	}
	
	public void displayRecord()  {
		
		double finalScore;
		char finalGrade;
		
		finalScore = computeFinalScore();
		finalGrade = computeFinalGrade(finalScore);
		
		System.out.println("The student's record is: ");
		System.out.println("Quiz 1: " + quiz1);
		System.out.println("Quiz 2: " + quiz2);
		System.out.println("Midterm: " + midterm);
		System.out.println("Final: " + finalExam);
		System.out.println("Final Score: " + finalScore);
		System.out.println("Final Grade: " + finalGrade);
		
	}
	
	private double computeFinalScore()  {
	
		double finalScore;
	
		double quiz1Percent = 100.*quiz1/10.;
		double quiz2Percent = 100.*quiz2/10.;
		
		//compute final score
		finalScore = 0.125*quiz1Percent + 0.125*quiz2Percent + .25*midterm + .5*finalExam;
		
		return finalScore;
	}
	
	private char computeFinalGrade(double finalScore)  {
	
		char finalGrade;
		
		if(finalScore >= 90.)
			finalGrade = 'A';
		else if(finalScore >= 80.)
			finalGrade = 'B';
		else if(finalScore >= 70.)
			finalGrade = 'C';
		else if(finalScore >= 60.)
			finalGrade = 'D';
		else
			finalGrade = 'F';
			
		return finalGrade;	
	}
	
	public static void main(String[] args)  {
		
		StudentScore sc = new StudentScore();
		
		sc.readData();
		
		sc.displayRecord();
	}

}