Oppure

Loading
25/06/11 18:15
Bladex
Salve raga :k:..seguo questo sito da un pò ma non ho mai postato nel forum perchè non ho ancora le conoscenze necessarie per aiutare qualcuno 8-|
Vi scrivo perchè devo consegnare a breve un programma che simuli una macchina di smaltimento rifiuti.
La macchina deve riciclare 5 tipi di prodotti, ognuno dei quali ha un nome (carta,vetro,ecc..), il codice ed il prezzo.L'utente imposta il budget iniziale ed a fine programma bisogna fare il resoconto dei prodotti riciclati.
Deve inoltre verificare che non si riciclino più di 20 prodotti per ogni tipo ed ad ogni riciclo bisogna verificare se è sufficiente il budget..
So che probabilmente per voi è alquanto "elementare" ma io sono ancora all'inizio..
L'ho svolto in questa maniera...e visto che lo devo consegnare volevo sapere da voi se è fatto bene in questo modo,se notate errori e se si poteva fare in modo alternativo o più efficiente di questo..insomma secondo voi l'ho fatto bene?:-|
Credo giri bene e rispetti tutte le condizioni ma non mi fido di me stesso :D quindi qualsiasi suggerimento è ben accetto!
 

#include <stdio.h>
int main ()
{
  int n,x,s=0,u=0,c=0,v=0,p=0,i=0;
  float budget;

  struct rifiuti
  {
    char nome[15];
    char codice[5];
    float prezzo;
   } secco={"Secco","01",30.0},
     umido={"Umido","02",23.0},
     carta={"Carta","03",19.0},
     vetro={"Vetro","04",25.0},
     plastica={"Plastica","05",35.0};

printf("Inserire il budget iniziale : ");
scanf("%f",&budget);


printf("Quanti prodotti intendi inserire nel corso della sessione di riciclo? : ");
scanf("%d",&n);


printf("Elenco dei prodotti che e' possibile riciclare : \n");
printf(" %s ",secco.codice);
printf("%s",secco.nome);
printf(" %1.f\n",secco.prezzo);
printf(" %s ",umido.codice);
printf("%s",umido.nome);
printf(" %1.f\n",umido.prezzo);
printf(" %s ",carta.codice);
printf("%s",carta.nome);
printf(" %1.f\n",carta.prezzo);
printf(" %s ",vetro.codice);
printf("%s",vetro.nome);
printf(" %1.f\n",vetro.prezzo);
printf(" %s ",plastica.codice);
printf("%s",plastica.nome);
printf(" %1.f\n",plastica.prezzo);

for (i=0;i=n;i++)
{
    printf("\nSelezionare il codice del prodotto da riciclare\n");
    scanf("%d",&x);
      switch (x){
        case 1:
                 if (s<20 && budget>=secco.prezzo)
                 {
                  printf("Hai scelto di riciclare il secco,");
                  budget= budget-secco.prezzo;
                  printf("ora hai a disposizione %f\n",budget);
                  s++;
                  printf("Sono stati inseriti %d prodotto/i di questo tipo\n",s);
                 }
                 else if (budget<secco.prezzo)
                       printf("Budget insufficiente per questo prodotto\n");
                 else if (s>=20)
                       printf("*** Hai inserito troppi prodotti di questo tipo (20) ***\npuoi inserire un altro tipo di prodotto.\n");
        break;
        case 2:
                 if (u<20 && budget>=umido.prezzo)
                 {
                  printf("Hai scelto di riciclare l'umido,");
                  budget= budget-umido.prezzo;
                  printf("ora hai a disposizione %f\n",budget);
                  u++;
                  printf("Sono stati inseriti %d prodotto/i di questo tipo\n",u);

                 }
                 else if (budget<umido.prezzo)
                       printf("Budget insufficiente per questo prodotto\n");
                 else if (u>=20)
                       printf("*** Hai inserito troppi prodotti di questo tipo (20) ***\npuoi inserire un altro tipo di prodotto.\n");
        break;
        case 3:
                 if (c<20 && budget>=carta.prezzo)
                 {
                  printf("Hai scelto di riciclare la carta,");
                  budget= budget-carta.prezzo;
                  printf("ora hai a disposizione %f\n",budget);
                  c++;
                  printf("Sono stati inseriti %d prodotto/i di questo tipo\n",c);

                 }
                 else if (budget<carta.prezzo)
                       printf("Budget insufficiente per questo prodotto\n");
                 else if (c>=20)
                       printf("*** Hai inserito troppi prodotti di questo tipo (20) ***\npuoi inserire un altro tipo di prodotto.\n");
        break;
        case 4:
                 if (v<20 && budget>=vetro.prezzo)
                 {
                  printf("Hai scelto di riciclare il vetro,");
                  budget= budget-vetro.prezzo;
                  printf("ora hai a disposizione %f\n",budget);
                  v++;
                  printf("Sono stati inseriti %d prodotto/i di questo tipo\n",v);

                 }
                 else if (budget<vetro.prezzo)
                       printf("Budget insufficiente per questo prodotto\n");
                 else if (v>=20)
                       printf("*** Hai inserito troppi prodotti di questo tipo (20) ***\npuoi inserire un altro tipo di prodotto.\n");
        break;
        case 5:
                 if (p<20 && budget>=plastica.prezzo)
                 {
                  printf("Hai scelto di riciclare la plastica,");
                  budget= budget-plastica.prezzo;
                  printf("ora hai a disposizione %f\n",budget);
                  p++;
                  printf("Sono stati inseriti %d prodotto/i di questo tipo\n",p);

                 }
                 else if (budget<plastica.prezzo)
                       printf("Budget insufficiente per questo prodotto\n");
                 else if (p>=20)
                       printf("*** Hai inserito troppi prodotti di questo tipo (20) ***\npuoi inserire un altro tipo di prodotto.\n");
        break;
       default: printf("Hai sbagliato l'inserimento, riprova\n");}


}



printf("\n\n\n*** Sessione finita!..*** \n\nDei %d prodotti da riciclare sono stati riciclati:\n %d Secco, %d Umido, %d Carta, %d Vetro, %d Plastica\n\n",n,s,u,c,v,p);

}





aaa
25/06/11 19:17
comina8
Nel for la condizione è sbagliata:

...
for(i=0;i[b]<[/b]n;i++)
...


Per il resto il programma dovrebbe funzionare, se non hai ancora fatto le funzioni è difficile migliorarlo più di così...
aaa
25/06/11 19:29
Ultimo

Non hai usato i commenti al codice, dovresti abituarti a commentare di più
il codice non solo per gli altri ma anche per te stesso, commentare il codice
aiuta molto. :k:
If ok Then GOTO Avanza else GOTO Inizia