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++ - progetto in c
Forum - C/C++ - progetto in c - Pagina 3

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
lallo12 (Normal User)
Newbie


Messaggi: 20
Iscritto: 20/02/2017

Segnala al moderatore
Postato alle 8:52
Martedì, 21/02/2017
sisi, questa parte poi che tu gentilmente mi hai indicato l avevo gia corretta da me
Codice sorgente - presumibilmente Plain Text

  1. //Scoretto
  2.  
  3.  
  4. 2.for (i = 0; i <3; i++) {
  5.  
  6.  
  7. 3.
  8.  
  9.  
  10. 4.printf("%-10s%d\t%5.2f\t%5.2f\n", array_carburante.nome, array_carburante.codice, array_carburante.prezzo, array_carburante.disponibilita );
  11.  
  12.  
  13. 5.}
  14.  
  15.  
  16. 6.
  17.  
  18.  
  19. 7.//Corretto
  20.  
  21.  
  22. 8.for (i = 0; i <3; i++) {
  23.  
  24.  
  25. 9.
  26.  
  27.  
  28. 10.printf("%-10s%d\t%5.2f\t%5.2f\n", array_carburante[i].nome ... );
  29.  
  30.  
  31. 11.}





cmq per ora mi da tutto come vorrei io e mi da anche la possibilità di prelevare nuovo carburante dopo quello gia preso soltanto che quando prendo due volte la benzina per esempio  la disponibilità non me la decrementa su quella gia decrementata ma su quella piena cioe 1000, e poi non so come fare per gestirlo per un intero mese e poi dato un giorno vedere il totale venduto

Ultima modifica effettuata da lallo12 il 21/02/2017 alle 8:54
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 12:46
Martedì, 21/02/2017
Testo quotato

Postato originariamente da lallo12:

cmq per ora mi da tutto come vorrei io e mi da anche la possibilità di prelevare nuovo carburante dopo quello gia preso soltanto che quando prendo due volte la benzina per esempio  la disponibilità non me la decrementa su quella gia decrementata ma su quella piena cioe 1000



Ho già risposto a questo punto. Controlla gli indici come scritto nel mio precedente post



Testo quotato

Postato originariamente da lallo12:
e poi non so come fare per gestirlo per un intero mese e poi dato un giorno vedere il totale venduto



Se devi gestirlo per un mese principalmente hai 2 strade  che puoi percorrere:
1 - Usi la time() per il giorno, ma hai bisogno di 1 mese reale per testare il programma
2 - Inserisci la data da input, in questo modo puoi simulare qualsiasi giorno.

Poi, ad esempio, potresti usare una variabile "contenitore" dove sommi tutte le richieste giornaliere

Codice sorgente - presumibilmente C/C++

  1. struct tot[]
  2. {
  3. giorno;
  4. Q.ta Metano;
  5. Q.ta Benzina;
  6. Q.ta Gasolio;
  7. }



in questo modo non è difficile avere la quantità di carburante erogata per un dato giorno

PM Quote
Avatar
lallo12 (Normal User)
Newbie


Messaggi: 20
Iscritto: 20/02/2017

Segnala al moderatore
Postato alle 16:27
Martedì, 21/02/2017
stavo pensando di inserire la data in input tramite scanf e poi usare la struct che mi hai dato tu...potrebbe andare bene, la data che vado ad inserire come faccio poi a dire che da quella data deve passare un mese??

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:01
Mercoledì, 22/02/2017
Testo quotato

Postato originariamente da lallo12:

stavo pensando di inserire la data in input tramite scanf e poi usare la struct che mi hai dato tu...potrebbe andare bene, la data che vado ad inserire come faccio poi a dire che da quella data deve passare un mese??



Spiega meglio questo punto

PM Quote
Avatar
lallo12 (Normal User)
Newbie


Messaggi: 20
Iscritto: 20/02/2017

Segnala al moderatore
Postato alle 14:14
Mercoledì, 22/02/2017
inserendo la data con una scanf, poi per far si che il distributore funzioni per un mese come faccio?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:28
Mercoledì, 22/02/2017
Cosa intendi per

Testo quotato

Postato originariamente da lallo12:
far si che il distributore funzioni per un mese come faccio?



Se riesci a fare un esempio, riusciresti pure ad avere la risposta da solo.

Ultima modifica effettuata da il 22/02/2017 alle 14:29
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 15:19
Mercoledì, 22/02/2017
In genere il sistema esprime una data come numero di secondi a partire da un punto di riferimento fissato arbitrariamente, dunque basta aggiungere a una certa data (espressa in secondi) 3600*24*30 secondi. 3600 sono i secondi un un'ora, 24 le ore in un giorno, 30 i giorni in un mese. Dunque, un mese corrisponde mediamente a 2592000 secondi.

Per effettuare una misurazione che tenga conto del fatto che i mesi possono avere 28, 29, 30 o 31 giorni si potrebbe fare...

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. time_t avanza_mese( time_t t ) {
  6.     struct tm *tm = localtime( &t ); // divide i componenti di data e ora
  7.     ++tm->tm_mon;                    // porta avanti la data d'un mese
  8.     return mktime( tm );             // la nuova ora, avanzata d'un mese
  9. }
  10.  
  11. void attendi_invio( void ) {
  12.     printf( "Premi \"invio\" per uscire " );
  13.     getchar();
  14. }
  15.  
  16. int main() {
  17.     time_t t = time( NULL );
  18.     printf( "Data e ora correnti:    %s", ctime(&t) );
  19.  
  20.     t = avanza_mese( t );
  21.     printf( "Data e ora tra un mese: %s\n", ctime(&t) );
  22.  
  23.     attendi_invio();
  24.     return 0;
  25. }



Non mancherebbero i problemini, però.

La funzione avanza_mese() riceve in ingresso una data e ora espressa come numero di secondi dalla data arbitraria della "notte dei tempi" secondo il C (mi sembra di ricordare che lo zero sia collocato nel 1970) e restituisce la stessa data e ora del mese successivo. La grana emerge se la data corrente è, per dire, il 31 marzo e si passa al 31 aprile, che non esiste... in quel caso, i giorni "in più" vengono comunque calcolati e la data "d'arrivo" finisce per essere il 1° maggio. Bah!

Ultima modifica effettuata da AldoBaldo il 22/02/2017 alle 15:21


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 Quote
Avatar
lallo12 (Normal User)
Newbie


Messaggi: 20
Iscritto: 20/02/2017

Segnala al moderatore
Postato alle 10:28
Giovedì, 23/02/2017
il mese deve essere di 31 giorni, non ho l esigenza che sia di 30 o 28.
e il ditributore deve essere gestito solo per 31 giorni

Ultima modifica effettuata da lallo12 il 23/02/2017 alle 10:31
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo