Esame laboratorio di programmazione - Compito A
Parte I
Vanno realizzate delle classi per rappresentare dati
relativi a squadre di calcio. In particolare, vanno
realizzate le classi che permettono la memorizzazione dei
dati delle squadre stesse e dei loro dipendenti (calciatori,
allenatori, medici). Si realizzino le seguenti classi:
- Squadra
- ha un nome (stringa), una data di fondazione (intero), e
un insieme che contiene i suoi dipendenti (vedi sotto);
- Dipendente
- contiene nome, cognome, e codice fiscale (tre stringhe);
può essere o un Calciatore, o un
Allenatore, oppure un Medico; non sono
previsti altri tipi di dipendenti
- Calciatore
- oltre ai dati dei dipendenti, va memorizzata la lista
delle squadre in cui il giocatore ha precedentemente
militato
- Allenatore
- oltre ai dati dei dipendenti, va memorizzato il numero
di giornate per le quali l'allenatore è stato in
carica fino al momento attuale
- Medico
- non vanno memorizzati altri dati oltre a quelli di tutti
gli altri dipendenti
Queste classi vanno messe in un package squadre.
Tutte le classi devono essere incapsulate e i loro oggetti
non modificabili. Non sono ammessi valori nulli. Vanno
realizzati i seguenti metodi in tutte le classi:
- costruttore e metodi get
- metodi standard toString, equals,
hashCode e clone (che realizza la
clonazione profonda)
Parte II
In una classe al di fuori del package inserire i seguenti
metodi:
- Boolean incontro(Squadra a, Squadra b)
- questo metodo ritorna true se qualche giocatore
della squadra a ha precedentemente giocato per la
squadra b
- int totale(Squadra a, Map<Calciatore, Integer> i)
- a partire dalla squadra a, si calcoli
l'ingaggio totale dei suoi calciatori, dei calciatori delle
squadre in cui avevano precedentemente giocato, ecc. La
mappa contiene l'ingaggio di ogni calciatore.