Laboratorio di Sistemi Classi e relazioni Java

Documenti analoghi
Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

Esempio su strutture dati dinamiche: ArrayList

Laoratorio di sistemi Estrazione di una carta senza ripetizione Java [NetBeans]

Laboratorio di Programmazione 1 [Java]

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

Esempio su strutture dati dinamiche: ArrayList

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

// inizializzazione della biblioteca con utenti, libri e prestiti // non richiesta Biblioteca.inizializza();

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi della lezione 5 di Java

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Esempio su strutture dati dinamiche: ArrayList

Laboratorio di Programmazione 1 [Java]

Programmazione 1 A.A. 2015/2016

Metodi statici. Dichiarazione e chiamata di metodi statici

Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un

Gestione delle eccezioni

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Laboratorio di Programmazione Lezione 4. Cristian Del Fabbro

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esercitazione. Docente Ing. Mariateresa Celardo

Esercizi classi e array

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Definizione di classi con array di oggetti

Linguaggi di programmazione II AA 2010/2011 Esercitazione 2

Esempio: L EURO-CONVERTITORE (1) Scopo

Algoritmi di Ricerca. Esempi di programmi Java

Esercitazione 15. Il problema dello Sleeping Barber

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Algoritmi di Ricerca. Esempi di programmi Java

Programmazione con Java

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a I scritto Febbraio 11 Febbraio 2011

Programmazione Orientata agli Oggetti in Linguaggio Java

Algoritmi di Ricerca. Esempi di programmi Java

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Esempio: Interfacce. Gioco Interfacce

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Esercizi Svolti. Traccia completa svolta 1. Domanda 1:

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Programmazione ad Oggetti: JAVA. Esercitazione

Esempio: Interfacce. Gioco Interfacce

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

16 - Ereditarietà, tipi e gerarchie

Esercitazione n 2. Obiettivi

TIPI PRIMITIVI E CLASSI WRAPPER

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Prova d Esame Compito B

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Le basi del linguaggio Java

Realizzazione di una classe con un associazione

/***************************** FILE: Quiz.java *****************************/ public class Quiz { private String text; private int score;

Java: Compilatore e Interprete

Transcript:

package carrelloconsoleapp; import javax.swing.imageicon; /* *.java /** * * @author maurizio public class { private String id; private String descrizione; private double prezzo; private int percsconto; carrello.pdf Pag. 1/9 Cozzetto

private int iva; private int qta; private Categoria categoria; private ImageIcon img; /** Costruttore senza parametri public () { /** Costruttore con parametri public (String id, String descrizione, double prezzo, int percsconto, int iva, int qta, Categoria categoria) { this.id = id; this.descrizione = descrizione; this.prezzo = prezzo; this.percsconto = percsconto; this.iva = iva; this.qta = qta; this.categoria = categoria; /** Il prezzo finale è dato dal valore netto + l'iva - lo sconto public double prezzofinale() { return getprezzo()*getqta()+(getprezzo()*getqta()*getiva())/100- (getprezzo()*getqta()*getpercsconto())/100; /** Visualizzazione delle informazioni essenziali del prodotto public String visualizza() { return String.format("\nCodice: %s Titolo: %s Quantità: %d Categoria: %s Prezzo: %f euro",getid(), getdescrizione(), getqta(),getcategoria().getdescrizione(),this.prezzofinale()); public String getid() { return id; public void setid(string id) { this.id = id; public String getdescrizione() { return descrizione; public void setdescrizione(string descrizione) { this.descrizione = descrizione; public double getprezzo() { return prezzo; public void setprezzo(double prezzo) { this.prezzo = prezzo; carrello.pdf Pag. 2/9 Cozzetto

public int getpercsconto() { return percsconto; public void setpercsconto(int percsconto) { this.percsconto = percsconto; public int getiva() { return iva; public void setiva(int iva) { this.iva = iva; public int getqta() { return qta; public void setqta(int qta) { this.qta = qta; public Categoria getcategoria() { return categoria; public void setcategoria(categoria categoria) { this.categoria = categoria; public ImageIcon getimg() { return img; public void setimg(imageicon img) { this.img = img; // fine classe /* * Categoria.java package carrelloconsoleapp; /** * * @author maurizio public class Categoria { private String idcategoria; private String descrizione; carrello.pdf Pag. 3/9 Cozzetto

public Categoria(String idcategoria, String descrizione) { this.idcategoria = idcategoria; this.descrizione = descrizione; public String getidcategoria() { return idcategoria; public void setidcategoria(string idcategoria) { this.idcategoria = idcategoria; public String getdescrizione() { return descrizione; public void setdescrizione(string descrizione) { this.descrizione = descrizione; // fine classe Categoria /* * Carrello.java package carrelloconsoleapp; import java.util.arraylist; import java.util.list; /** * * @author maurizio public class Carrello { private List<> prodotti; // struttura dati di appoggio private static int numprodotti = 0; private double totale; // totale acquisti carrello /** Costruttore public Carrello() { prodotti = new ArrayList<>(); totale = 0; /** Aggiunta di un prodotto al carrello public void aggiungi( p) { if (p==null) return; // ricerca del prodotto p int i = cerca2(p); carrello.pdf Pag. 4/9 Cozzetto

if (i==-1) { // non c'è il prodotto quindi si può aggiungere prodotti.add(p); numprodotti++; else { prodotti.get(i).setqta(prodotti.get(i).getqta()+1); // Il prodotto esiste già nel carrello. Incremento la quantità di 1 // fine aggiungi /** Overloading del metodo aggiungi public void aggiungi( p, int qta) { if (p==null qta<0) return; // ricerca del prodotto p int i = cerca2(p); if (i==-1) { // il prodotto non esiste prodotti.add(p); numprodotti++; i = prodotti.indexof(p); // ora p si trova nel carrello prodotti.get(i).setqta(prodotti.get(i).getqta()+qta); else { prodotti.get(i).setqta(prodotti.get(i).getqta()+qta); //Il prodotto è già nel carrello. Incremento la quantità di qta unità // fine aggiungi /** Rimozione di un prodotto noto il reference del prodotto public void rimuovi( p) { if (p==null) return; // ricerca di p int i = cerca2(p); if (i!=-1) { prodotti.remove(p); numprodotti--; // fine metodo rimuovi /** restituisce true se il carrello è vuoto false in caso contrario public boolean evuoto() { return prodotti.isempty(); /** Restituzione di una stringa che rappresenta il carrello public String daticarrello() { if (!this.evuoto()) { String s=" \n"; if (numprodotti>1) s=s+"nel carrello ci sono "+numprodotti+" prodotti\n"; else s=s+"nel carrello c'è "+numprodotti+" prodotto\n"; carrello.pdf Pag. 5/9 Cozzetto

for ( p: prodotti) s=s+p.visualizza()+"\n"; s = s+string.format("totale carrello: %f euro",this.gettotale()); return s; else return null; // fine metodo daticarrello /** Visualizzazione del carrello public void mostracarrello() { if (this.evuoto()) System.out.println("Il carrello è vuoto"); else System.out.println(this.datiCarrello()); /** Conteggio dei prodotti inseriti nel carrello public int getnumprodotti() { return numprodotti; /** Calcolo del totale complessivo dei prodotti nel carrello public double gettotale() { totale = 0; for ( p: prodotti) { totale = totale + p.prezzofinale(); return totale; /** Ricerca della posizione del prodotto nel carrello se il prodotto esiste public int cerca(string id) { for (int i=0; i<getnumprodotti(); i++) if (id.equals(prodotti.get(i).getid())) return i; return -1; public int cerca2( p) { return prodotti.indexof(p); // fine classe Carrello carrello.pdf Pag. 6/9 Cozzetto

/* * Main.java package carrelloconsoleapp; public class Main { public static void main(string[] args) { // scelgo una categoria Categoria c = new Categoria("LBR","Libri"); // creo 4 prodotti di quella categoria p1 = new ("P1","Java",78,6,10,1,c); p2 = new ("P2","UML",90,0,7,1,c); p3 = new ("P3","C++",80,0,9,1,c); p4 = new ("P4","Javascript",56,0,20,1,c); // creo un carrello (all'inizio è vuoto) Carrello cr = new Carrello(); // mi faccio dare la categoria del prodotto p1 Categoria cg = p1.getcategoria(); // controllo la descrizione della categoria precedente (se coincide) System.out.println("L'oggetto p1 appartiene alla categoria "+cg.getdescrizione()); // dal momento che il carrello è vuoto, adesso non dovrebbero apparire // prodotti nel carrello double tot = cr.gettotale(); System.out.println("Totale carrello "+tot); // aggiungiamo due prodotti System.out.println("Aggiungo i prodotti p1 e p2"); cr.aggiungi(p1); cr.aggiungi(p2); // il carrello non è più vuoto // aggiungo la quantità 1 al prodotto p1 System.out.println("Tento di aggiungere p1 (che esiste già): incremento di 1 la quantità"); cr.aggiungi(p1); // aggiungo nuovi prodotti System.out.println("Aggiungo i prodotti p3, p4 e p2 (p2 si trova già nel carrello, quindi incremento la quantità di 1)"); cr.aggiungi(p3); cr.aggiungi(p4); cr.aggiungi(p2); carrello.pdf Pag. 7/9 Cozzetto

// aggiungo delle quantità ai prodotti p3 e p4 System.out.println("Aggiungo al prodotto p3 4 unità e al prodotto p4 6 unità"); cr.aggiungi(p3,4); cr.aggiungi(p4,6); // cerco un prodotto noto l'id del prodotto System.out.println("Ricerca del prodotto p3 noto id"); int i = cr.cerca(p3.getid()); if (i!=-1) { System.out.println("Il prodotto p3 esiste nel carrello"); System.out.println(p3.visualizza()); else System.out.println("Il prodotto p3 non esiste nel carrello"); // creo un nuovo prodotto p5 p5 = new ("P5","Prova",20,3,4,1,c); // cerco il prodotto p5 (il prodotto non è stato ancora aggiunto) i = cr.cerca2(p5); if (i!=-1) { System.out.println("Il prodotto p5 esiste nel carrello"); System.out.println(p5.visualizza()); else System.out.println("Il prodotto p5 non esiste nel carrello"); System.out.println("Tento di rimuovere p5 che non esiste"); cr.rimuovi(p5); System.out.println("Rimuovo i prodotti p2, p3 e p4"); cr.rimuovi(p2); cr.rimuovi(p4); cr.rimuovi(p3); System.out.println("Rimuovo il prodotto p1"); cr.rimuovi(p1); // in questo momento il carrello è vuoto quindi aggiungo un prodotto System.out.println("Aggiungo p5"); cr.aggiungi(p5); // fine metodo main // fine classe Main Esempio di esecuzione: L'oggetto p1 appartiene alla categoria Libri Il carrello è vuoto Totale carrello 0.0 Aggiungo i prodotti p1 e p2 Nel carrello ci sono 2 prodotti carrello.pdf Pag. 8/9 Cozzetto

Codice: P1 Titolo: Java Quantità: 1 Categoria: Libri Prezzo: 81,120000 euro Codice: P2 Titolo: UML Quantità: 1 Categoria: Libri Prezzo: 96,300000 euro Totale carrello: 177,420000 euro Tento di aggiungere p1 (che esiste già): incremento di 1 la quantità Nel carrello ci sono 2 prodotti Codice: P1 Titolo: Java Quantità: 2 Categoria: Libri Prezzo: 162,240000 euro Codice: P2 Titolo: UML Quantità: 1 Categoria: Libri Prezzo: 96,300000 euro Totale carrello: 258,540000 euro Aggiungo i prodotti p3, p4 e p2 (p2 si trova già nel carrello, quindi incremento la quantità di 1) Nel carrello ci sono 4 prodotti Codice: P1 Titolo: Java Quantità: 2 Categoria: Libri Prezzo: 162,240000 euro Codice: P2 Titolo: UML Quantità: 2 Categoria: Libri Prezzo: 192,600000 euro Codice: P3 Titolo: C++ Quantità: 1 Categoria: Libri Prezzo: 87,200000 euro Codice: P4 Titolo: Javascript Quantità: 1 Categoria: Libri Prezzo: 67,200000 euro Totale carrello: 509,240000 euro Aggiungo al prodotto p3 4 unità e al prodotto p4 6 unità Nel carrello ci sono 4 prodotti Codice: P1 Titolo: Java Quantità: 2 Categoria: Libri Prezzo: 162,240000 euro Codice: P2 Titolo: UML Quantità: 2 Categoria: Libri Prezzo: 192,600000 euro Codice: P3 Titolo: C++ Quantità: 5 Categoria: Libri Prezzo: 436,000000 euro Codice: P4 Titolo: Javascript Quantità: 7 Categoria: Libri Prezzo: 470,400000 euro Totale carrello: 1261,240000 euro Ricerca del prodotto p3 noto id Il prodotto p3 esiste nel carrello Codice: P3 Titolo: C++ Quantità: 5 Categoria: Libri Prezzo: 436,000000 euro Il prodotto p5 non esiste nel carrello Tento di rimuovere p5 che non esiste Rimuovo i prodotti p2, p3 e p4 Rimuovo il prodotto p1 Il carrello è vuoto Aggiungo p5 Nel carrello c'è 1 prodotto Codice: P5 Titolo: Prova Quantità: 1 Categoria: Libri Prezzo: 20,200000 euro Totale carrello: 20,200000 euro BUILD SUCCESSFUL (total time: 0 seconds) carrello.pdf Pag. 9/9 Cozzetto