Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma Smaltitore
Forum - C/C++ - Programma Smaltitore

Avatar
Bladex (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 20:15
Martedì, 06/07/2010
Mi date una mano con questo programma?... :hail::hail:
8-|
Devo simulare la gestione di uno smaltitore di rifiuti di 5 tipi di prodotti.
Ogni prodotto ha nome, codice e prezzo.In input si prende il budget iniziale..
Poi l'utente deve inserire un prodotto da smaltire e verificare se ci sono soldi a sufficienza per smaltire il prodotto.
Il programma deve verificare inoltre se è possibile inserire il prodotto scelto, dato che il massimo numero di prodotti per un singolo tipo è di 20.
Ed a fine giornata bisogna visualizzare un elenco dei prodotti riciclati per ogni categoria.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. int main ()
  3. {
  4.   int n,x,s=0,u=0,c=0,v=0,p=0,i=0;
  5.   float budget;
  6.  
  7.   struct rifiuti
  8.   {
  9.     char nome[15];
  10.     char codice[5];
  11.     float prezzo;
  12.    } secco={"Secco","01",30.0},
  13.      umido={"Umido","02",22.5},
  14.      carta={"Carta","03",18.5},
  15.      vetro={"Vetro","04",25.0},
  16.      plastica={"Plastica","05",35.0};
  17.  
  18. printf("Inserire il budget iniziale : ");
  19. scanf("%f",&budget);
  20.  
  21.  
  22. printf("Quanti prodotti intendi inserire nel corso della sessione di riciclo? : ");
  23. scanf("%d",&n);
  24.  
  25.  
  26. printf("Elenco dei prodotti che e' possibile riciclare : \n");
  27. printf(" %s ",secco.codice);
  28. printf("%s",secco.nome);
  29. printf(" %1.f\n",secco.prezzo);
  30. printf(" %s ",umido.codice);
  31. printf("%s",umido.nome);
  32. printf(" %1.f\n",umido.prezzo);
  33. printf(" %s ",carta.codice);
  34. printf("%s",carta.nome);
  35. printf(" %1.f\n",carta.prezzo);
  36. printf(" %s ",vetro.codice);
  37. printf("%s",vetro.nome);
  38. printf(" %1.f\n",vetro.prezzo);
  39. printf(" %s ",plastica.codice);
  40. printf("%s",plastica.nome);
  41. printf(" %1.f\n",plastica.prezzo);
  42.  
  43. for (i=1;i<=n;i++)
  44. {
  45.     printf("Selezionare il codice del prodotto da riciclare\n");
  46.     scanf("%d",&x);
  47.       switch (x){
  48.         case 1: do {
  49.         printf("Hai scelto di riciclare il secco, ora hai a disposizione %f\n",budget-secco.prezzo);
  50.         s++;
  51.         budget= budget-secco.prezzo;}
  52.         while (s<=20 || budget>secco.prezzo);
  53.         break;
  54.         case 2: do {
  55.         printf("Hai scelto di riciclare l'umido, ora hai a disposizione %f\n",budget-umido.prezzo);
  56.         u++;
  57.         budget= budget-umido.prezzo;}
  58.         while (u<=20 || budget>secco.prezzo);
  59.         break;
  60.         case 3: do {
  61.         printf("Hai scelto di riciclare la carta, ora hai a disposizione %f\n",budget-carta.prezzo);
  62.         c++;
  63.         budget= budget-carta.prezzo;}
  64.         while (c<=20 || budget>secco.prezzo);
  65.         break;
  66.         case 4: do{
  67.         printf("Hai scelto di riciclare il vetro, ora hai a disposizione %f\n",budget-vetro.prezzo);
  68.         v++;
  69.         budget= budget-vetro.prezzo;}
  70.         while (v<=20 || budget>secco.prezzo);
  71.         break;
  72.         case 5: do{
  73.         printf("Hai scelto di riciclare la plastica, ora hai a disposizione %f\n",budget-plastica.prezzo);
  74.         p++;
  75.         budget= budget-plastica.prezzo;}
  76.         while (p<=20 || budget>secco.prezzo);
  77.         break;
  78.        default: printf("Hai sbagliato l'inserimento, riprova");}
  79. }
  80.  
  81. printf("Sessione finita");
  82. }



Il do while nel case è sbagliato.. :yup:
Quando si seleziona un prodotto ripete il ciclo per 20 volte..
mentre io volevo che ripetesse le istruzioni nel caso in cui si seleziona quel prodotto..
Quella parte non riesco a capire come impostarla...
Ringrazio tutti anticipatamente ;)

Ultima modifica effettuata da Bladex il 06/07/2010 alle 20:36
PM Quote
Avatar
qualcuno (Ex-Member)
Rookie


Messaggi: 37
Iscritto: 30/06/2010

Segnala al moderatore
Postato alle 20:27
Martedì, 06/07/2010
Bladex: devi specificare gli errori che ti da il programma(comportameno anomalo, eventuali errori di compilazione, etc..). Non si capisce se il programma funziona oppure no, se hai riscontrato anomalie nel funzionamento(e in tal caso esplicitale direttamente fornendo più dettagli possibili), etc...
Inoltre ricordati di racchiudere il codice tra i tag code


Nothing is impossible; impossible itself says "I' m possible"...
Qualunque sia la risposta tu non ce l'hai. (Gregory House)
PM Quote
Avatar
Bladex (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/07/2010

Segnala al moderatore
Postato alle 20:41
Venerdì, 09/07/2010
Con quel do while volevo che ogni volta che si selezionava il prodotto ripeteva l'incremento del contatore finche non si arrivava a 20..mentre mandandolo in esecuzione lo ripete direttamente 20 volte..
Come potrei fare?...
Grazie.

PM Quote