public Document(int numEnregist, string titre, int nbpages,string editeur)
this.numEnregist=numEnregist;
public override string ToString()
return "\n " + numEnregist + "titre " + titre + "editeur " + editeur + "\n";
public class Revue : Document
public Revue(int numEnregist, string titre,int nbpages,string editeur,int mois,int annee):base(numEnregist,titre,nbpages,editeur)
public Livre(int numEnregist, string titre,int nbpages, string editeur, string auteur):base(numEnregist,titre,nbpages,editeur)
internal class Roman : Livre
private string prix_litt;
public Roman(int numEnregist, string titre,int nbpages, string editeur, string auteur,string prix_litt):base(numEnregist,titre,nbpages,editeur,auteur)
this.prix_litt=prix_litt;
public override string ToString()
return base.ToString()+"prix_litt:" + prix_litt;
internal class Manuel: Livre
public Manuel(int numEnregist, string titre,int nbpages, string editeur, string auteur,int niv_sco):base(numEnregist,titre,nbpages,editeur,auteur)
public override string ToString()
return base.ToString()+$"niveau scolaire: {niv_sco}";
private List<Document> documents=new List<Document>();
public Etagere(int capacite)
public void AjouterDocument(Document doc)
if(documents.Count < capacite)
Console.WriteLine("Etagere pleine");
public void ListerDocument()
foreach(var doc in documents)
public Livre RechercherLivreParAuteur(string auteur)
return documents.Find(d => d is Livre.Auteur == auteur) as Livre;
internal class Bibliothèques
private List<Etagere> etageres =new List<Etagere> ();
public void AjoutEtagere( Etagere etagere)
public void ListerDocuments()
foreach (var etagere in etageres)
etagere.ListerDocuments();
public Document RechercherDocument(string titre)
foreach (var etagere in etageres)
var doc = etagere.RechercherLivreParAuteur(titre);