Esercizio 7 – Distributore di bibite (simple version)
- Gennaio 19, 2010
- by
- Donatantonio
Un distributore di bibite contiene lattine di bibite. Per comprare una bibita il cliente deve inserire un gettone. Quando il gettone è inserito, una lattina cade nel contenitore dove può essere presa dal cliente. Il distributore può essere riempito con ulteriori lattine. Vogliamo essere in grado di determinare quante lattine e gettoni sono presenti nella macchina ad un dato istante.
Classe Distributore.java
import java.util.Scanner; public class Distributore { int Coca; int Fanta; int Acqua; int gettone; // Metodo Costruttore inizializzato con il numero di bibite public Distributore(int c,int f, int a) { Coca = c; Fanta = f; Acqua = a; } Scanner in = new Scanner(System.in); // Metodo che restituisce il totale di lattine nel distributore public int totaleLattine() { int totale = Coca + Fanta + Acqua; return totale; } // Metodo che restituisce il totale di gettoni nel distributore public int totaleGettoni() { return gettone; } // Metodo che stampa il menù di scelta bibite e relative quantità public void seleziona() { System.out.println("*** ECCO IL DISTRIBUTORE***"); System.out.println(" 1 - Coca Cola _ quantità : " + Coca); System.out.println(" 2 - Fanta _ quantità : " + Fanta); System.out.println(" 3 - Acqua _ quantità : " + Acqua); } // Metodo per l'acquisto di una bibita scelta public void compra(int a) { System.out.println("Inserisci il gettone : (g)"); String g = in.nextLine(); if (g.equalsIgnoreCase("g")) { if (a==1 && Coca>0){ int temp = Coca; Coca = temp - 1; gettone++; } if (a==2 && Fanta>0){ int temp = Fanta; Fanta = temp - 1; gettone++; } if ( a==3 && Acqua>0){ int temp = Acqua; Acqua = temp - 1; gettone++; } if( a!= 1 && a!=2 && a!=3){ System.out.println("Bibita non presente"); } } else { System.out.println("Gettone non inserito"); } } // Metodo per l'aggiunta di nuove bibite nel distributore public void inserisci(int a, int q) { if (a==1){ int temp = Coca; Coca = temp + q; } if (a==2){ int temp = Fanta; Fanta = temp + q; } if ( a==3){ int temp = Acqua; Acqua = temp + q; } if( a!= 1 && a!=2 && a!=3){ System.out.println("Bibita non presente"); } } }
Classe di test TestDistributore.java
import java.util.Scanner; public class TestDistriub { public static void main(String[] args) { Scanner in = new Scanner(System.in); // Creo un nuovo distributore Distributore d = new Distributore(2,2,2); // Visualizzo il menù di scelta d.seleziona(); String risp = "si"; // Scelta bibita while (risp.equalsIgnoreCase("si")) { System.out.println("Seleziona bibita : (1/2/3)"); int s = in.nextInt(); d.compra(s); d.seleziona(); in.nextLine(); System.out.print("Vuoi un'altra bibita?"); risp = in.nextLine(); } risp ="si"; // Inserimento nuove bibite while (risp.equalsIgnoreCase("si")) { System.out.println("Vuoi inserire delle bibite?"); risp = in.nextLine(); if ( risp.equalsIgnoreCase("si")) { System.out.println("Seleziona bibita : (1/2/3)"); int s = in.nextInt(); System.out.println("Seleziona la quantità : "); int qu = in.nextInt(); d.inserisci(s,qu); d.seleziona(); in.nextLine(); } } // Visualizzo lo stato del distributore System.out.println("Il totale di lattine ora presenti è : " + d.totaleLattine()); System.out.println("Il totale di gettoni ora presenti è : " + d.totaleGettoni()); } }