Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - distributore
Forum - C/C++ - distributore

Avatar
lallo12 (Normal User)
Newbie


Messaggi: 20
Iscritto: 20/02/2017

Segnala al moderatore
Postato alle 16:01
Sabato, 27/05/2017
Questo topic è stato chiuso dal moderatore

salve, ho da fare questo progetto ma non saprei come continuare a sviluppare l'ultimo punto potreste darmi dei consigli?

Si vuole simulare la gestione di un distributore automatico di carburante. Si suppone di avere 3 tipi di carburante identificati da un nome, da un codice identificativo, dal numero di litri presenti nella scorta e da un prezzo per litro. Il distributore è gestito per un intero mese (31 giorni) (e.g., organizzazione matriciale). Permettere all’utente di:
• Inserire dei soldi (5,10, 20, 50 euro)
• Scegliere il tipo carburante o Controllare se è possibile soddisfare la richiesta o Nel caso è possibile soddisfare la richiesta rifornire di carburante (aggiornando la scorta)
• Dato un giorno visualizzare il totale di carburante venduto
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5.  
  6. struct elenco{
  7. char nome[10];
  8. int codice;
  9. float prezzo;
  10. float rimanenza;
  11. };
  12. struct data{
  13. int giorno;
  14. int mese;
  15. int codice;
  16. };
  17. int main()
  18. {
  19.     typedef struct elenco Elenco;
  20.     Elenco prodotto[3] = {{"benzina",0,1.00,100},
  21.                             {"metano",1,1.30,100},
  22.                              {"gasolio",2,1.20,100}};
  23.  
  24.     typedef struct data Data;
  25.     Data array_data[31];
  26.  
  27.  
  28. printf(" -- LISTA PRODOTTI --\n\n");
  29. printf("NOME\t\tCODICE\tPREZZO\tRIMANENTI\n");
  30.     float banconote_inserite,resto;
  31.     int i,scelta;
  32.     int j=0;
  33.     for(i=0;i<3;i++){
  34.         printf("%-10s\t%4d\t%5.2f\t%5.2f\n",prodotto[i].nome, prodotto[i].codice, prodotto[i].prezzo, prodotto[i].rimanenza);
  35.     }
  36.     printf("\n");
  37.     printf("\n(4)TERMINA LA MACCHINA\n");
  38.     printf("\n(5)RESOCONTO\n");
  39.  
  40.     time_t t = time(NULL);
  41.     struct tm *time;
  42.     time = localtime(&t);
  43.     int giorno = time->tm_mday;
  44.     int mese = time->tm_mon;
  45.  
  46.     while(1){
  47.         printf("\n");
  48.         printf("-- SCELTA CARBURANTE --\n");
  49.         scanf("%d",&scelta);
  50.  
  51.         if(scelta==4){
  52.             printf("operazioni eseguite: %d", j);
  53.             break;
  54.         }
  55.         if(scelta==5){
  56.             int giorno_1, codice_1;
  57.             printf("il giorno richiesto:\n");
  58.             scanf("%d", &giorno_1);
  59.             printf("il mese richiesto:\n");
  60.             scanf("%d", &codice_1);
  61.             break;
  62.         }
  63.         if(scelta!=4 &&scelta!=5){
  64.             printf("HAI SCELTO DI PRELEVARE: %s",prodotto[scelta].nome);
  65.             printf("\n");
  66.             printf("Inserisci delle banconote:");
  67.             scanf("%f", &banconote_inserite);
  68.             printf("\n");
  69.         }
  70.         if(banconote_inserite==5.00 || banconote_inserite==10 || banconote_inserite==20 || banconote_inserite==50){
  71.             if(banconote_inserite<prodotto[scelta].prezzo){
  72.                 printf("NON HAI ABBASTANZA CREDITO\n");            }
  73.         }else if(banconote_inserite > prodotto[scelta].prezzo){
  74.         prodotto[scelta].rimanenza=prodotto[scelta].rimanenza-prodotto[scelta].prezzo*banconote_inserite;
  75.         printf("STAI PER RICEVERE IL CARBURANTE \n");
  76.         j++;
  77.         array_data[j].giorno=giorno;
  78.         array_data[j].mese=mese;
  79.         array_data[j].codice=scelta;
  80.         printf("rimanenza %5.2f", prodotto[scelta].rimanenza);
  81.         }
  82.         else{
  83.             printf("LA MACCHINA ACCETTA SOLO BANCONOTE DA 5,10,20,50");
  84.         }
  85.     }
  86. return 0;
  87. }



PM
Avatar
WildBlood (Normal User)
Rookie


Messaggi: 58
Iscritto: 17/02/2015

Segnala al moderatore
Postato alle 16:26
Sabato, 27/05/2017
Utilizza una funzione ricorsiva che prende in input il codice identificativo del caribarente e calcola il totale del carburante erogato.

PM
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 16:53
Sabato, 27/05/2017
mi sembra che qualcosa relativo al progetto molto simile ci sia in forum.. usa la funzione cerca.
Comunque Ti conviene dedicarti ad un progetto alla volta. Non voglio essere presuntuoso,
ma forse non hai le basi per dedicarti ad entrambi.

PM
Avatar
WildBlood (Normal User)
Rookie


Messaggi: 58
Iscritto: 17/02/2015

Segnala al moderatore
Postato alle 17:18
Sabato, 27/05/2017
Testo quotato

Postato originariamente da Mikelius:
mi sembra che qualcosa relativo al progetto molto simile ci sia in forum.. usa la funzione cerca.
Comunque Ti conviene dedicarti ad un progetto alla volta. Non voglio essere presuntuoso,
ma forse non hai le basi per dedicarti ad entrambi.




Purtroppo per l'esame che deve affrontare, sono necessarie sue progetti. Lo so perché l'ho fatto anche io.

PM
Avatar
AldoBaldo (Member)
Guru


Messaggi: 700
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:39
Sabato, 27/05/2017
Anch'io ricordo che in tempi molto recenti su questi schermi è comparso un esercizio ALMENO simile (se non identico). Se non è qui, son CERTO di averlo visto altrove, pari pari.

Edit: Non è questo?
http://www.pierotofy.it/pages/extras/forum/2/1060527-proge ...

Ultima modifica effettuata da AldoBaldo il 27/05/2017 alle 21:46


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 1:32
Domenica, 28/05/2017
Testo quotato

Postato originariamente da AldoBaldo:

Anch'io ricordo che in tempi molto recenti su questi schermi è comparso un esercizio ALMENO simile (se non identico). Se non è qui, son CERTO di averlo visto altrove, pari pari.

Edit: Non è questo?
http://www.pierotofy.it/pages/extras/forum/2/1060527-proge ...


stesso problema stesso utente.

PM
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 13:26
Domenica, 28/05/2017
Questo topic è in violazione di una o più norme del regolamento: http://www.pierotofy.it/pages/extras/forum/2/78115-leggere ...
    

Ultima modifica effettuata da lumo il 28/05/2017 alle 13:27
PM