RISOLTO Programma Bancomat

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

AlligatoreMarrone

Nuovo Utente
Messaggi
115
Reazioni
4
Punteggio
38
Buonasera,
Io ed un mio amico stiamo scrivendo un programma che simuli un bancomat in c++ (Siamo in seconda di un itis, quindi sappiamo circa le basi).
Il programma Bancomat, ha varie funzioni ( Prelievo, Saldo e Ricarica).
Vi allego il codice della parte "RICARICA", per sapere se riusciste a trovarmi l'errore.
C++:
//Operazione Ricarica

int numerot=1234567, carica, risposta;
{
     system("cls");
     cout<<" Su quale numero vuoi eseguire la ricarica?"<<endl;
    cin>>numerot;
    system("cls");
    cout<<"+---------------------------------+"<<endl;
    cout<<"| Di quanto vuoi fare la ricarica?|"<<endl;
    cout<<"|             1. 5                |"<<endl;
    cout<<"|             2. 10               |"<<endl;
    cout<<"|             3. 20               |"<<endl;
    cout<<"|             0. Per uscire       |"<<endl;
    cout<<"+---------------------------------+"<<endl;
    cin>>carica;
    system("cls");
   [COLOR=rgb(184, 49, 47)] switch(carica){
    case 1:
        cout<<" Vuoi confermare la ricarica da 5 euro(s/n) "<<endl;
        cin>>risposta;
        if (risposta=='s') {
            system("pause");
                cout<<" Il suo saldo attuale \202 : "<<endl;
        }
        if (risposta=='n'){
                cout<<" Ricarica annullata, il tuo credito rimane invariato. "<<endl;
                system("pause");
                }
                break;
    case 2:
        cout<<" Vuoi confermare la ricarica da 10 euro (s/n) "<<endl;
        cin>>risposta;
        if (risposta=='s') {
                system("cls");
               [/COLOR][COLOR=rgb(41, 105, 176)] cout<<" Il suo saldo attuale \202 : "<<endl;[/COLOR]
[COLOR=rgb(184, 49, 47)]                system("pause");
        }
        if (risposta=='n'){
                system("cls");
                [/COLOR][COLOR=rgb(41, 105, 176)]cout<<" Ricarica annullata, il tuo credito rimane invariato. "<<endl;[/COLOR]
[COLOR=rgb(184, 49, 47)]                system("pause");
                }
                break;[/COLOR]
        }
        }
        }
Come potete notare dall'evidenziatura rossa dell'ultima parte di codice, è stata scritta una funzione che una conferma della ricarica;
Il problema è che quando vado a premere o 's' o 'n', non mi appare la frase che ho scritto (ovvero quella che vi ho evidenziato in blu).
 
Ciao,altro piccolo problemino.
Ho finito il programma, solo che, quando lo avvio, non mi funzionano le operazioni SALDO e RICARICA.
Mentre per l'operazione PRELIEVO, appena metto il pin mi si blocca, e me lo richiede nuovamente.
Vi allego il file
C++:
#include <iostream>
#include <math.h>
#include <time.h>
#include <stdlib.h>

using namespace std;

 // -------------------- funzioni
int friconoscimento();
int fricarica();
int fprelievo();
int fstampasaldo();


    // ------------------variabili
int scelta, j, h ,m , z, nsaldo=2000, pin=123456, riconosciuto;


int main()
{
do{
    // ------------------- menù

    //pulizia schermo
    system("cls");
    cout<<"+-----------------------------+"<<endl;
    cout<<"|         1. Prelievo         |"<<endl;
    cout<<"|         2. Saldo            |"<<endl;
    cout<<"|         3. Ricarica         |"<<endl;
    cout<<"|                             |"<<endl;
    cout<<"|         0. Uscita           |"<<endl;
    cout<<"+-----------------------------+"<<endl;
    cin>>scelta;

        switch(scelta){
        case 1: {
                fprelievo();
                break;

                }
        case 2: {
                fstampasaldo();
                break;
                }
        case 3: {
                fricarica();
                break;
                }
        case 0: {
                cout<<"Arrivederci"<<endl;
                break;
                }
        default:    {
                    cout<< "il numero scelto non corrisponde a nessuna operazione del bancomat"<<endl;
                    break;
                    }
        }
}while(scelta!=0);
}



int friconoscimento() {
int numerotentativi=0;

do {
    system("cls");
    cout<<"inserisci il pin"<<endl;
    cin>>j;
    if(j==pin)
        {
        riconosciuto=1;
        } else {
            numerotentativi++;
            cout<<"il PIN non e' corretto!"<<endl;
            cout<<"hai ancora "<<3 - numerotentativi <<" tentativi per dare il PIN corretto!"<<endl;
        }
} while (numerotentativi>3 || riconosciuto==1);
return 0;
}


 // Operazione Prelievo

int fprelievo() {
int importodaprelevare,sceltaprelievo;
friconoscimento();

if(riconosciuto==1)
    {

    do {
        system("cls");
        cout<<"+-------------------------------------+"<<endl;
        cout<<"| Di quanto vuoi fare il prelievo?   |"<<endl;
        cout<<"|             1. 50                   |"<<endl;
        cout<<"|             2. 100                  |"<<endl;
        cout<<"|             3. 150                  |"<<endl;
        cout<<"|             4. 200                  |"<<endl;
        cout<<"|             5. 250                  |"<<endl;
        cout<<"|                                     |"<<endl;
        cout<<"|             6. Libero               |"<<endl;
        cout<<"+-------------------------------------+"<<endl;
        cin >>sceltaprelievo;

        switch(sceltaprelievo) {
            case 1:{importodaprelevare=50;break;}
            case 2:{importodaprelevare=100;break;}
            case 3:{importodaprelevare=150;break;}
            case 4:{importodaprelevare=200;break;}
            case 5:{importodaprelevare=250;break;}
            case 6:{
                    cout<<"inserisci la somma che vuoi prelevare"<<endl;
                    cin>> importodaprelevare;
                    break;
                    }
            }

        if (importodaprelevare<0 || importodaprelevare>250) {
            cout<<"La cifra da prelevare npn e' accettabile"<<endl;
        } else if (importodaprelevare>nsaldo) {
            cout<<"Non hai abbastanza soldi sul conto corrente"<<endl;
        } else {
            nsaldo=nsaldo-importodaprelevare;
            cout<<endl<<"La somma e' stata prelevata, il tuo saldo attuale e': " <<nsaldo<<endl<<endl;
        }


        } while (sceltaprelievo <1 || sceltaprelievo>6);
    }
return 0;
}









int fricarica() {
int importodaricaricare,sceltaricarica,cellulare;

if (riconosciuto==1)
    {

    do {
        system("cls");
        cout<<"+-------------------------------------+"<<endl;
        cout<<"| Di quanto vuoi fare il ricarica?    |"<<endl;
        cout<<"|             1. 5                    |"<<endl;
        cout<<"|             2. 10                   |"<<endl;
        cout<<"|             3. 30                   |"<<endl;
        cout<<"|             4. 50                   |"<<endl;
        cout<<"+-------------------------------------+"<<endl;
        cin >>sceltaricarica;

        switch(sceltaricarica) {
            case 1:{importodaricaricare=5;break;}
            case 2:{importodaricaricare=10;break;}
            case 3:{importodaricaricare=30;break;}
            case 4:{importodaricaricare=50;break;}
            }

        if (importodaricaricare>nsaldo) {
            cout<<"Non hai abbastanza soldi sul conto corrente"<<endl;
        } else {
            cout<<endl<<"su quale numero di cellulare de4vo effett6uare la rocatrica?"<<endl;
            cin>>cellulare;
                        nsaldo=nsaldo-importodaricaricare;
            cout<<endl<<"La ricarica del numero "<<cellulare<<" e'stata effetttuata. Il tuo saldo attuale e': " <<nsaldo<<endl<<endl;
        }

        } while (sceltaricarica <1 || sceltaricarica>4);
    }
return 0;
}

// Operazione Saldo

int fstampasaldo(){
return 0;
}
 
Per saldo e ricarica entrambe le funzioni fanno un return 0 ( in prelievo devi ancora assegnare un valore alla variabile "riconosciuto", quindi non entra nell'if e la funzione saldo non fa una mazza ).
In riconoscimento hai messo come condizione nel while riconosciuto==1, quindi se la metti giusta continui a ciclare.
Comunque se una funzione ritorna qualcosa deve essere qualcosa di significativo, se a te non interessa cosa ritorna mettilo void
 
Comunque questo genere di esercizi richiederebbe una classe per evitare l’uso di variabili globali
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top