import java.io.*;

import java.util.*;

public class GradesSorted

{

private FileReader input;

private FileWriter output, outputSorted;

private StreamTokenizer in;

PrintWriter out, outSorted;
String name;

String [] nameArray = new String [5];

int m=0;
public GradesSorted()

{

try

{

input = new FileReader(new File("InputData.txt"));

output = new FileWriter(new File("OutputData.txt"));
outputSorted = new FileWriter(new File("OutputSortedData.txt"));

in = new StreamTokenizer(input);// wrap FileReader

out = new PrintWriter(output); //wrap FileWriter
outSorted =new PrintWriter(outputSorted);
}

catch(IOException e)

{

System.out.println(e.getMessage());

System.exit(0);

}

}

public void processGrades()

{



int grade;

int sum = 0;

try

{

in.nextToken(); // get the next token

while ( in.ttype != StreamTokenizer.TT_EOF)

{

sum = 0;

// make sure the token is a word (name)

if (in.ttype == StreamTokenizer.TT_WORD){

name = in.sval;
nameArray[m]=name ;
System.out.println(nameArray[m]);

m++;
}
else

throw new Exception("Improper format: name");



for (int i = 1; i <=4; i++) //read the four grades

{

in.nextToken();

// make sure the token is numeric

if (in.ttype == StreamTokenizer.TT_NUMBER)

sum = sum + (int)in.nval;

else

throw new Exception("Expecting Number");

}

out.println(name + ": " + (sum/4.0) );



in.nextToken();

}


Arrays.sort(nameArray);
for (int k=0; k<5;k++)
  outSorted.println(nameArray[k]);

input.close();

output.close();
outputSorted.close();

}

catch (IOException e)

{

System.out.println("IOException " + e.getMessage());

}

catch (Exception e)

{

System.out.println(e.getMessage());

System.exit(0);

}

}

public static void main(String args[])

{

GradesSorted gradeObject = new GradesSorted();

gradeObject.processGrades();


}

}

