#include <stdlib.h>
#include <stdio.h>
#define MAXCHAR 10
void mainmenu();
void creazionefidelitycard(int *numerofidelitycards);
void nuovoacquisto(int numerofidelitycards);
int contapunti (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");
break;
case 5:
system("cls");
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;
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);
printf("inserisci importo nuovo acquisto\n");
scanf("%d",&importo_nuovoacquisto);
printf("i nuovi punti fedelta' sono %d ",contapunti(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 numerofidelitycards) {
//Variabili
int i;
int punti;
int importo_nuovoacquisto;
for(i = 1; i<= numerofidelitycards; i++) {
punti= importo_nuovoacquisto*5/100;
}
return punti;
}
quando richiamo la funzione contapunti che deve stampare i punti, non mi da i punti ma l'indirizzo in memoria della variabile e quindi un numero lungo.......