Programma c....aiuto

di il
58 risposte

58 Risposte - Pagina 4

  • Re: Programma c....aiuto

    Avevo fatto due for.....ecco
  • Re: Programma c....aiuto

    Ho eseguito il programma e la for viene fatta due volte.
  • Re: Programma c....aiuto

    Si.....anche se non ho capito perché raddoppia...solo perché ho messo due for?eppure la for serve solo per scorrere l'array
  • Re: Programma c....aiuto

    Sai come funziona una for?

    Ma di quale array parli?

    Hai compreso a quale for faccio riferimento?
  • Re: Programma c....aiuto

    Serve per scorrere l'array.....
  • Re: Programma c....aiuto

    Ma di quale array parli?

    Hai compreso a quale for faccio riferimento?
  • Re: Programma c....aiuto

    Ah a saldopunti? comunque sia a saldo punti che a contapunti potevo evitare di mettere il for giusto?
  • Re: Programma c....aiuto

    Non ci capiamo ...

    Io non so perché hai messo la for ... ti dico soltanto che la causa del saldo sbagliato è quella for.
    Quindi devi essere tu a correggere o modificare il programma (togliere la for, fare qualsiasi altra cosa) perché il tuo programma faccia quello che solo tu sai.

    Ok?

    Ora pausa ...
  • Re: Programma c....aiuto

    Si infatti in saldopunti l'ho levata la for.....ora la tolgo anche in contapunti
  • Re: Programma c....aiuto

    Questo thread è andato anche troppo oltre ... non si può discutere a tempo indefinito ...

    In un forum si affronta un problema e uno solo per thread.
  • Re: Programma c....aiuto

    Hai ragione......ora vado a dormire...ci sentiamo domani che devo chiederti un paio di ultime cose ok?
  • Re: Programma c....aiuto

    Altro problema nella funzione visualizzazionefidelitycards.....non viene stampato il saldopunti...perchè?
    #include <stdio.h>
    #include <stdlib.h>
    #define MAXCHAR 10
    void mainmenu();
    void creazionefidelitycard(int *numerofidelitycards);
    void nuovoacquisto(int numerofidelitycards);
    int contapunti (int importo_nuovoacquisto,int numerofidelitycards);
    int saldopunti(int importo_nuovoacquisto,int numerofidelitycards);
    void utilizzopunti(int importo_nuovoacquisto,int numerofidelitycards);
    void visualizzazionefidelitycards(int importo_nuovoacquisto,int numerofidelitycards);
    //void visualizzazioneestrattopunti(int numerofidelitycards);
    
    
    
    struct fidelity_card{
    int id;
    char nome[MAXCHAR];
    char cognome[MAXCHAR];
    int data_nascita;
    }fidelitycards[10];
    
    
    
    
    
    int main()
    {
        mainmenu();
        return 0;
    }
    
    void mainmenu(){
    int numerofidelitycards=1;
    int importo_nuovoacquisto;
    int azione;
    do {
            printf("Gestione fidelity card \n\n");
            printf("1 - Creazione di una nuova fidelity card\n");
            printf("2 - Nuovo acquisto\n");
            printf("3 - Utilizzo punti\n");
            printf("4 - Visualizza Fidelity card\n");
            printf("5 - Visualizzazione estratto punti\n");
            printf("0 - Esci\n");
            printf("Inserisci la scelta -> ");
            scanf("%d", &azione);
    
            //Controllo scelta
            switch(azione) {
            case 0:
                printf("Arrivederci!");
                break;
            case 1:
                system("cls");
                creazionefidelitycard(&numerofidelitycards);
                break;
            case 2:
                system("cls");
                nuovoacquisto(numerofidelitycards);
                break;
            case 3:
                system("cls");
                utilizzopunti(importo_nuovoacquisto,numerofidelitycards);
                break;
            case 4:
                system("cls");
                 visualizzazionefidelitycards(importo_nuovoacquisto,numerofidelitycards);
                break;
            /*case 5:
                system("cls");
                visualizzazioneestrattopunti(numerofidelitycards);
                break;*/
            default:
                printf("Azione non valida");
            }
        } while (azione != 0);
    
    
    
    }
    
    
    void creazionefidelitycard(int *numerofidelitycards){
    
    //int *numerofidelitycards=1;
    fflush(stdin);
    
    printf("crea nuova fidelity card\n");
    fidelitycards[*numerofidelitycards].id=*numerofidelitycards;
    printf("inserisci cognome max %d caratteri \n",MAXCHAR);
    gets(fidelitycards[*numerofidelitycards].cognome);
    printf("inserisci nome max %d caratteri \n",MAXCHAR);
    gets(fidelitycards[*numerofidelitycards].nome);
    printf("inserisci data di nascita");
    scanf("%d",&fidelitycards[*numerofidelitycards].data_nascita);
    
    
    
    printf("\nFidelity card creata correttamente!!\n\n");
    printf("CODICE FIDELITY CARD NUMERO %d \n", fidelitycards[*numerofidelitycards].id);
    
    
            *numerofidelitycards += 1;
            system("PAUSE");
            system("cls");
    
    
    }
    
    void nuovoacquisto(int numerofidelitycards){
        int id;
        int i;
        char azione;
        char data_nuovo_acquisto[MAXCHAR];
        int importo_nuovoacquisto;
    
                          // fflush(stdin);
    
    
    
               printf("inserire codice fidelity card ");
    
               scanf("%d",&id);
    
    
    
    
                    for(i = 1; i < numerofidelitycards; i++) {
                        if(fidelitycards[i].id==id) {
                            printf("%s\t%s\t%d", fidelitycards[i].cognome, fidelitycards[i].nome, fidelitycards[i].data_nascita);
                        }
                    }
                    fflush(stdin);
    
                   printf("Confermare i dati?. Procedere? Y/N -> ");
                   scanf("%c", &azione);
    
                     if(azione=='y' || azione=='Y'){
                    fflush(stdin);
                    printf("inserisci data nuovo acquisto\n");
                    gets(data_nuovo_acquisto);
                    fflush(stdin);
                   printf("inserisci importo nuovo acquisto\n");
                   scanf("%d",&importo_nuovoacquisto);
    
                   printf("i nuovi punti fedelta' sono %d mentre il saldo punti e' %d ",contapunti(importo_nuovoacquisto,numerofidelitycards),saldopunti(importo_nuovoacquisto,numerofidelitycards));
    
    
                    system("PAUSE");
                system("cls");
                }else if(azione=='n' || azione=='N'){
    
                printf("\nNon hai confermato i dati\n\n");
    
                system("PAUSE");
                system("cls");
    
    
    
    
    
                }else{
    
                printf("carattere non ammesso");
                system("PAUSE");
                system("cls");
    
                }
    
    
                }
    
    
    void utilizzopunti(int importo_nuovoacquisto,int numerofidelitycards){
        int id;
        int i;
        char azione;
        int punti;
        punti=contapunti(importo_nuovoacquisto,numerofidelitycards);
        int saldo;
       // saldo=saldopunti(importo_nuovoacquisto,numerofidelitycards);
    
    printf("inserisci codice della fidelitycard");
    scanf("%d",&id);
    for(i=1;i<numerofidelitycards;i++){
    
        if(fidelitycards[i].id==id){
            printf("nome:%s,cognome:%s,data di nascita:%d",fidelitycards[i].nome,fidelitycards[i].cognome,fidelitycards[i].data_nascita);
            fflush(stdin);
               printf("Confermare i dati?. Procedere? Y/N -> ");
                   scanf("%c", &azione);
    
                     if(azione=='y' || azione=='Y'){
                  //  fflush(stdin);
                  //  printf("inserisci i punti che intendi utilizzare\n");
                  //  scanf("%d",&punti);
                  //  saldo=saldo-punti;
    
    
                   printf("il nuovo saldo punti e' %d ",saldo);
    
    
                    system("PAUSE");
                    system("cls");
                }else if(azione=='n' || azione=='N'){
    
                printf("\nNon hai confermato i dati\n\n");
    
                system("PAUSE");
                system("cls");
    
    
    
    
    
                }else{
    
                printf("carattere non ammesso");
                system("PAUSE");
                system("cls");
    
                }
        }
    }
    
    
    
    
    
    
    }
    
    
    
    
    
    
    int contapunti (int importo_nuovoacquisto,int numerofidelitycards) {
        //Variabili
    
        int i;
        int punti;
    
    
    
        for(i = 1; i< numerofidelitycards; i++) {
    
                punti= importo_nuovoacquisto*5/100;
    
    
        }
        return punti;
    
    }
    
    int saldopunti (int importo_nuovoacquisto,int numerofidelitycards) {
        //Variabili
        int punti;
        punti=contapunti(importo_nuovoacquisto,numerofidelitycards);
        int i;
        int saldo=0;
    
    
        saldo= saldo+punti;
    
    
        return saldo;
    }
    
    void visualizzazionefidelitycards(int importo_nuovoacquisto,int numerofidelitycards){
    
    int i;
    for(i=1;i<numerofidelitycards;i++){
    
        printf("codice : %d,cognome cliente:%s,saldo punti:%d",fidelitycards[i].id,fidelitycards[i].cognome,saldopunti(importo_nuovoacquisto,numerofidelitycards));
    
    
    
    }
    
        system("PAUSE");
        system("cls");
    
    }
    
    /*void visualizzazioneestrattopunti(int numerofidelitycards){
    int id;
    int i;
    char data_nuovo_acquisto[MAXCHAR];
    int importo_nuovoacquisto;
    
    printf("inserisci id fidelitycards");
    scanf("%d",&id);
    for(i=1;i<numerofidelitycards;i++){
    if(fidelitycards[i].id==id){
    
    
        printf("%s,%d,%d",data_nuovo_acquisto,importo_nuovoacquisto,contapunti(importo_nuovoacquisto,numerofidelitycards));
    }
    }
    
    }*/
    
  • Re: Programma c....aiuto

    Ti ho già detto che non puoi continuare su questo thread.

    Nuovo thread, titolo opportuno (non generico), dettagli del problema. Altrimenti è difficile rispondere.
  • Re: Programma c....aiuto

    X markella92: segui il consiglio di Oregon, identifica bene un problema e sottoponilo come nuovo thread, grazie
Devi accedere o registrarti per scrivere nel forum
58 risposte