Prova al calcolatore

Compito C
Durata: 1:45

Prima parte

La clinica `C. Vostri' vuole informatizzare l'archivio dei propri clienti. A tale scopo, si realizzi la classe Paziente; i dati da memorizzare per ogni paziente sono i seguenti:

nome
una stringa
patologia
un intero, che rappresenta il codice della patologia
degenza
un altro intero, che indica il numero di giorni che il paziente ha già trascorso all'interno della clinica
prognosi
un altro intero, che indica i giorni previsti di prognosi (durata totale della degenza)

Si realizzi la classe Paziente, con le componenti (=variabili di istanza) nome, patologia, degenza, prognosi. La classe deve avere un costruttore a 4 argomenti e metodi get e set per ogni componente. Si realizzino anche i metodi toString ed equals.


Seconda parte

Per ogni reparto della clinica, vogliamo un oggetto che rappresenta l'insieme dei dati dei pazienti ricoverati in quel reparto. Per rappresentare un insieme, si usi un array, oppure una LinkedList, oppure una Lista, oppure un HashSet

Si realizzi la classe Reparto con i seguenti metodi:

static Paziente readPaziente(BufferedReader br)
metodo statico che legge i dati di un paziente da un BufferedReader, e restituisce un oggetto Paziente con questi dati; se il file è finito, va restituito null
Reparto(String nomefile)
il costruttore ha come parametro il nome di un file: i dati dei pazienti contenuti nel file vengono letti e memorizzati nella struttura dati usata per la loro memorizzazione
void aggiorna()
per ciascun paziente, se il numero di giorni di degenza supera quelli di prognosi, si aggiornano i giorni di prognosi rendendoli uguali a quelli di degenza
Paziente erPeggio(int p)
ritorna il paziente con la patologia rappresentata dal codice p che ha il maggiore numero di giorni di degenza in tutto il reparto