Calcolo delle vendite

di il
8 risposte

Calcolo delle vendite

Salve,
sto svolgendo un esecizio per il calcolo delle vendite ma la stampa finale è questa:
https://prnt.sc/h5tzn

Il codice sorgente è questo:

// ESERCIZIO 4.19: calcolo delle vendite.
// Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
//  Numero del prodotto 1 - Prezzo al dettaglio $2,98
//  Numero del prodotto 2 - Prezzo al dettaglio $4,50
//  Numero del prodotto 3 - Prezzo al dettaglio $9,98
//  Numero del prodotto 4 - Prezzo al dettaglio $4,49
//  Numero del prodotto 5 - Prezzo al dettaglio $6,87
// Scrivete un programma che legga una serie di coppie di numeri come segue:
// a)  Numero del prodotto;
// b)  Quantità venduta in un giorno;
// Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.

// Codice sorgente:
#include <stdio.h>
int main (void) {
    puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
    int numProdotto;
    int prezzoDett;
    int incassoLun = 0;
    int incassoMar = 0;
    int incassoMer = 0;
    int incassoGio = 0;
    int incassoVen = 0;
    int incassoSab = 0;
    int incassoDom = 0;  
    int incassoLunCounter = 0;
    int incassoMarCounter = 0;
    int incassoMerCounter = 0;
    int incassoGioCounter = 0;
    int incassoVenCounter = 0;
    int incassoSabCounter = 0;
    int incassoDomCounter = 0;       
    printf( "Inserire il codice del prodotto:  " );
    scanf( "%d", &numProdotto );
    while ( numProdotto != 999 ) {
        int quantLun;
        printf( "Inserire la quantità venduta Lunedi:  " );
        scanf( "%d", &quantLun );
        int quantMar;
        printf( "Inserire la quantità venduta Martedì:  " );
        scanf( "%d", &quantMar );
        int quantMer;
        printf( "Inserire la quantità venduta Mercoledì:  " );
        scanf( "%d", &quantMer );
        int quantGio;
        printf( "Inserire la quantità venduta Giovedì:  " );
        scanf( "%d", &quantGio );
        int quantVen;
        printf( "Inserire la quantità venduta Venerdì:  " );
        scanf( "%d", &quantVen );
        int quantSab;
        printf( "Inserire la quantità venduta Sabato:  " );
        scanf( "%d", &quantSab );        
        int quantDom;
        printf( "Inserire la quantità venduta Domenica:  " );
        scanf( "%d", &quantDom );
        switch ( numProdotto ) {
            case '1':
                prezzoDett = 2.98;
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett; 
                break;
            case '2':
                prezzoDett = 4.50;
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett;          
                break;
            case '3':
                prezzoDett = 9.98;
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett;          
                break;
            case '4':
                prezzoDett = 4.49;
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett;          
                break;
            case '5':
                prezzoDett = 6.87;
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett;       
                break;                
        }
        incassoLunCounter = incassoLunCounter + incassoLun;
        incassoMarCounter = incassoMarCounter + incassoMar;
        incassoMerCounter = incassoMerCounter + incassoMer;
        incassoGioCounter = incassoGioCounter + incassoGio;
        incassoVenCounter = incassoVenCounter + incassoVen;
        incassoSabCounter = incassoSabCounter + incassoSab;
        incassoDomCounter = incassoDomCounter + incassoDom;        
        printf( "\nInserire il codice del prodotto:  " );
        scanf( "%d", &numProdotto );        
    }    
    printf( "\n%8s%9s%10s%9s%9s%8s%10s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
    printf( "\n\n%8d%9d%10d%9d%9d%8d%10d", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
}
Ovviamente il risultato non dovrebbe essere sempre 0!! ... Grazie

8 Risposte

  • Re: Calcolo delle vendite

    Giusto per curiosità, ma ritieni che i prezzi abbiano una virgola, oppure no?
    potresti paradossalmente rispondere "oppure no", e sarebbe anche assai furbo, ma in tal caso dovresti adottare una strategia con divisione finale.

    insomma, inizierei a chiedermi se il tipo delle variabili che usi è coerente
  • Re: Calcolo delle vendite

    Già, vero!!!...che stupido...))
    forse funziona se correggo!!....
  • Re: Calcolo delle vendite

    +m2+ ha scritto:


    Giusto per curiosità, ma ritieni che i prezzi abbiano una virgola, oppure no?
    potresti paradossalmente rispondere "oppure no", e sarebbe anche assai furbo, ma in tal caso dovresti adottare una strategia con divisione finale.

    insomma, inizierei a chiedermi se il tipo delle variabili che usi è coerente
    Ho corretto gli int con i float ma non ci siamo lo stesso....
    http://prntscr.com/h5uac
    
    // ESERCIZIO 4.19: calcolo delle vendite.
    // Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
    //  Numero del prodotto 1 - Prezzo al dettaglio $2,98
    //  Numero del prodotto 2 - Prezzo al dettaglio $4,50
    //  Numero del prodotto 3 - Prezzo al dettaglio $9,98
    //  Numero del prodotto 4 - Prezzo al dettaglio $4,49
    //  Numero del prodotto 5 - Prezzo al dettaglio $6,87
    // Scrivete un programma che legga una serie di coppie di numeri come segue:
    // a)  Numero del prodotto;
    // b)  Quantità venduta in un giorno;
    // Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.
    
    // Codice sorgente:
    #include <stdio.h>
    int main (void) {
        puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
        int numProdotto;
        float prezzoDett;
        float incassoLun = 0;
        float incassoMar = 0;
        float incassoMer = 0;
        float incassoGio = 0;
        float incassoVen = 0;
        float incassoSab = 0;
        float incassoDom = 0;  
        float incassoLunCounter = 0;
        float incassoMarCounter = 0;
        float incassoMerCounter = 0;
        float incassoGioCounter = 0;
        float incassoVenCounter = 0;
        float incassoSabCounter = 0;
        float incassoDomCounter = 0;       
        printf( "Inserire il codice del prodotto:  " );
        scanf( "%f", &numProdotto );
        while ( numProdotto != 999 ) {
            float quantLun;
            printf( "Inserire la quantità venduta Lunedi:  " );
            scanf( "%f", &quantLun );
            float quantMar;
            printf( "Inserire la quantità venduta Martedì:  " );
            scanf( "%f", &quantMar );
            float quantMer;
            printf( "Inserire la quantità venduta Mercoledì:  " );
            scanf( "%f", &quantMer );
            float quantGio;
            printf( "Inserire la quantità venduta Giovedì:  " );
            scanf( "%f", &quantGio );
            float quantVen;
            printf( "Inserire la quantità venduta Venerdì:  " );
            scanf( "%f", &quantVen );
            float quantSab;
            printf( "Inserire la quantità venduta Sabato:  " );
            scanf( "%f", &quantSab );        
            float quantDom;
            printf( "Inserire la quantità venduta Domenica:  " );
            scanf( "%f", &quantDom );
            switch ( numProdotto ) {
                case '1':
                    prezzoDett = 2.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett; 
                    break;
                case '2':
                    prezzoDett = 4.50;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;          
                    break;
                case '3':
                    prezzoDett = 9.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;          
                    break;
                case '4':
                    prezzoDett = 4.49;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;          
                    break;
                case '5':
                    prezzoDett = 6.87;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;       
                    break;                
            }
            incassoLunCounter = incassoLunCounter + incassoLun;
            incassoMarCounter = incassoMarCounter + incassoMar;
            incassoMerCounter = incassoMerCounter + incassoMer;
            incassoGioCounter = incassoGioCounter + incassoGio;
            incassoVenCounter = incassoVenCounter + incassoVen;
            incassoSabCounter = incassoSabCounter + incassoSab;
            incassoDomCounter = incassoDomCounter + incassoDom;        
            printf( "\nInserire il codice del prodotto:  " );
            scanf( "%d", &numProdotto );        
        }    
        printf( "\n%8s%9s%10s%9s%9s%8s%10s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
        printf( "\n\n%8.3f%9.3f%10.3f%9.3f%9.3f%8.3f%10.3f", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
    }
    
  • Re: Calcolo delle vendite

    Prova così...
    
    int esercizio()
    {
        // ESERCIZIO 4.19: calcolo delle vendite.
        // Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
        //  Numero del prodotto 1 - Prezzo al dettaglio $2,98
        //  Numero del prodotto 2 - Prezzo al dettaglio $4,50
        //  Numero del prodotto 3 - Prezzo al dettaglio $9,98
        //  Numero del prodotto 4 - Prezzo al dettaglio $4,49
        //  Numero del prodotto 5 - Prezzo al dettaglio $6,87
        // Scrivete un programma che legga una serie di coppie di numeri come segue:
        // a)  Numero del prodotto;
        // b)  Quantità venduta in un giorno;
        // Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.
        
        // Codice sorgente:
        int numProdotto;
        float prezzoDett;
        float incassoLun = 0;
        float incassoMar = 0;
        float incassoMer = 0;
        float incassoGio = 0;
        float incassoVen = 0;
        float incassoSab = 0;
        float incassoDom = 0;
        float incassoLunCounter = 0;
        float incassoMarCounter = 0;
        float incassoMerCounter = 0;
        float incassoGioCounter = 0;
        float incassoVenCounter = 0;
        float incassoSabCounter = 0;
        float incassoDomCounter = 0;
        printf( "Inserire il codice del prodotto:  " );
        scanf( "%d", &numProdotto );//        scanf( "%f", &numProdotto ); %f ma l'hai dichiarata come int;
        if ((numProdotto >0) && (numProdotto <6))
        {
            float quantLun;
            printf( "Inserire la quantità venduta Lunedi:  " );
            scanf( "%f", &quantLun );
            float quantMar;
            printf( "Inserire la quantità venduta Martedì:  " );
            scanf( "%f", &quantMar );
            float quantMer;
            printf( "Inserire la quantità venduta Mercoledì:  " );
            scanf( "%f", &quantMer );
            float quantGio;
            printf( "Inserire la quantità venduta Giovedì:  " );
            scanf( "%f", &quantGio );
            float quantVen;
            printf( "Inserire la quantità venduta Venerdì:  " );
            scanf( "%f", &quantVen );
            float quantSab;
            printf( "Inserire la quantità venduta Sabato:  " );
            scanf( "%f", &quantSab );
            float quantDom;
            printf( "Inserire la quantità venduta Domenica:  " );
            scanf( "%f", &quantDom );
            switch ( numProdotto ) {
                case 1://'1' cosi' significa char nn so se convertiva corretto per essere sicuro ho messo un int
                    prezzoDett = 2.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 2://'2' come sopra
                    prezzoDett = 4.50;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 3://'3' come sopra
                    prezzoDett = 9.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 4://'4' come sopra
                    prezzoDett = 4.49;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 5://'5' come sopra
                    prezzoDett = 6.87;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
            }
            incassoLunCounter = incassoLunCounter + incassoLun;
            incassoMarCounter = incassoMarCounter + incassoMar;
            incassoMerCounter = incassoMerCounter + incassoMer;
            incassoGioCounter = incassoGioCounter + incassoGio;
            incassoVenCounter = incassoVenCounter + incassoVen;
            incassoSabCounter = incassoSabCounter + incassoSab;
            incassoDomCounter = incassoDomCounter + incassoDom;
            printf( "\nInserire il codice del prodotto:  " );
            scanf( "%d", &numProdotto );
            
            printf( "\n%8s%9s%10s%9s%9s%8s%10s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
            printf( "\n\n%8.3f%9.3f%10.3f%9.3f%9.3f%8.3f%10.3f\n", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
        }else{
            printf("devi inserire un numero compreso fra 1 e 5\n");
            return -1;
        }
        return 0;
    }
    
    
    int main(int argc, char *argv[])
    {
        puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
        while (esercizio()<0)
        {
            continue;
        }
        return 0;
    }
    
    andrebbe ancora migliorato cmq.....
  • Re: Calcolo delle vendite

    Ispanicuz ha scritto:


    Prova così...
    
    int esercizio()
    {
        // ESERCIZIO 4.19: calcolo delle vendite.
        // Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
        //  Numero del prodotto 1 - Prezzo al dettaglio $2,98
        //  Numero del prodotto 2 - Prezzo al dettaglio $4,50
        //  Numero del prodotto 3 - Prezzo al dettaglio $9,98
        //  Numero del prodotto 4 - Prezzo al dettaglio $4,49
        //  Numero del prodotto 5 - Prezzo al dettaglio $6,87
        // Scrivete un programma che legga una serie di coppie di numeri come segue:
        // a)  Numero del prodotto;
        // b)  Quantità venduta in un giorno;
        // Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.
        
        // Codice sorgente:
        int numProdotto;
        float prezzoDett;
        float incassoLun = 0;
        float incassoMar = 0;
        float incassoMer = 0;
        float incassoGio = 0;
        float incassoVen = 0;
        float incassoSab = 0;
        float incassoDom = 0;
        float incassoLunCounter = 0;
        float incassoMarCounter = 0;
        float incassoMerCounter = 0;
        float incassoGioCounter = 0;
        float incassoVenCounter = 0;
        float incassoSabCounter = 0;
        float incassoDomCounter = 0;
        printf( "Inserire il codice del prodotto:  " );
        scanf( "%d", &numProdotto );//        scanf( "%f", &numProdotto ); %f ma l'hai dichiarata come int;
        if ((numProdotto >0) && (numProdotto <6))
        {
            float quantLun;
            printf( "Inserire la quantità venduta Lunedi:  " );
            scanf( "%f", &quantLun );
            float quantMar;
            printf( "Inserire la quantità venduta Martedì:  " );
            scanf( "%f", &quantMar );
            float quantMer;
            printf( "Inserire la quantità venduta Mercoledì:  " );
            scanf( "%f", &quantMer );
            float quantGio;
            printf( "Inserire la quantità venduta Giovedì:  " );
            scanf( "%f", &quantGio );
            float quantVen;
            printf( "Inserire la quantità venduta Venerdì:  " );
            scanf( "%f", &quantVen );
            float quantSab;
            printf( "Inserire la quantità venduta Sabato:  " );
            scanf( "%f", &quantSab );
            float quantDom;
            printf( "Inserire la quantità venduta Domenica:  " );
            scanf( "%f", &quantDom );
            switch ( numProdotto ) {
                case 1://'1' cosi' significa char nn so se convertiva corretto per essere sicuro ho messo un int
                    prezzoDett = 2.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 2://'2' come sopra
                    prezzoDett = 4.50;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 3://'3' come sopra
                    prezzoDett = 9.98;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 4://'4' come sopra
                    prezzoDett = 4.49;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
                case 5://'5' come sopra
                    prezzoDett = 6.87;
                    incassoLun = quantLun * prezzoDett;
                    incassoMar = quantMar * prezzoDett;
                    incassoMer = quantMer * prezzoDett;
                    incassoGio = quantGio * prezzoDett;
                    incassoVen = quantVen * prezzoDett;
                    incassoSab = quantSab * prezzoDett;
                    incassoDom = quantDom * prezzoDett;
                    break;
            }
            incassoLunCounter = incassoLunCounter + incassoLun;
            incassoMarCounter = incassoMarCounter + incassoMar;
            incassoMerCounter = incassoMerCounter + incassoMer;
            incassoGioCounter = incassoGioCounter + incassoGio;
            incassoVenCounter = incassoVenCounter + incassoVen;
            incassoSabCounter = incassoSabCounter + incassoSab;
            incassoDomCounter = incassoDomCounter + incassoDom;
            printf( "\nInserire il codice del prodotto:  " );
            scanf( "%d", &numProdotto );
            
            printf( "\n%8s%9s%10s%9s%9s%8s%10s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
            printf( "\n\n%8.3f%9.3f%10.3f%9.3f%9.3f%8.3f%10.3f\n", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
        }else{
            printf("devi inserire un numero compreso fra 1 e 5\n");
            return -1;
        }
        return 0;
    }
    
    
    int main(int argc, char *argv[])
    {
        puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
        while (esercizio()<0)
        {
            continue;
        }
        return 0;
    }
    
    andrebbe ancora migliorato cmq.....
    Grazie alla tua correzione sono riuscito a capire l'errore nel CASE dello SWITCH cioè case 1: e non case '1': .... così i valori vengono ma mi resta il problema del caso default su come inserirlo perchè come si vede dal printscreen il prodotto 10 non esiste....
    http://prntscr.com/h6h7s
    
    // ESERCIZIO 4.19: calcolo delle vendite.
    // Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
    //  Numero del prodotto 1 - Prezzo al dettaglio $2,98
    //  Numero del prodotto 2 - Prezzo al dettaglio $4,50
    //  Numero del prodotto 3 - Prezzo al dettaglio $9,98
    //  Numero del prodotto 4 - Prezzo al dettaglio $4,49
    //  Numero del prodotto 5 - Prezzo al dettaglio $6,87
    // Scrivete un programma che legga una serie di coppie di numeri come segue:
    // a)  Numero del prodotto;
    // b)  Quantità venduta in un giorno;
    // Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.
    
    // Codice sorgente:
    #include <stdio.h>
    int main (void) {
        puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
        int numProdotto;
        float prezzoDett;
        float incassoLun = 0;
        float incassoMar = 0;
        float incassoMer = 0;
        float incassoGio = 0;
        float incassoVen = 0;
        float incassoSab = 0;
        float incassoDom = 0;  
        float incassoLunCounter = 0;
        float incassoMarCounter = 0;
        float incassoMerCounter = 0;
        float incassoGioCounter = 0;
        float incassoVenCounter = 0;
        float incassoSabCounter = 0;
        float incassoDomCounter = 0;       
        printf( "Inserire il codice del prodotto (999 per terminare):  " );
        scanf( "%d", &numProdotto );
        while ( numProdotto != 999 ) {
            switch ( numProdotto ) {
                case 1:
                    prezzoDett = 2.98;
                    break;
                case 2:
                    prezzoDett = 4.50;
                    break;
                case 3:
                    prezzoDett = 9.98;
                case 4:
                    prezzoDett = 4.49;
                    break;
                case 5:
                    prezzoDett = 6.87;
                    break;   
            }
            float quantLun;
            printf( "Inserire la quantità venduta Lunedi:  " );
            scanf( "%f", &quantLun );
            float quantMar;
            printf( "Inserire la quantità venduta Martedì:  " );
            scanf( "%f", &quantMar );
            float quantMer;
            printf( "Inserire la quantità venduta Mercoledì:  " );
            scanf( "%f", &quantMer );
            float quantGio;
            printf( "Inserire la quantità venduta Giovedì:  " );
            scanf( "%f", &quantGio );
            float quantVen;
            printf( "Inserire la quantità venduta Venerdì:  " );
            scanf( "%f", &quantVen );
            float quantSab;
            printf( "Inserire la quantità venduta Sabato:  " );
            scanf( "%f", &quantSab );        
            float quantDom;
            printf( "Inserire la quantità venduta Domenica:  " );
            scanf( "%f", &quantDom );        
            incassoLun = quantLun * prezzoDett;
            incassoMar = quantMar * prezzoDett;
            incassoMer = quantMer * prezzoDett;
            incassoGio = quantGio * prezzoDett;
            incassoVen = quantVen * prezzoDett;
            incassoSab = quantSab * prezzoDett;
            incassoDom = quantDom * prezzoDett;         
            incassoLunCounter = incassoLunCounter + incassoLun;
            incassoMarCounter = incassoMarCounter + incassoMar;
            incassoMerCounter = incassoMerCounter + incassoMer;
            incassoGioCounter = incassoGioCounter + incassoGio;
            incassoVenCounter = incassoVenCounter + incassoVen;
            incassoSabCounter = incassoSabCounter + incassoSab;
            incassoDomCounter = incassoDomCounter + incassoDom; 
            printf( "\nInserire il codice del prodotto:  " );
            scanf( "%d", &numProdotto );          
        }        
        printf( "\n%10s%11s%13s%11s%11s%10s%12s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
        printf( "\n\n%10.3f%11.3f%13.3f%11.3f%11.3f%10.3f%12.3f", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
    }
    /*
    
                     default:  
                    puts( "I codici-prodotto sono da 1 a 5. Re-inserire il codice del prodotto (999 per terminare):  " );
                    scanf( "%d", &numProdotto );  
                    break;   
    
    */
    
  • Re: Calcolo delle vendite

    Ho corretto così:
    
    // ESERCIZIO 4.19: calcolo delle vendite.
    // Un rivenditore on-line vende 5 differenti prodotti i cui prezzi al dettaglio sono mostrati nella seguente tabella:
    //  Numero del prodotto 1 - Prezzo al dettaglio $2,98
    //  Numero del prodotto 2 - Prezzo al dettaglio $4,50
    //  Numero del prodotto 3 - Prezzo al dettaglio $9,98
    //  Numero del prodotto 4 - Prezzo al dettaglio $4,49
    //  Numero del prodotto 5 - Prezzo al dettaglio $6,87
    // Scrivete un programma che legga una serie di coppie di numeri come segue:
    // a)  Numero del prodotto;
    // b)  Quantità venduta in un giorno;
    // Il vostro programma deve utilizzare un'istruzione SWITCH per permettervi di determinare il prezzo al dettaglio per ogni prodotto. Inoltre deve calcolare e stampare il valore al dettaglio totale di tutti i prodotti venduti nella settimana.
    
    // Codice sorgente:
    #include <stdio.h>
    int main (void) {
        puts( "Questo è un programma per il calcolo e la stampa dell'incasso settimanale per i 5 differenti codici-prodotto: 1, 2, 3, 4 e 5.\n" );
        int numProdotto;
        float prezzoDett;
        float incassoLun = 0;
        float incassoMar = 0;
        float incassoMer = 0;
        float incassoGio = 0;
        float incassoVen = 0;
        float incassoSab = 0;
        float incassoDom = 0;  
        float incassoLunCounter = 0;
        float incassoMarCounter = 0;
        float incassoMerCounter = 0;
        float incassoGioCounter = 0;
        float incassoVenCounter = 0;
        float incassoSabCounter = 0;
        float incassoDomCounter = 0;       
        printf( "Inserire il codice del prodotto (999 per terminare):  " );
        scanf( "%d", &numProdotto );
        while ( numProdotto != 999 ) {
            switch ( numProdotto ) {
                case 1:
                    prezzoDett = 2.98;
                    break;
                case 2:
                    prezzoDett = 4.50;
                    break;
                case 3:
                    prezzoDett = 9.98;
                case 4:
                    prezzoDett = 4.49;
                    break;
                case 5:
                    prezzoDett = 6.87;
                    break;   
                default:  
                    printf( "\nI codici-prodotto sono da 1 a 5. Re-inserire il codice del prodotto (999 per terminare):  " );
                    scanf( "%d", &numProdotto );  
                    break;                   
            }
            if ( numProdotto <= 5 ) {
                float quantLun;
                printf( "\nInserire la quantità venduta Lunedi:  " );
                scanf( "%f", &quantLun );
                float quantMar;
                printf( "Inserire la quantità venduta Martedì:  " );
                scanf( "%f", &quantMar );
                float quantMer;
                printf( "Inserire la quantità venduta Mercoledì:  " );
                scanf( "%f", &quantMer );
                float quantGio;
                printf( "Inserire la quantità venduta Giovedì:  " );
                scanf( "%f", &quantGio );
                float quantVen;
                printf( "Inserire la quantità venduta Venerdì:  " );
                scanf( "%f", &quantVen );
                float quantSab;
                printf( "Inserire la quantità venduta Sabato:  " );
                scanf( "%f", &quantSab );        
                float quantDom;
                printf( "Inserire la quantità venduta Domenica:  " );
                scanf( "%f", &quantDom );        
                incassoLun = quantLun * prezzoDett;
                incassoMar = quantMar * prezzoDett;
                incassoMer = quantMer * prezzoDett;
                incassoGio = quantGio * prezzoDett;
                incassoVen = quantVen * prezzoDett;
                incassoSab = quantSab * prezzoDett;
                incassoDom = quantDom * prezzoDett;         
                incassoLunCounter = incassoLunCounter + incassoLun;
                incassoMarCounter = incassoMarCounter + incassoMar;
                incassoMerCounter = incassoMerCounter + incassoMer;
                incassoGioCounter = incassoGioCounter + incassoGio;
                incassoVenCounter = incassoVenCounter + incassoVen;
                incassoSabCounter = incassoSabCounter + incassoSab;
                incassoDomCounter = incassoDomCounter + incassoDom; 
                printf( "\nInserire il codice del prodotto:  " );
                scanf( "%d", &numProdotto );  
            } else { 
                  printf( "\nI codici-prodotto sono da 1 a 5. Re-inserire il codice del prodotto (999 per terminare):  " );
                  scanf( "%d", &numProdotto ); 
            }
        }        
        printf( "\n%-10s%-11s%-13s%-11s%-11s%-10s%-12s", "LUNEDI", "MARTEDI", "MERCOLEDI", "GIOVEDI", "VENERDI", "SABATO", "DOMENICA" );
        printf( "\n\n%-10.3f%-11.3f%-13.3f%-11.3f%-11.3f%-10.3f%-12.3f", incassoLunCounter, incassoMarCounter, incassoMerCounter, incassoGioCounter, incassoVenCounter, incassoSabCounter, incassoDomCounter );
    }
    
    
    http://prntscr.com/h6hc0

    L'unico bug è nella chiusura del programma nel caso l'utente inserisca un codice prodotto superiore a 5 e quando gli viene chiesto di inserire di nuovo il codice e l'utente decide di terminare, c'è bisogno di un doppio 999, cioè la sentinella... Qualcuno sa come ovviare? Grazie, )
    Anche se magari potrebbe sbagliarsi di nuovo e decidere di continuare allora va bene... http://prntscr.com/h6he0
  • Re: Calcolo delle vendite

    È previsto l'utilizzo di strutture dati quali array (o vettori che dir si voglia)?
  • Re: Calcolo delle vendite

    +m2+ ha scritto:


    è previsto l'utilizzo di strutture dati quali array (o vettori che dir si voglia)?
    no...
Devi accedere o registrarti per scrivere nel forum
8 risposte