Vous êtes sur la page 1sur 8

le rapport de mini projet :

1- Fonction ajouter un livre :


Le programme commence par définir une structure livre qui contient les informations sur un livre, à
savoir son titre, son auteur, sa catégorie et son identifiant. Ensuite, une structure list_livre est définie,
qui contient un élément de type livre et un pointeur vers le prochain élément de la liste.
La fonction ajouter_livre permet d'ajouter un livre à une position donnée dans la liste chaînée. Elle
prend en entrée un pointeur vers le début de la liste, un livre à ajouter et la position à laquelle il faut
l'ajouter. La fonction alloue de la mémoire pour un nouvel élément de la liste, y copie le livre à ajouter
et l'insère à la position spécifiée. Si la position est en dehors de la liste, la fonction affiche un message
d'erreur et libère la mémoire allouée pour l'élément.
Dans le programme principale, l'utilisateur est invité à entrer le nombre d'éléments qu'il souhaite
ajouter à la liste chaînée. Ensuite, une boucle demande les informations de chaque livre et l'ajoute à la
liste en utilisant la fonction ajouter_livre avec une position de 0 pour ajouter en début de liste. La liste
chaînée ainsi créée est ensuite affichée à l'utilisateur.Ensuite, l'utilisateur est invité à entrer la position
à laquelle il souhaite ajouter un nouveau livre et les informations sur ce livre sont demandées. Le livre
est ajouté à la position spécifiée en utilisant la fonction ajouter_livre et la liste chaînée mise à jour est
affichée à l'utilisateur.
Enfin, le programme est exécuté correctement et le résultat est affiché l’image suivante :
2- Fonction supprimer un livre :
La fonction "supprimer_livre" permet de supprimer un élément de la liste de livres à partir de sa
position. Si la position est 0, l'élément en tête de liste est supprimé. Si la liste est vide, un message est
affiché indiquant que la liste est vide. Si la position spécifiée n'est pas valide, un message est affiché
indiquant que la position de l'élément est invalide. Si l'élément est supprimé avec succès, un message
est affiché pour en informer l'utilisateur.

La fonction "afficher_liste" permet d'afficher la liste des livres. Elle prend en entrée le début de la liste
et parcoure la liste pour afficher chaque livre avec son titre, son auteur, sa catégorie et son identifiant.
Si la liste est vide, un message est affiché pour en informer l'utilisateur.

La fonction "main" est le point d'entrée du programme. Elle demande à l'utilisateur le nombre
d'éléments qu'il souhaite ajouter à la liste de livres, puis demande les informations relatives à chaque
livre. Les informations sont stockées dans une structure "livre", qui est ensuite utilisée pour créer un
nouvel élément de la liste. La liste est construite en ajoutant chaque nouvel élément en tête de liste.
Ensuite, la fonction "afficher_liste" est appelée pour afficher la liste des livres. L'utilisateur est ensuite
invité à entrer la position de l'élément qu'il souhaite supprimer. La fonction "supprimer_livre" est
appelée pour supprimer l'élément à la position spécifiée. Enfin, la fonction "afficher_liste" est appelée
pour afficher la nouvelle liste des livres après suppression.

Enfin, le programme est exécuté correctement et le résultat est affiché l’image suivante :
3-fonction trier les livre par titre (auteur, catégorie et même fonction pour trier
les adhérents par nom) :
Ce programme trie une liste de livres selon l'ordre alphabétique de leur titre en utilisant la fonction strcmp
pour comparer les chaînes de caractères représentant les titres.
La fonction prend en entrée un pointeur vers le début de la liste de livres et retourne un pointeur vers le
début de la liste triée.
Le programme commence par déclarer deux pointeurs, temp et p, qui seront utilisés pour parcourir la liste
de livres.
Il crée également une variable pr de type struct livre, qui sera utilisée pour stocker temporairement les
informations sur un livre lors de l'échange de positions dans la liste.
La condition if vérifie si la liste n'est pas vide. Si elle est vide, la fonction retourne simplement NULL.
La première boucle for (avec la variable temp) parcourt la liste de livres jusqu'à l'avant-dernier élément
(temp->suivant != NULL), c'est-à-dire jusqu'au point où il n'y a plus de livres à trier.
La deuxième boucle for (avec la variable p) parcourt la liste de livres à partir du deuxième élément après
temp jusqu'à la fin de la liste.

Dans chaque itération des boucles for imbriquées, la fonction strcmp est utilisée pour comparer les titres
des livres de temp et de p. Si le titre du livre p est inférieur (selon l'ordre alphabétique) au titre du livre
temp, alors les deux livres doivent être échangés de place dans la liste.

Pour effectuer cet échange, la fonction stocke temporairement les informations du livre temp dans la
variable pr, puis copie les informations du livre p dans temp, et enfin copie les informations de pr dans p.
Cela échange effectivement les positions des deux livres dans la liste.

Après avoir parcouru toute la liste, la fonction retourne le pointeur vers le début de la liste triée.
Le programme commence par vérifier si la valeur de strcmp(p->livre.titre, temp->livre.titre) est inférieure à
zéro. Si la valeur est inférieure à zéro, cela signifie que le titre du livre p->livre.titre précède le titre
temp->livre.titre dans l'ordre alphabétique.

Si la condition est vraie (c'est-à-dire strcmp(p->livre.titre, temp->livre.titre) < 0), les deux commandes
suivantes sont exécutées :

La valeur de p->livre est stockée dans la variable temporaire pr.


La valeur de p->livre est changée pour devenir temp->livre.
La valeur de temp->livre est changée pour devenir pr.
Plus en détail, le programme échange les positions des livres entre p et temp si le titre du livre passé en
paramètre (temp->livre.titre) précède le titre du livre actuel (p->livre.titre) dans l'ordre alphabétique. Ceci
est réalisé en stockant la valeur du livre actuel p->livre dans la variable temporaire pr, en modifiant la valeur
du livre actuel p->livre pour devenir le livre temp->livre et enfin, en changeant la valeur de temp->livre pour
devenir le livre stocké dans la variable temporaire pr.

Il convient de noter que le code présenté n'est pas suffisant pour fonctionner correctement car il nécessite
une variable temp qui n'a pas été définie dans la partie du code affichée. Cette variable peut avoir été
définie dans une autre partie du programme.

Enfin, le programme est exécuté correctement et le résultat est affiché l’image suivante :
4- fonction chercher :
Cette fonction permet de rechercher un livre dans une liste chaînée de livres en utilisant le titre du livre.

La fonction prend en entrée deux arguments :

debut : un pointeur vers le début de la liste chaînée de livres.

titre : une chaîne de caractères contenant le titre du livre recherché.


La fonction utilise une boucle while pour parcourir tous les éléments de la liste chaînée de livres. La boucle
s'exécute tant que le pointeur debut ne pointe pas vers la valeur NULL (fin de liste).

À chaque itération de la boucle, la fonction compare le champ titre du livre actuel (pointé par debut) à la
chaîne titre passée en argument. Pour ce faire, la fonction utilise la fonction strcmp, qui renvoie 0 si les deux
chaînes sont identiques. Si une correspondance est trouvée (c'est-à-dire que le titre du livre actuel est
identique au titre recherché), la fonction renvoie le pointeur debut, qui pointe vers l'élément de la liste
chaînée correspondant au livre recherché. Si la boucle se termine sans avoir trouvé de correspondance
(c'est-à-dire que le titre recherché n'a pas été trouvé dans la liste chaînée), la fonction renvoie NULL.

Enfin, le programme est exécuté correctement et le résultat est affiché l’image suivante :

5- fonction ajouter et supprimer des avis positifs et negatifs sur un livre :


 fonction ajouter avis :

Cette fonction prend en entrée un pointeur vers le début d'une liste de livres, une chaîne de caractères
représentant un avis et une position dans la liste où l'avis doit être inséré. Elle parcourt la liste jusqu'à
atteindre la position spécifiée (ou la fin de la liste si la position spécifiée est au-delà de la taille de la
liste). Si la position est atteinte, l'avis est copié dans le champ avis_positif du livre correspondant.
Ensuite, la fonction renvoie un pointeur vers le début de la liste. Si la position n'a pas été trouvée, la
fonction renvoie simplement le pointeur vers le début de la liste.

Il convient de noter que cette fonction ajoute seulement un avis positif à un livre. Si l'on souhaite
ajouter un avis négatif, il faudrait ajouter une autre fonction qui prendrait en compte les avis négatifs.
 Fonction supprimer avis :
Cette fonction prend en entrée un pointeur vers le début d'une liste de livres et une chaîne de
caractères "avis". Elle cherche ensuite dans chaque livre de la liste s'il contient le même avis dans
son champ "avis_positif" et si c'est le cas, elle le supprime en mettant le premier caractère de ce
champ à la valeur nulle .

La fonction retourne finalement un pointeur vers le début de la liste des livres, qui peut avoir été
modifié si un avis a été supprimé.

6-fonction gérerles emprunts et les retourns :

 fonction retourner livre : La fonction "retourner_livre" prend en entrée un pointeur "debut"


vers la première cellule d'une liste de livres, ainsi qu'un identifiant "iden". Elle parcourt la liste à la
recherche d'un livre ayant cet identifiant. Si elle trouve un livre correspondant, elle vérifie si ce livre a
été emprunté en vérifiant le champ "emprunts". Si le livre n'a pas été emprunté, elle affiche un
message indiquant que le livre n'a pas été emprunté. Sinon, elle met à jour le champ "emprunts" du
livre pour indiquer qu'il a été retourné, et affiche un message indiquant que le livre a été retourné
avec succès.

Si aucun livre avec l'identifiant donné n'est trouvé dans la liste, la fonction affiche un message
indiquant qu'aucun livre n'a été trouvé et retourne le pointeur "debut" sans modification.

La fonction ne modifie pas la liste de livres, elle ne fait que modifier le champ "emprunts" d'un livre si
celui-ci est trouvé. La fonction retourne un pointeur vers la première cellule de la liste de livres, qui
peut être le même que le pointeur "debut" ou un autre pointeur si des modifications ont été
apportées à la liste.

 Fonction emprunter livre : Cette fonction prend en entrée un pointeur vers le début d'une liste chaînée
de livres et l'identifiant d'un livre que l'on souhaite emprunter. Elle parcourt ensuite la liste chaînée à la
recherche du livre avec l'identifiant correspondant. Si le livre est trouvé et qu'il n'a pas déjà été emprunté (la
valeur de l'attribut "emprunts" est égale à 0), alors la fonction modifie la valeur de l'attribut "emprunts" à 1
pour indiquer qu'il a été emprunté et affiche un message de succès. Si le livre a déjà été emprunté (la valeur
de "emprunts" est égale à 1), alors la fonction affiche un message d'erreur. Si aucun livre avec l'identifiant
correspondant n'est trouvé dans la liste, la fonction affiche un message indiquant que le livre n'a pas été
trouvé et renvoie le pointeur vers le début de la liste inchangé.

Vous aimerez peut-être aussi