Gestione Ateneo - Estensione

Estendere all'interno della classe UniversityExt le funzionalità già implementate nella classe University.

La nuova classe UniversityExt estende la classe University.

R5. Esami

Gli studenti possono sostenere gli esami degli insegnamenti a cui sono iscritti. Il voto di un esame può essere registrato tramite il metodo exam() che riceve come parametri l'ID dello studente, il codice del corso ed il voto (un intero in 0-30).

per ottenere la media dei voti di uno studente si usa il metodo studentAvg() che accetta come parametro l'ID dello studente. Se lo studente ha sostenuto almeno un esame il metodo restituisce uan stringa con il seguente formato "Student STUDENT_ID : AVG_GRADE". Altrimenti restituisce "Student STUDENT_ID hasn't taken any exams".

È possibile otterene la media dei voti di tutti gli studenti che hanno sostenuto l'esame di un dato insegnamento tramite il metodo courseAvg(), che accetta come parametro il codice del corso. Il formato è il seguente "The average for the course COURSE_TITLE is: COURSE_AVG", se almeno uno studente ha sostenuto l'esame per l'insegnamento dato. Altrimenti il metodo restituisce "No student has taken the exam in COURSE_TITLE".

R6. Premi per gli studenti

L'ateneo ha deciso di premiare i migliori studenti per il loro lavoro. Il metodo topThreeStudents() è utilizzato per reperire le informazioni che aiutino la commissione che dovrà prendere la decisione.

Il punteggio degli studenti è valutato sulla base della media degli esami sostenuti. Per tenere in considerazione anche il numero di esami sostenuti e non solo la media, viene assegnato un bonus aggiuntivo alla media: il numero degli esami sostenuti divviso il numero di insegnamenti a cui è iscritto lo studente, moltiplicato per 10 viene sommato all media.

Il metodo restituisce una una stringa con le informazioni relative ai tre studenti con il punteggio più alto. Gli studenti vengono riportati uno per riga (le righe sono terminate dal carattere di fine linea '\n') e ciascuna linea è formattata come segue: "STUDENT_FIRSTNAME STUDENT_LASTNAME : SCORE".

R7. Logger

Si aggiunga un log per le operazioni eseguite tramite la classe di facciata UniversityExt. Tali operazioni includono: