import java.util.Scanner;
//=================================================================================================
public class UseStudent2 {
//-------------------------------------------------------------------------------------------------
    private static final Scanner keyboard = new Scanner(System.in);
    private static final int MAX_STUDENTS = 10;
//-------------------------------------------------------------------------------------------------
    public static void main(String[] args) {

        Student[] students = new Student[MAX_STUDENTS];
        int numberOfStudents;

        numberOfStudents = insertStudents(students);
        printStudents(students,numberOfStudents);

    }
//-------------------------------------------------------------------------------------------------
    private static int insertStudents(Student[] students) {

        char option;
        String name;
        UndergraduateStudent.Standing standing;
        int index;
        int mark;
        Student newStudent;
        int numberOfStudents;

        numberOfStudents = 0;
        do {
            do {
                System.out.print("(G)raduate, (U)ndergraduate, e(X)it : ");
                option = Character.toUpperCase(keyboard.nextLine().charAt(0));
            } while (option != 'G' && option != 'U' && option != 'X');
            if (option == 'G' || option == 'U') {
                System.out.print("Name     : ");
                name = keyboard.nextLine();
                if (option == 'G') {
                    newStudent = new GraduateStudent(name);
                } else {
                    System.out.print("Standing : ");
                    standing = UndergraduateStudent.Standing.valueOf(
keyboard.nextLine().toUpperCase());
                    newStudent = new UndergraduateStudent(name,standing);
                }
                for (index = 1; index <= newStudent.NUMBER_OF_TESTS; index++) {
                    System.out.print("Mark " + index + "   : ");
                    mark = keyboard.nextInt();
                    newStudent.setMark(index,mark);
                }
                keyboard.nextLine();
                students[numberOfStudents] = newStudent;
                numberOfStudents++;
            }
        } while (option != 'X');

    return(numberOfStudents);
    }
//-------------------------------------------------------------------------------------------------
    private static void printStudents(Student[] students,int numberOfStudents) {

        int index;

        for (index = 0; index < numberOfStudents; index++) {
            students[index].computeGrade();
            students[index].display();
            System.out.println();
        }
    }
//-------------------------------------------------------------------------------------------------
}
//=================================================================================================
