Vous êtes sur la page 1sur 4

#include<iostream>

#include<string>
#include<vector>
using namespace std;

class abonne
{
string numtel;
string nom;
string date;
float primin;

public:
abonne(string nt, string nm, string dat, float pm);
float getprimin();
virtual ~abonne() {}
void enregisapp(string numapp, int duree);
virtual float calcb()=0;
};

class abopr: public abonne


{
float solde;

public:
abopr(string nt=" ", string nm=" ", string dat = " ", float
pm=0.0, float sld=0.0);
virtual ~abopr() {}
void enregisapp(string numapp, int duree);
virtual float calcb();
void recharger(int rech);
};

class abops: public abonne


{
float consom;
string numgrat[5];

public:

abops(string nt, string nm, string dat, float pm, float conso,
string tg[5]);
void enregisapp(string numapp, int duree);
virtual float calcb();
string operator[](int ind);
virtual ~abops() {}

};
abonne ::abonne(string nt=" ", string nm=" ", string dat = " ", float
pm=0.0)
{
numtel=nt;
nom=nm;
date=dat;
primin=pm;
}

abopr ::abopr(string nt, string nm, string dat, float pm, float
sld):abonne(nt, nm, dat, pm), solde(sld)
{
}

abops ::abops(string nt, string nm, string dat, float pm, float conso,
string tg[5]):abonne(nt, nm, dat, pm)
{
consom=conso;
for(int i=0; i<5; i++)
numgrat[i]=tg[i];
}

float abonne ::getprimin()


{
return primin;
}

void abonne ::enregisapp(string numapp, int duree)


{
cout<<"le num appele est : "<<numapp<<" pour une duree : "
<<duree<<endl;
}

void abopr ::enregisapp(string numapp, int duree)


{
if (solde>0)
{
solde=solde-(getprimin()*duree);

cout<<"true";
}

else cout<<"false";

void abopr ::recharger(int rech)


{
solde+=rech;
}

void abops::enregisapp(string numapp, int duree)


{
bool test=false;
for(int i=0; i<5; i++)
if (numapp==numgrat[i])
test=true;
if(test==false)
consom+=getprimin()*duree;
else
consom+=0.0;

}
string abops::operator[](int ind)
{
return(numgrat[ind]);
}

float abopr ::calcb()


{
return (solde*0.1);

float abops::calcb()
{
return (consom*0.15);

class listabo
{
vector<abonne*> maliste;
string Nom;

public:

listabo(string n)
{
Nom = n;
}

void Ajouter(abonne *ab)


{
maliste.push_back(ab);
}

bool Supprimer(abonne *ab)


{
unsigned int loc;

for(unsigned int i = 0; i < maliste.size(); i++)


{

if(maliste[i]==ab)
loc=i;
}

maliste.erase (maliste.begin()+loc);
}

float budgetbonus()
{
float bontot;
for(unsigned int i = 0; i < maliste.size(); i++)
{
bontot += maliste[i]->calcb();
}
return bontot;

}
};

int main()
{
abopr Ab1("12345677", "Mohamed", "12 juin 2020", 0.5,2);

string tab[5]=
{"1244323","5432333","676657766","443556987","909890"};

abops Ab2("2354322", "Salem", "3 mai 1999", 1, 37.4, tab);

Ab1.recharger(3);
for(int i=0; i<5; i++)
cout<<Ab2[i]<<endl;

listabo MonOperateur("OpTel");
MonOperateur.Ajouter(&Ab1);
MonOperateur.Ajouter(&Ab2);
cout<<MonOperateur.budgetbonus()<<endl;
MonOperateur.Supprimer(&Ab2);
cout<<MonOperateur.budgetbonus()<<endl;

Vous aimerez peut-être aussi