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());
}
}

