University Management System - Extended

Extend, inside class UniversityExt the functions already implemented in class University.

The class UniversityExt extends class University.

R5. Exams

Students can take the exams for the courses in which they have been enrolled. The grade for an exam can be registered through the method exam() that accepts as arguments the ID of the student, course code and a grade (integer 0-30).

To get the average grade for a student, the method studentAvg() is used. It accepts as argument the ID of the student. If the student took at least one exam it returns a String of the following format "Student STUDENT_ID : AVG_GRADE". Otherwise, it returns "Student STUDENT_ID hasn't taken any exams".

It is possible to get the average grades of all students that took the exam for a given course, method courseAvg() accepting as argument the course code can be used for this purpose. The format is the following: "The average for the course COURSE_TITLE is: COURSE_AVG", if at least one student took the exam for that course. If this is not the case, the method should return "No student has taken the exam in COURSE_TITLE".

R6. Student award

The university has decided to award the best students for their hard-work and effort. The method topThreeStudents() is used to retrieve information for helping the committee to award the price(s).

The students' score is evaluated as the average grade of the exams they've taken. To take into account the number of exams taken and not only the grades, special bonus is assigned on top of the average grade: the number of taken exams divided by the number of courses the student is enrolled to, multiplied by 10 is added.

The method returns a string with the information about the three students with the highest score. The students appear one per row (rows are terminated by a new-line character '\n') and each one of them is formatted as: "STUDENT_FIRSTNAME STUDENT_LASTNAME : SCORE".

R7. Logger

Add logging of operations performed through the UniversityExt facade class. Such operations include: