CORSO DI LAUREA IN INFORMATICA A.A. 2004-05
COGNOME
NOME
DATA DI NASCITA
Si consideri la seguente situazione che si vorrebbe modellare con un opportuno insieme di classi JAVA:
Ogni quadrupede è caratterizzato dal peso. Si vogliono considerare i seguenti tipi di animali: cani, lupi e cavalli. La famiglia dei canidi (cani e lupi) è caratterizzata dalla lunghezza naso-coda dell’animale. Tra i cani si distingue la razza degli yorkshire, caratterizzata dal tipo di naso (char). I cavalli, caratterizzati dalla razza, possono essere domati. Ogni cane possiede un certificato di pedigree, caratterizzato da un codice di 200 caratteri, dal numero di antenati certificati, e dalla data di rilascio del documento.
A: analisi e disegno.
Riportare il diagramma UML di tutte le classi che si ritengono necessarie alla corretta descrizione e rappresentazione della situazione sopra descritta. Nella gerarchia ereditaria si considerino anche i seguenti metodi eventualmente polimorfi e se ne dia un’implementazione:
getTotale; restituisce il numero di animali esistenti fino all’istante di invocazione del metodo;
getPeso; restituisce il peso dell’animale;
getPedigree; restituisce il certificato di pedigree;
getValore; restituisce un valore in euro per ogni animale calcolato mediante la formula:
c · Peso per i cavalli,
(c+Peso)7 · Lunghezza / 0.2 per i lupi,
2 · c + 10 · Lunghezza + NumAntenati per i cani,
dove c è un coefficiente costante per tutti gli animali.
B: utilizzo delle classi.
Si fornisca un frammento di programma che descriva la creazione e l’inizializzazione casuale di una collezione di 2000 animali e
si visualizzino le informazioni per ogni animale,
si trovi l’animale più prezioso,
si ordinino (in base al peso) in un array indipendente tutti gli yorkshire della collezione (gli oggetti non devono essere clonati).
Diagramma UML
