//  Scott DeRuiter     7/9/2002
//  Grades.java
//  Calculate grades and eligibility for a user.

public class Grades   
{
	private int total, counter;
	private double gpa;
	private boolean flagforf;
	
	public Grades ( )   
	{
		total = counter = 0;
		gpa = 0.0;
		flagforf = false;
	}
	
	public static void main ( String [] args )   
	{
		Grades grades = new Grades ( );
		grades.PickupGrades ( );
		grades.PrintGPA ( );
	}
	
	public void PickupGrades ( )   
	{
		char letter;
		boolean goodletter = true;
		TextReader inFile;
		String name = "grades.txt";
		inFile = new TextReader ( name );
		letter = inFile.readlnChar ( );
		if (inFile.fail())    
		{
			      System.err.println("Can't open " + name);
			      System.exit(1);
			    
		}
		    while ( !inFile.eof ( ) )  
		{
			
		//System.out.print ( "\n\nEnter a grade (a non-grade character to quit)  ->   " );
			if ( letter >= 'a' && letter <= 'z' )letter = (char)((int)letter - 32);
			counter++;
			switch  ( letter )   
			{
				case 'A':   total += 4;
				    break;
				case 'B':   total += 3;
				       break;
				case 'C':   total += 2;
				       break;
				case 'D':   total += 1;
				    break;
				case 'F':   total += 0;
				   flagforf = true;
				    break;
				default:    counter--;
				    goodletter = false;
				    break;
			}
			letter = inFile.readlnChar ( );
		}
		 
	}
	

public void PrintGPA ( )   
	{
		TextWriter outFile;
		String name = "gpa.txt";
		outFile = new TextWriter ( name );
		if ( counter > 0 )   
		{
			gpa = (double)total / (double)counter;
		}
		if ( counter < 4 )   
		{
			outFile.println ( "\n\nYou are ineligible, enrolled in less than 4 classes" );
		}
		else if ( flagforf )   
		{
			if ( gpa > 2.0 )   
			{
				outFile.println ( "\n\nYou are ineligible, 'F' grade with GPA greater than 2.0" );
				outFile.println ( "Your GPA is:  " + Format.right ( gpa, 6, 3 ) + "\n\n" );
			}
			else if ( gpa <= 2.0 )   
			{
				outFile.println ( "\n\nYou are ineligible, 'F' grade with GPA less than or equal to 2.0" );
				outFile.println ( "Your GPA is:  " + Format.right ( gpa, 6, 3 ) + "\n\n" );
			}
		}
		else if ( gpa < 2.0 )   
		{
			outFile.println ( "\n\nYou are ineligible, GPA less than 2.0" );
			outFile.println ( "Your GPA is:  " + Format.right ( gpa, 6, 3 ) + "\n\n" );
		}
		else  
		{
			outFile.println ( "\n\nYou are eligible and enrolled in " + counter + " classes\n" );
			outFile.println ( "Your GPA is:  " + Format.right ( gpa, 6, 3 ) + "\n\n" );
		}
		outFile.close ( );
	}
}

Back to Lesson 14 Examples

Back to Java Main Page