Vous êtes sur la page 1sur 3

#include <iostream>

#include <string.h>
#include <vector>

using namespace std;

class Ouvrage
{
public:

char Titre[30];
int NbreExemp;

Ouvrage(char t[30]="", int ne=0)


{
strcpy(Titre, t);
NbreExemp=ne;
}

virtual void Afficher()=0;

virtual ~Ouvrage()
{

};

class Livre: public Ouvrage


{
public:
char NomAut[30];
Livre(char t[30]="", int ne=0, char na[30]="");

virtual void Afficher()


{
cout<<"le livre : "<<Titre<<" :: "<<NomAut<<endl;
}

virtual ~Livre()
{

};

Livre::Livre(char t[30], int ne, char na[30]):Ouvrage(t,ne)


{
strcpy(NomAut,na);

}
class Video: public Ouvrage
{
public:
int Duree;
Video(char t[30]="", int ne=0, int d=0):Ouvrage(t,ne),Duree(d)
{

virtual void Afficher()


{
cout<<"la video : "<<Titre<<" :: "<<Duree<<endl;
}

virtual ~Video()
{

};

class Bibliotheque
{
int taille;
public:
vector<Ouvrage*> mesOuvrages;
/*vector<int> tabint;
vector<string> tabstring; --> string * tabstring;

Ouvrage** tabouvrage;*/

Bibliotheque(int t)
{
taille=t;
}

void Ajouter(Ouvrage *ouv)


{

mesOuvrages.push_back(ouv);
}

void Supprimer (Ouvrage *ouv)


{
vector<Ouvrage*>::iterator monit;

for(monit=mesOuvrages.begin();monit!=mesOuvrages.end();++monit)
if(*monit==ouv)
mesOuvrages.erase(monit);

//mesOuvrages.erase(mesOuvrages.begin());

}
void AfficherBib()
{
for(unsigned int i = 0; i < mesOuvrages.size(); i++)
{
cout << "L ouvrage numero " << i+1 << " est ";
mesOuvrages[i]->Afficher();
}
}

~Bibliotheque()
{

};

int main ()
{
Bibliotheque Bib1(1000);
Livre L1 ( "Informatique", 3, "Makni") ;
Bib1.Ajouter (&L1) ;

Video V1 ("Physique", 1, 45) ;


Bib1.Ajouter (&V1) ;

Livre L2 ("Mathematiques", 5, "Kermeni") ;


Bib1.Ajouter (&L2) ;

Bib1.AfficherBib () ;

cout<<"*******************************"<<endl;

Bib1.Supprimer(&V1);
Bib1.AfficherBib () ;

cout<<"*******************************"<<endl;

Bib1.Supprimer(&L1);
Bib1.AfficherBib () ;

return 0;
}

Vous aimerez peut-être aussi