Estratto del documento

Fondamenti di Informatica — ArrayList di oggetti collegati

Schema per tipologia di metodo (senza ripetizioni)

Invece di andare esercizio per esercizio, qui i metodi sono raggruppati per tipo di operazione (cerca, aggiungi, conta, elimina, filtra,

min/max). Per ogni tipo trovi il codice reale una volta sola, con l’elenco di tutti i metodi/esercizi che usano quel identico codice. Dove il

codice cambia davvero, trovi le varianti separate.

Esercizi coinvolti: Laurea (Docente–Studente), Dipartimento (Docente–Assegnista), AziendaSanitaria (Medico–Paziente), Libreria

(Artista–Brano), ArchivioDirigentiImpiegati (Dirigente–Impiegato), ArchivioFilm (Regista–Film), Negozio (Cliente–Acquisto).

1. RICERCA (cerca…/indice…)

1.1 Ricerca di A per un singolo campo String

private int cercaDocente(String unNomeDocente) {

for (int i = 0; i < docenti.size(); i++) {

String a = docenti.get(i).getNome();

if (a.equals(unNomeDocente)) {

return i;

}

}

return -1;

}

Identico (cambia solo nome campo/metodo) in: (AziendaSanitaria, confronta ), (Libreria),

cercaMedico getMedico() cercaArtista

(ArchivioFilm), (Negozio). (ArchivioDirigentiImpiegati) è identico ma dichiarato public

cercaRegista indiceCliente cercaDirigente

invece che .

private

1.2 Ricerca di A per due campi (Dipartimento)

private int indiceDocente(String unNome, String unCognome) {

for (int i = 0; i < docenti.size(); i++) {

if (docenti.get(i).getNome().equals(unNome)

&& docenti.get(i).getCognome().equals(unCognome)) {

return i;

}

}

return -1;

}

Unico caso con doppio confronto . Nessun altro esercizio lo replica.

&&

1.3 Ricerca di B per un codice numerico (int, con )

==

private int cercaMatricola(int unaMatricola) {

for (int i = 0; i < studenti.size(); i++) {

if (studenti.get(i).getMatricola() == unaMatricola) {

return i;

}

}

return -1;

}

Identico in: (Dipartimento), (AziendaSanitaria), (ArchivioDirigentiImpiegati),

indiceAssegnista cercaCodice cercaImpiegato

(Negozio). Cambia solo il nome del campo chiave (matricola/codice) e la lista scandita.

indiceAcquisto

1.4 Ricerca di B per un titolo (String, con )

.equals

private int cercaBrano(String unTitolo) {

for (int i = 0; i < brani.size(); i++) {

if (brani.get(i).getTitolo().equals(unTitolo)) {

return i;

}

}

return -1;

}

Identico in: (ArchivioFilm). Unica differenza col gruppo 1.3: chiave String → invece di .

cercaFilm .equals ==

2. AGGIUNTA (aggiungi…/agg…/inserisci…)

2.1 Aggiungi A (crea solo se non esiste)

public void aggiungiDocente(String unNomeDocente) {

if (cercaDocente(unNomeDocente) == -1) {

docenti.add(new Docente(unNomeDocente));

}

}

Identico in: (Dipartimento), (AziendaSanitaria), (Libreria),

inserisciDocente aggiungiMedico aggArtista aggiungiDirigente

(ArchivioDirigentiImpiegati), (ArchivioFilm), (Negozio).

aggRegista aggCliente

2.2 Aggiungi B con chiave numerica, senza campo extra

public void aggiungiStudente(int unaMatricola, String unNomeDocente) {

aggiungiDocente(unNomeDocente);

if (cercaMatricola(unaMatricola) == -1) {

int indiceDocente = cercaDocente(unNomeDocente);

studenti.add(new Studente(unaMatricola, docenti.get(indiceDocente)));

}

}

Identico (a meno dell’ordine dei controlli, ininfluente) in: (AziendaSanitaria),

aggiungiPaziente aggiungiImpiegato

(ArchivioDirigentiImpiegati).

2.3 Aggiungi B con chiave String (titolo), sen

Anteprima
Vedrai una selezione di 3 pagine su 6
Prima parte di Fondamenti di informatica Pag. 1 Prima parte di Fondamenti di informatica Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Prima parte di Fondamenti di informatica Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher mansourghmd di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Pini Maria Silvia.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community