PDA

Visualizza la versione completa : [C++] aiuto su classi


Salvatore_91
23-10-2009, 19:33
Salve raga, ho costruito un semplice programma, per iniziare a capire il concetto di classe.
Questo programma dovrebbe gestire un Conto Corrente.
Io ho fatto nel seguente modo, ma ho dei problemi, perche quando richiedo il "Saldo Conto", mi stampa il valore dell'ultimo depositamento che ho fatto (dato che metto la variabile tot=0).
Potete aiutarmi??


# include <iostream>

using namespace std;

class Conto
{
public:
float tot;

void Cdeposita(float dep)
{
tot=0;
tot=tot+dep;
cout << "Hai Depositato nel conto : "<<tot<<" euro"<< endl;
}

void Csaldo()
{
cout << "Il tuo Saldo e' di " << tot << " euro"<< endl;
}

};

int main()
{
int scelta;
float deposita,preleva;
while (scelta!=4)
{
cout <<"\n>>1<< Deposita" << endl;
cout <<">>2<< Preleva" << endl;
cout <<">>3<< Vedi Saldo" << endl;
cout <<">>4<< ESCI" << endl;
cin >> scelta;
Conto A1;

if (scelta==1)
{
cout << "Quanto vuoi depositare ?" << endl;
cin >> deposita;
A1.Cdeposita(deposita);
}


if (scelta==3)
{
A1.Csaldo();
}
}

}

oregon
23-10-2009, 19:38
Originariamente inviato da Salvatore_91
ultimo deposito ...

Potete aiutarmi??

Non impostare tot a 0 in quel metodo. Fallo nel costruttore della classe.

P.S. Perche' chiami i metodi con una C iniziale ? E' meglio Deposito non CDeposito ...

Salvatore_91
23-10-2009, 19:39
e come dovrei fare di preciso??

oregon
23-10-2009, 19:40
Stai studiando le classi e non sai cosa e' un costruttore?

Salvatore_91
23-10-2009, 19:58
si so cos'e' un costruttore.
e' una particolare funzione per allocare lo spazio necessario alle strutture dati dell'oggetto.

Pero non so proprio come realizzarlo

oregon
23-10-2009, 20:01
Originariamente inviato da Salvatore_91
si so cos'e' un costruttore.
e' una particolare funzione per allocare lo spazio necessario alle strutture dati dell'oggetto.

Pero non so proprio come realizzarlo

Scusa Salvatore ... se sai cosa e' un costruttore (anche se non serve solo a fare quello che hai detto) vuol dire che l'hai studiato ...

Perche' non fai un esempio di quello che hai studiato ?

Il costruttore che ti serve e' un semplice



Conto()
{
tot=0.0;
}


Ma ci sono altri errori nel tuo codice ...

Salvatore_91
23-10-2009, 20:24
Ok, ti ringrazio, io ho fatto cosi', adesso funziona.

Pero se magari ci dai un'occhiata e mi dici cosa ne pensi, ti sarei grato.



# include <iostream>

using namespace std;

class Conto
{
public:
float tot;

void InizializzaConto()
{
tot=0;
}

void Deposita(float dep)
{
tot=tot+dep;
}

void Preleva(float prel)
{
if (prel>tot)
cout << "Impossibile prelevare questa quantita" << endl;
else
tot=tot-prel;
}

void VisualizzaSaldo()
{
cout << "Il tuo saldo e' "<< tot << " euro" << endl;
}

};

int main()
{
int scelta;
float deposita,preleva;
deposita=0;
preleva=0;
Conto A1;
A1.InizializzaConto();
cout << "Creazione Conto effettuata con Successo" << endl << endl;

while (scelta!=5)
{
cout <<">>1<< Deposita" << endl;
cout <<">>2<< Preleva" << endl;
cout <<">>3<< Visualizza Saldo" << endl;
cin >> scelta;

if (scelta==1)
{
cout << "Quanto vuoi depositare? ";
cin >> deposita;
A1.Deposita(deposita);
}

if (scelta==2)
{
cout << "Quanto vuoi prelevare ?" << endl;
cin >> preleva;
A1.Preleva(preleva);
}

if (scelta==3)
{
A1.VisualizzaSaldo();
}
}
system("PAUSE");
}

oregon
23-10-2009, 20:32
Originariamente inviato da Salvatore_91
Ok, ti ringrazio, io ho fatto cosi', adesso funziona.

Ma non hai usato il costruttore !

Le correzioni in rosso ...



#include <iostream>

using namespace std;

class Conto
{

private:
float tot;

public:

Conto()
{
tot=0.0;
}


void Deposita(float dep)
{
tot=tot+dep;
}

void Preleva(float prel)
{
if (prel>tot)
cout << "Impossibile prelevare questa quantita" << endl;
else
tot=tot-prel;
}

void VisualizzaSaldo()
{
cout << "Il tuo saldo e' "<< tot << " euro" << endl;
}
};

int main()
{
int scelta=0;
float deposita,preleva;
Conto A1;

cout << "Creazione Conto effettuata con Successo" << endl << endl;

while (scelta!=5)
{
cout <<">>1<< Deposita" << endl;
cout <<">>2<< Preleva" << endl;
cout <<">>3<< Visualizza Saldo" << endl;
cin >> scelta;

if (scelta==1)
{
cout << "Quanto vuoi depositare? ";
cin >> deposita;
A1.Deposita(deposita);
}

if (scelta==2)
{
cout << "Quanto vuoi prelevare ?" << endl;
cin >> preleva;
A1.Preleva(preleva);
}

if (scelta==3)
{
A1.VisualizzaSaldo();
}
}

cin >> scelta;
return 0;
}

Salvatore_91
23-10-2009, 20:38
ok ti ringrazio. ora ho capito

Loading