[C] Esercizio gestione distributore automatico

di il
2 risposte

[C] Esercizio gestione distributore automatico

Salve devo fare un esercizio in c la traccia è la seguente:

Si vuole simulare la gestione annuale di un distributore automatico di bibite. Si suppone
di avere 10 prodotti identificati da un nome, da un codice identificativo e da un prezzo.
Permettere all’utente di:
• Di inserire dei soldi (10, 20, 50 centesimi, 1 euro) e scegliere un prodotto
o In base al costo verificare se è possibile prendere il prodotto
o Verificare se c’è bisogno di dare del resto
• Data una data e un prodotto calcolare la quantità venduta nel giorno di
riferimento (usare un algoritmo incrementale ricorsivo)
Implementazione l’algoritmo per la simulazione del distributore (e.g, struttura
matriciale) ed effettuare almeno un test per ognuna delle opzioni richieste dall’utente.

Ho scritto il codice ma sono bloccato così:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// Creazione delle STRUCT.
struct bibite {
    char nome[100];
    int codice;
    float prezzo;
    int disponibilita;
};

int main()
{
    // Creazione del distributore.
    typedef struct bibite Bibite;
    Bibite array_bibite[10] = {{"Acqua", 0, 0.40, 10},
                              {"CocaCola", 1, 0.60, 10},
                              {"Pepsi", 2, 0.50, 10},
                              {"Sprite", 3, 0.70, 10},
                              {"Fanta", 4, 0.70, 10},
                              {"EstaTHE", 5, 0.20, 10},
                              {"Succo", 6, 0.10, 10},
                              {"Gassosa", 7, 0.40, 10},
                              {"Powered", 8, 0.90, 10},
                              {"Redbull", 9, 1.00, 10}};

    // Scelta di una bibita da parte dell'utente.
    printf("Sono presenti le seguenti bibite:\n");

    // Dichiarazione delle variabili.
    float monete_inserite, resto;
    int i, bibita_scelta,contatore_while=0;
    int j = 0;

    for (i = 0; i < 10; i++) {
        printf("%d - %s  Prezzo: %1.2f\n", array_bibite[i].codice, array_bibite[i].nome,array_bibite[i].prezzo);
    }
    printf("\n");
    printf("(10)Resoconto\n");
    printf("(11)Termina la macchina.\n\n");
while(contatore_while==0){
printf("Inserire codice: ");
scanf("%d",&bibita_scelta);
switch(bibita_scelta){
case 10 : printf("Ciaone\n"); break;
case 11 : printf("Grazie e arrivederci\n"),contatore_while++; break;
default:  printf("Hai scelto di prelevare %s. Inserisci delle monete (0.10, 0.20, 0.50, 1.00): ", array_bibite[bibita_scelta].nome);
          scanf("%f", &monete_inserite);
          if(monete_inserite != 0.10f && monete_inserite != 0.20f && monete_inserite != 0.50f && monete_inserite != 1.00f){
            printf("Il distributore accetta solo monete da: 0.10, 0.20, 0.50, 1.00\n\n");
            break;
          }
          else if(monete_inserite < array_bibite[bibita_scelta].prezzo){
            printf("Credito insufficente per completare l'acquisto\n\n");
            break;
          }
          else {resto = monete_inserite - array_bibite[bibita_scelta].prezzo;
          printf("Hai acquistato %s\nResto=%1.2f\n\n",array_bibite[bibita_scelta].nome,resto);
          break;}
          }
}
return 0;
}

2 Risposte

  • Re: [C] Esercizio gestione distributore automatico

    Prova mettere la funzione "trova_vendite" prima del main
  • Re: [C] Esercizio gestione distributore automatico

    TheFox ha scritto:


    Prova mettere la funzione "trova_vendite" prima del main
    No niente ho provato a rifarlo(il nuove codice si trova in alto ho modificato il primo post) e mi manca solo questa parte della traccia:

    Data una data e un prodotto calcolare la quantità venduta nel giorno di
    riferimento (usare un algoritmo incrementale ricorsivo)
    Implementazione l’algoritmo per la simulazione del distributore (e.g, struttura
    matriciale) ed effettuare almeno un test per ognuna delle opzioni richieste dall’utente.
Devi accedere o registrarti per scrivere nel forum
2 risposte