Programma c....aiuto

di
Anonimizzato18603
il
58 risposte

58 Risposte - Pagina 2

  • Re: Programma c....aiuto

    Ecco le due funzioni
    Allegati:
    18603_ffe38d0e056df26e959839415d3f7fd5.tiff
    18603_ffe38d0e056df26e959839415d3f7fd5.tiff
  • Re: Programma c....aiuto

    Ecco il printf che mi da errore.....
    Allegati:
    18603_861c70521c591df78b386a05a24c47d6.tiff
    18603_861c70521c591df78b386a05a24c47d6.tiff
  • Re: Programma c....aiuto

    I due allegati non si vedono ...

    Fai copia incolla nel forum ...
  • Re: Programma c....aiuto

    #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 punti,int numerofidelitycards);
    //void visualizzazionefidelitycards(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 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");
    
                break;*/
            case 4:
                system("cls");
                 visualizzazionefidelitycards(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 è %d ",contapunti(importo_nuovoacquisto,numerofidelitycards),saldopunti(punti,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");
    
                }
    
    
                }
    
    
    
    
    
    
    
    
    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 punti,int numerofidelitycards) {
        //Variabili
    
        int i;
        int saldo=0;
    
        for(i = 1; i<= numerofidelitycards; i++) {
    
                saldo= saldo+punti;
    
        }
        return saldo;
    }
    
    
    visualizzazionefidelitycards(int numerofidelitycards){
    
    int i;
    
    for(i=1;i<numerofidelitycards;i++){
    
        printf("codice : %i,cognome cliente %s,saldo punti%i",fidelitycards[i].id,fidelitycards[i].cognome);
    
        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

    Nella printf che dà l'errore usi una variabile punti ...

    Ma questa variabile non esiste da nessuna parte ... come fa il compilatore ?
  • Re: Programma c....aiuto

    Use of undeclared identifier punti
  • Re: Programma c....aiuto

    Mi comprendi quando scrivo?

    Quell'errore dice che NON ESISTE quella variabile proprio perché NON ESISTE.
  • Re: Programma c....aiuto

    Ma io in saldopunti ce la passo come argomento.....
  • Re: Programma c....aiuto

    La passi MA NON ESISTE !
  • Re: Programma c....aiuto

    Se contapunti funziona e ce la passo proprio da quella funzione è perché esiste.....
    sennò come devo fare?
  • Re: Programma c....aiuto

    Ma che dici scusa?

    Alla contapunti NON passi alcuna variabile punti ...

    Scusami, ma hai le basi della programmazione C? Ovvero sai usare almeno le variabili?
    Altrimenti è inutile darti risposte, purtroppo rimane solo scrivere il codice al posto tuo.

    Forse dovresti fermarti e fare programmini più semplici, studiando le basi appunto ...
  • Re: Programma c....aiuto

    Mi sono espresso male...alla contapunti non le passo la variabile punti.....anzi è li che li calcolo...però alla saldopunti le passo la variabile punti calcolati nella contapunti.....quindi com'è che non esiste?
  • Re: Programma c....aiuto

    Tu non hai idea di come funzionino le variabili locali e le chiamate a funzione ... Scusa ma è così.

    Se vuoi memorizzare il valore restituito dalla funzione devi scrivere

    int punti;

    punti = contapunti(...);

    e poi utilizzi la variabile nella printf e la passi all'altra funzione ...

    Ma ti ripeto ... sono le basi del linguaggio C ...

    In futuro non possiamo discutere di queste nozioni banali ... il linguaggio va studiato prima di scrivere codice ...
  • Re: Programma c....aiuto

    Grazie mille...però è pur vero che facendo pratica impari anche...
  • Re: Programma c....aiuto

    Comunque pure come hai detto tu non va.....
Devi accedere o registrarti per scrivere nel forum
58 risposte