Académique Documents
Professionnel Documents
Culture Documents
Le Rapport de Mini Projet:: 1-Fonction Ajouter Un Livre
Le Rapport de Mini Projet:: 1-Fonction Ajouter Un Livre
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 :
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.
À 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 :
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é.
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é.