Salve,
So che può sembrare strana come richiesta, ma mi sto preparando per un esame di Java, o meglio un esame di Metodologie di programmazione in cui si usa Java come linguaggio di Programmazione. Nella speranza di poter trovare aiuto in questo forum, vorrei chiedere cosa fareste voi davanti ad un testo d'esame del genere:
Si richiede la possibilità di rappresentare e gestire una collezione omogenea e dinamica di oggetti generici per i quali è possibile definire una generica relazione booleana: due oggetti possono essere oppure non essere in relazione.
Problema 1. Si richiede il progetto del tipo astratto di dato CollezioneConRelazione (e degli eventuali tipi ad esso correlati), in cui venga definito un unico operatore di accesso in lettura (osservatore) che, a partire da un dato parametro, opera come segue:
· se la collezione contiene elementi in relazione con il parametro, l’operatore calcola un iteratore che enumera tutti gli elementi della collezione che sono in relazione con tale parametro;
· qualora la collezione non contenga elementi in relazione con il parametro, l’operatore calcola il primo elemento della collezione.
Problema 2. Si richiede l’implementazione del tipo CollezioneConRelazione mediante la classe Java CollezioneConRelazione.
Problema 3. Si richiede l’implementazione in Java di un metodo modifica di tipo void di seguito
descritto:
· I parametri del metodo sono un oggetto di tipo CollezioneConRelazione e due oggetti ogg1 e
ogg2
· Il metodo verifica se la collezione contiene elementi in relazione con ogg1 e:
o in caso affermativo, rimuove dalla collezione tutti gli elementi in relazione con ogg1;
o altrimenti, se il primo elemento della collezione è in relazione con ogg2, rimuove dalla collezione il suo primo elemento e vi inserisce ogg2.
Problema 4. Si richiede l’utilizzo del tipo CollezioneConRelazione per il progetto di una collezione di stringhe.
Io ho provato a fare qualcosa, ma i risultati sono molto scarsi:
il metodo trova non è completo, e non ho iniziato la parte di documentazione e commenti richiesta dalla professoressacodice:import java.util.Iterator; import java.util.Vector; public class CollezioneConRelazione { private Vector v; private class IteratoreConRelazione implements Iterator{ private int k; private OggettoConRelazione r; /** * REQUIRES: p non deve essere modificato mentre l'iteratore è attivo * */ public IteratoreConRelazione(OggettoConRelazione p){ r=p; k=0; } public boolean hasNext(){ boolean b=false; int i=0; while(i<v.size()){ if(((OggettoConRelazione)v.elementAt(i)).Relazione(r)){ b=true; i=v.size(); } i++; } return b; } public Object next(){ return v.elementAt(k); } public void remove(){ k++; while(!((OggettoConRelazione)v.elementAt(k)).Relazione(r)){ k++; } } } public CollezioneConRelazione(){ v=new Vector(); } public void aggiungi(OggettoConRelazione p){ if (v.size()==0){ v.add(p); } else if(v.elementAt(0).getClass().equals(p.getClass())){ v.add(p); } else throw new OggettoIncompatibileException(); } public CollezioneConRelazione trova(OggettoConRelazione p){ boolean b=false; int i=0; IteratoreConRelazione it; while (i<v.size()){ if(((OggettoConRelazione)v.elementAt(i)).Relazione(p)){ it=new IteratoreConRelazione(p); i=v.size(); } i++; } } }


Rispondi quotando