Per un compito scolastico mi è stato detto di ""emulare"" un software ATM con qualche basica funzione (Vedi 1. saldo, 2. Prelievo, 3. Versamento, 4. Ricarica cellulare). Oltre a qualche piccolo bug che sono sicuro essere presente, anche se non ne ho visti, per ora (Nel caso ne trovaste mi aiutereste molto, dato che mi sto giocando una sufficienza in pagella ) c'è un grande problema. Quando si entra in o saldo o prelievo o versamento o ricarica e si esce dall'if la stringa "nome0" si resetta. Se poteste aiutarmi in qualsiasi modo (magari con la 4) vi sarei grato.
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define pin0 1023
#define pin1 4567
#define pin2 8901
#define pin3 2345
#define pin4 6789
main()
{
int i=0, pin, scelta;
float saldo=0, somma;
char nome0[30], scelta2, tel[10];
printf("Inserire carta di credito\n\n\n");
system("CLS");
printf("Lettura carta in corso:\n[###-------]");
sleep(1);
system("CLS");
printf("Lettura carta in corso:\n[######----]");
sleep(1);
system("CLS");
printf("Lettura carta completata:\n[##########]");
sleep(1);
system("CLS");
do
{
system("CLS");
printf("Inserire PIN: ");
scanf("%d",&pin);
system("CLS");
if (pin==pin0 || pin==pin1 || pin==pin2 || pin==pin3 || pin==pin4)
{
if (pin==pin0)
{
strcpy(nome0, "Paolo Rossi"); /*1023*/
saldo=679.32;
}
if (pin==pin1)
{
strcpy(nome0, "Maria Verdi"); /*4567*/
saldo=6753.16;
}
if (pin==pin2)
{
strcpy(nome0, "Giacomo Gialli"); /*8901*/
saldo=783.45;
}
if (pin==pin3)
{
strcpy(nome0, "Andrea Bianchi"); /*2345*/
saldo=4532.28;
}
if (pin==pin4)
{
strcpy(nome0, "Giovanni Russo"); /*6789*/
saldo=9765.44;
}
do
{
printf("\t\tBenvenuto in Banca Mediolanum\n\t\tProfilo di %s\n\n1. Controllo Saldo\t\t2.Prelievo\n3.Versamento\t\t4.Ricarica cellulare",nome0);
printf("\n\nSi prega di inserire una scelta: ");
scanf("%d",&scelta);
if (scelta==1)
{
printf("Il saldo sul conto ammonta a euro %5.2f",saldo);
printf("\nSi vuole continuare? (s/n)\n");
scanf("%s",&scelta2);
system("CLS");
if (scelta!='s' && scelta!='S')
i++;
}
if (scelta==2)
{
printf("Inserire cifra da prelevare in euro: ");
scanf("%f",&somma);
if(somma <= saldo)
{
saldo=saldo-somma;
printf("Il saldo attuale ammonta ora a %5.2f euro",saldo);
printf("\nSi vuole continuare? (s/n)\n");
scanf("%s",&scelta2);
system("CLS");
if (scelta!='s' && scelta!='S')
i++;
}
else
{
printf("Non si possiede una cifra simile. Riprovare");
printf("\nSi vuole continuare? (s/n)\n");
scanf("%s",&scelta2);
system("CLS");
if (scelta!='s' && scelta!='S')
i++;
}
}
if (scelta==3)
{
printf("Inserire cifra da depositare in euro: ");
scanf("%f",&somma);
if(somma <= saldo)
{
saldo=saldo+somma;
printf("Il saldo attuale ammonta ora a %5.2f euro",saldo);
printf("\nSi vuole continuare? (s/n)\n");
scanf("%s",&scelta2);
system("CLS");
if (scelta!='s' && scelta!='S')
i++;
}
}
if (scelta==4)
{
printf("Enter a string : ");
gets(tel);
}
if(scelta!=1 && scelta!=2 && scelta!=3 && scelta!=4)
{
printf("\nInserire una delle scelte presenti.");
sleep(1);
printf(".");
sleep(1);
printf(".");
sleep(1);
system("CLS");
scelta2='s';
}
}
while (scelta2=='s' || scelta2=='S');
}
else
{
printf("E' stato inserito un pin errato. Si prega di contattare la propria banca per maggiori informazioni.");
i=1;
}
}
while (i==0);
}
Grazie e buona giornata/serata.