// 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