RISOLTO Programma Bancomat

Stato
Discussione chiusa ad ulteriori risposte.

AlligatoreMarrone

Nuovo Utente
115
4
CPU
i7-7400
Scheda Madre
asus x99
HDD
2tb
RAM
hyperX fury 8gb
GPU
gtx 1070
OS
OSX
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).
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
Non ti funziona con nessun input? A me con 1 e 2 va.
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit

AlligatoreMarrone

Nuovo Utente
115
4
CPU
i7-7400
Scheda Madre
asus x99
HDD
2tb
RAM
hyperX fury 8gb
GPU
gtx 1070
OS
OSX
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;
}
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
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
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro
Comunque questo genere di esercizi richiederebbe una classe per evitare l’uso di variabili globali
 

_Achille

Utente Èlite
3,067
725
CPU
Intel i5-6600K @4.6 GHz
Dissipatore
Cryorig H5
Scheda Madre
ASRock Z170 Extreme 6
HDD
WesternDigital 1TB & Crucial MX200 250GB
RAM
Corsair Ven 16GB DDR4 2133MHz
GPU
Sapphire RX 580 Nitro+
Monitor
Dell S2418H
PSU
RM550X
Case
NZXT S340
Periferiche
Anne Pro 2, Razer Abyssus
OS
Windows 10 Pro

enricovela

Utente Attivo
443
124
CPU
Ryzen 3600
Dissipatore
Thermaltake Water 3.0 240
Scheda Madre
MSI Gaming plus max x470
HDD
970 evo plus;Crucial MX500 1TB; GIGABYTE M.2 PCIe SSD; p300
RAM
16 GB @3000 MHz
GPU
quadro fx 3800
Audio
Audioengine D1
Monitor
LG 32QK500
PSU
Straight power 11 650 W
Case
Cooler Master MB510L
Net
FTTH Tim
OS
Pop!_OS
  • Mi piace
Reazioni: _Achille
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!