Fabio Donatantonio

Resta connesso

Software Developer / Adjunct Professor

Esercizio 7 – Distributore di bibite (simple version)

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

  }
}
Fabio Donatantonio

Fabio Donatantonio. Analista e sviluppatore full-stack di applicazioni web in linguaggio PHP. Professore a Contratto per le cattedre di Fondamenti di Informatica e Archivistica Digitale presso Università degli Studi eCampus. Dal 2008 curatore del sito www.donatantonio.net, da sempre appassionato di programmazione, mare, sigari e... musica.

Leave a reply

Your email address will not be published. Required fields are marked *

 

Didattica

Università degli Studi eCampus
Data Evento
09/02/2021
14:30
Esame Archivistica Digitale e Informatica per le Scienze Umane - Cds Letteratura, Lingua e Cultura Italiana - Lettere
09/02/2021
14:30
Esame Introduzione all'Archivistica Digitale e all'Informatica per le Scienze Umane - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Design e Discipline della Moda - Lettere
09/02/2021
17:30
Esame Abilità Informatiche e Telematiche - Cds Letteratura, Arte, Musica e Spettacolo - Lettere
Risorse
Guida HTML/CSS per principianti (link)
Introduzione agli ipertesti (link)
Esercizi guidati in Java (link)
Intelligenza artificiale (link)
Libri
Fondamenti di Informatica (2011) (link)
Informatica per le Scienze Umane (2011) (link)
Fondamenti di Informatica (2014) (link)
Pagina Docente
uniecampus.it - Scheda Docente (link)
Contatti
fabio.donatantonio[at]uniecampus.it

JWhisper, sviluppato presso il Dipartimento di Informatica Applicata dell'Università degli Studi di Salerno:

Stay Connected

Twitter

Le mie foto

Foto di Fabio Donatantonio
×