Interaction entre plusieurs classes
Bonjour a toutes et a tous ,
Mon code fonctionne correctement , mais mon main est peut etre un peu trop surchargé . Je souhaiterai creer une 2 eme classe " Sauvegarde ".
Je ne maitrise pas encore la notion de définition et d'instanciation lorsqu'il y a plus d'une classe : je ne sais pas comment les faire interagir entre elles .
Voici le code tel qu'il est actuelement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #ifndef COMPTE_H_
#define COMPTE_H_
class Compte
{
private :
int solde,rib;
public :
Compte(int a);
int getsolde()const;
void setsolde(int b);
void saisir(int s);
void deposer(int montant);
bool retirer(int montant);
void afficher();
};
#endif |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include "compte.h"
#include <iostream>
#include <string>
using namespace std;
Compte :: Compte(int a):solde(0),rib(a){}
int Compte::getsolde()const
{
return solde;
}
void Compte :: setsolde(int b)
{
solde = b;
}
void Compte :: deposer(int montant)
{
solde += montant;
}
bool Compte ::retirer(int montant)
{
if(solde >= montant)
{
solde -= montant;
cout <<"votre retrait a bien été éffectué sur votre compte" << endl;
return true;
}else
cout <<"solde insuffisant , operation refusée" << endl;
return false;
}
void Compte :: afficher()
{
cout << "Le solde de votre compte : " << rib <<" est de : " << solde <<" euros" << endl;
}
void Compte :: saisir(int s)
{
solde = s;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| int main()
{
Compte ccp (12348), livretA(987654);
int a(0);
fstream file("sauvegarde.txt",ios::in);
if(file.is_open())
{
int input;
file >> input;
ccp.setsolde(input);
file >> input;
livretA.setsolde(input);
file.close();
cout << "solde lu avec succès" << endl;
}else{
cout << "solde non lu"<< endl;
}
do {
cout << "Quelle operation souhaitez vous faire ?" << endl;
cout << "1 : Afficher le solde de votre compte CCP: " << endl;
cout << "2 : Afficher le solde de votre livret A : " << endl;
cout << "3 : Saisir votre nouveau solde CCP : " << endl;
cout << "4 : Saisir votre nouveau solde livret A : " << endl;
cout << "5 : Faire un depot sur votre compte CCP : " << endl;
cout << "6 : Faire un depot sur votre livret A : " << endl;
cout << "7 : Faire un retrait sur votre compte CCP : " << endl;
cout << "8 : Faire un retrait sur votre livret A : " << endl;
cout << "9 : Faire un virement sur votre compte CCP : " << endl;
cout << "10 : Faire un virement sur votre livret A : " << endl;
cout << "11 : Quitter le programme " << endl;
cin >> a;
cin.ignore();
switch(a)
{
case 1 :
ccp.afficher();
break;
case 2 :
livretA.afficher();
break;
case 3 :
{
int s(0);
cout << "Entrez votre solde : " << endl;
cin >> s;
ccp.saisir(s);
}
break;
case 4 :
{
int s(0);
cout << "Entrez votre solde : " << endl;
cin >> s;
livretA.saisir(s);
}
break;
case 5 :
{
int s(0);
cout << " Quel est le montant de votre depot : " << endl;
cin >> s ;
ccp.deposer(s);
}
break;
case 6 :
{
int s(0);
cout << " Quel est le montant de votre depot : " << endl;
cin >> s ;
livretA.deposer(s);
}
break;
case 7 :
{
int s(0);
cout << " Quel est le montant de votre retrait : " << endl;
cin >> s ;
ccp.retirer(s);
}
break;
case 8 :
{
int s(0);
cout << " Quel est le montant de votre retrait : " << endl;
cin >> s ;
livretA.retirer(s);
}
break;
case 11 :
{
fstream file("sauvegarde.txt",ios::out);
if(file.is_open())
{
file << ccp.getsolde()<< endl;
file << livretA.getsolde()<<endl;
file.close();
cout << "solde enregistré avec succès" << endl;
}else{
cout << "solde non enregistré"<< endl;
}
cout << "Aurevoir" << endl;
}
break;
default :
cout << "Mauvais choix " << endl;
break;
}
}while( a != 11);
return 0;
} |
Je pensais faire quelque chose de ce genre mais ca ne fonctionne pas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #ifndef SAUVEGARDE_H_
#define SAUVEGARDE_H_
#include<iostream>
class Sauvegarde
{
public:
void sauvegarde();
void restitution();
};
#endif |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| #include "sauvegarde.h"
#include "compte.h"
using namespace std;
void Sauvegarde::sauvegarde()
{
fstream file("sauvegarde.txt",ios::out);
if(file.is_open())
{
file << ccp.getsolde()<< endl;
file << livretA.getsolde()<<endl;
file.close();
cout << "solde enregistré avec succès" << endl;
}else{
cout << "solde non enregistré"<< endl;
}
cout << "Aurevoir" << endl;
}
void restitution()
{
fstream file("sauvegarde.txt",ios::in);
if(file.is_open())
{
int input;
file >> input;
ccp.setsolde(input);
file >> input;
livretA.setsolde(input);
file.close();
cout << "solde lu avec succès" << endl;
}else{
cout << "solde non lu"<< endl;
}
} |
Concretement , comment pourai je faire ?
Merci de votre aide.