Ti mostro tutto il codice che è meglio....
#include <stdio.h>
#include <stdlib.h>
#define MAXCHAR 10
void mainmenu();
void creazionefidelitycard(int *numerofidelitycards);
void nuovoacquisto(int numerofidelitycard);
int contapunti(int importo_nuovoacquisto);
int saldopunti(int importo_nuovoacquisto,int saldo);
void utilizzopunti(int importo_nuovoacquisto, 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];
struct acquisto {
char data_acquisto[MAXCHAR];
int importo_nuovoacquisto;
} acquisti[10];
int main() {
mainmenu();
return 0;
}
void mainmenu() {
int numerofidelitycards = 1;
int numeroacquisti;
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(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_acquisto[MAXCHAR];
int importo_nuovoacquisto;
int punti;
int saldo=0;
saldo=saldopunti(importo_nuovoacquisto,saldo);
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(acquisti[*numeroacquisti].data_acquisto);
// fflush(stdin);
//printf("inserisci importo nuovo acquisto\n");
//scanf("%d", &acquisti[*numeroacquisti].importo_nuovoacquisto);
gets(data_acquisto);
fflush(stdin);
printf("inserisci importo nuovo acquisto\n");
scanf("%d", &importo_nuovoacquisto);
printf("i nuovi punti fedelta' sono %d mentre il saldo è %d ",contapunti(importo_nuovoacquisto),saldopunti(importo_nuovoacquisto,saldo));
//*numeroacquisti+=1;
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) {
//Variabili
int i;
int punti;
punti = importo_nuovoacquisto * 5 / 100;
return punti;
}
int saldopunti(int importo_nuovoacquisto,int saldo) {
//Variabili
int i;
// int saldo;
int punti;
punti=contapunti(importo_nuovoacquisto);
saldo =saldo+punti;
return saldo;
}
void visualizzazionefidelitycards(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);
}
system("PAUSE");
system("cls");
}