Académique Documents
Professionnel Documents
Culture Documents
b.b
#include<iostream>
#include<string>
using namespace std;
/*
===============================
start les type
===============================
*/
typedef struct Liver{
long num;
string titre;
string auteur;
string edieur;
int annee;
double prix;
int NExmplaires;
}Liver;
typedef struct Maillon
{
Liver liver;
struct Maillon *Next;
}Maillon;
Liver CreerLiver(long num, string titre, string auteur, string editeur, int annee,
double prix, int NExemplaires) {
Liver livre;
livre.num = num;
livre.titre = titre;
livre.auteur = auteur;
livre.edieur = editeur;
livre.annee = annee;
livre.prix = prix;
livre.NExmplaires = NExemplaires;
return livre;
}
Maillon *CreerMaillon(Liver liver){
Maillon *Mliver = new Maillon;
Mliver->liver = liver;
Mliver->Next = NULL;
return Mliver;
}
ListeLiver *CreerListe(){
ListeLiver *list = new ListeLiver;
list->head = NULL;
return list;
}
int AjouterLiver(ListeLiver *liste,Liver liver){
Maillon *Mliver = CreerMaillon(liver);
if(Mliver == NULL) return 0;
Maillon *ptr = liste->head;
liste->head = Mliver;
Mliver->Next = ptr;
return 1;
}
int ExiteLiver(ListeLiver *liste,Liver liver){
Maillon *ptr= liste->head;
int counter = 0;
while (ptr != NULL)
{
counter++;
if(ptr->liver.num == liver.num){
return counter;
}
ptr = ptr->Next;
}
return 0;
}
int suppreLiver(ListeLiver *liste,Liver liver){
if(!ExiteLiver(liste,liver))return 0;
Maillon *ptr= liste->head;
if (liver.num == liste->head->liver.num)
{
liste->head = liste->head->Next;
return 1;
}
Maillon *ptrPre = NULL;
while (ptr != NULL)
{
if(ptr->liver.num == liver.num){
ptrPre->Next = ptr->Next;
return 1;
}
ptrPre = ptr;
ptr = ptr->Next;
}
return 0;
}
int NbrLivresEditeur(ListeLiver lst, string editeur) {
int nombre = 0;
Maillon* ptr = lst.head;
while (ptr != NULL) {
if (ptr->liver.edieur == editeur) {
nombre++;
}
ptr = ptr->Next;
}
return nombre;
}
}
ListeLiver *TrierLivresPrix(ListeLiver *list) {
ListeLiver *nouvelle_liste = CreerListe();
Liver liver;
int taile = longList(*list);
for (int i = 0; i < taile; i++)
{
liver = LivreMoinCher(list);
liver.num=taile-i;
AjouterLiver(nouvelle_liste,liver);
suppreLiver(list,liver);
}
list = nouvelle_liste;
return nouvelle_liste;
}
}
/*
===============================
start app principale
===============================
*/
int main()
{
ListeLiver *biblio =CreerListe();
Liver lvr1 = CreerLiver(2,"Best Programer","badie","dar naxr",2022,20,0);
AjouterLiver(biblio,lvr1);
Liver lvr2 = CreerLiver(1,"Fan al la mobalat","john doe","dar sika",2020,30,0);
AjouterLiver(biblio,lvr2);
Liver lvr3 = CreerLiver(3,"SECREIR","Xiwahd","anajah",2012,10,0);
AjouterLiver(biblio,lvr3);
affiche(*biblio);
cout <<"#####################"<<endl;
biblio = TrierLivresPrix(biblio);
affiche(*biblio);
return 0;
}