Informatique : Gestion informatisée d’une Bibliothèque
Barkat Youcef Islam
Boularas Lyna Section : 02 Groupe : 03 I. Introduction :
Ce Projet Informatique porte sur un logiciel déjà existant
initialement inventé au cours de l'année 1972 dans les Laboratoires Bell. Il était développé en même temps qu’UNIX par Dennis Ritchie et Ken Thompson. Ken Thompson avait développé un prédécesseur de C, le langage B, qui est lui-même inspiré de BCPL. Dennis Ritchie a fait évoluer le langage B dans une nouvelle version suffisamment différente, en ajoutant notamment les types, pour qu’il soit appelée C.
Le sujet que m’a proposé le professeur se porte sur les points
suivants :
Tout d’abord, il me fallait voir d’un moyen informatisé si je me
retrouverai confronté à des problèmes d’organisation de la bibliothèque de cette Université. Si oui, je devrais identifier son origine et trouver une solution en programmation pour des utilisations ultérieures. Puis, il est apparu que le programme nécessitait l’utilisation de deux liens vers des Bibliothèques STDIO.H et STDLIB.H afin de pouvoir fonctionner. Après, en utilisant des fonctions, je devais donc trouver comment modifier le programme pour l’organisation de cette bibliothèque universitaire. II. Déroulement des Fonctions utilisées pour le programme : Tout d’abord, j’ai commencé par la déclaration de l’enregistrement livre en premier lieu qui contient toutes les informations d’un livre de la bibliothèque de l’Université et qui sont : le code, le nom de l’auteur, le titre et le nombre de copies du livre ; en second lieu l’enregistrement membre qui contient le nom, le prénom, le matricule d’un étudiant et le nombre de livres empruntés de la bibliothèque par ce dernier.
J’ai créé une Bibliothèque de 84 livres en les mettant dans un fichier
Bibl {Fichier d’enregistrement (livre)}.
A l’aide de la fonction ARRG on a pu arranger le vecteur Books qui
englobe le code des livres d’un étudiant lors de l’emprunt et la restitution.
Pour afficher à chaque fois la Bibliothèque créé à la base après
chaque modification, j’ai réalisé la fonction AfficheBiblio qui nous aide à afficher toutes les informations concernant un livre (le code, le nom de l’auteur, le titre et le nombre de copies d’un livre) en les affichant 4 par 4 (A chaque fois on affiche 4 livres de la bibliothèque).
Après chaque restitution d’un livre de la part d’un étudiant à la
bibliothèque, il faut ajouter une copie au nombre de copies du livre, et ce en utilisant la fonction AjoutCopie qui fonctionne de cette façon : On entre le code du livre que l’on veut ajouter et on le compare avec le code des livres déjà existants. Une fois que le code entré est égal à un de ceux des livres de la bibliothèque le nombre de copies augmente d’un.
Après chaque emprunt d’un livre de la part d’un étudiant à la
bibliothèque, il faut supprimer une copie du livre, pour cela on utilise la fonction SuppCopie qui fonctionne comme suit :
On entre le code que l’on veut supprimer, on le compare avec le code
des autres livres, une fois l’égalité trouvée, le nombre de copies baisse d’un.
On ajoute un nouveau livre à la bibliothèque, en utilisant la fonction
AjouterLivre. La modification du fichier Bibl étant impossible, j’ai utilisé un autre fichier temporaire X, j’ai recopié toute la bibliothèque (les livres) dans ce fichier X ensuite j’ai écrit les informations mises à ma disposition du livre que l’on voulait ajouter. Après avoir rempli le fichier temporaire, j’ai supprimé le fichier de base Bibl en utilisant l’instruction remove puis j’ai donné au fichier X le même nom que le fichier de base.
Pour vérifier la disponibilité d’un Livre dans une bibliothèque, j’ai
utilisé la fonction Dispo qui compare le code qui sera donné par l’utilisateur avec le code des livres de la bibliothèque. Une fois que j’ai trouvé l’égalité j’ai vérifié si le nombre de copies du livre du code donné était supérieur à 0. Si oui, le livre est donc disponible sinon il ne l’est pas. J’ai aussi élaboré un fichier nommé Fmembre qui contient les étudiants qui sont membres de la bibliothèque {Fichier d’enregistrement (membre)}.
Pour afficher un étudiant qui est membre de la bibliothèque j’ai créé
la fonction Affichagememb qui nous aide à afficher toutes les informations concernant un membre de la bibliothèque universitaire (le Matricule, Nom et prénom d’un membre) et cet affichage se fait 4 par 4 (A chaque fois on affiche 4 membres de la bibliothèque).
A chaque fois qu’un étudiant voudrait emprunter un livre on utilise la
fonction Eprnt qui fonctionne de cette manière :
Après avoir donné le matricule de l’étudiant voulant emprunter un
livre ainsi que son code, j’ai comparé le matricule donné avec le matricule des étudiants qui sont membres (Fichier Fmembre). Une fois que j’ai trouvé le même matricule, j’ai écrit le code du livre dans le vecteur qui contient le code des livres empruntés par cet étudiant juste après avoir vérifié que la case n’est pas vide (car j’ai initialisé tout le vecteur à 0, et quand c’est différent de 0 cela veut dire qu’il s’agit du code d’un livre déjà emprunté). Mais quand un étudiant membre emprunte un livre de la Bibliothèque il faut supprimer une copie du livre du code donné et pour cela j’ai fait appel à la fonction SuppCopie.
Quand il s’agit de la restitution d’un livre, j’ai utilisé la fonction rndr
qui marche comme suit :
Après avoir donné le matricule de l’étudiant voulant rendre un livre à
la bibliothèque et le code du livre, j’ai comparé le matricule donné avec le matricule des étudiants qui sont membres (Fichier Fmembre). Une fois que je l’ai trouvé j’écrase le code en le remplaçant par 0 (car après avoir rendu le livre il n’existe plus dans le vecteur alors j’ai réinitialisé cette case à 0). Après chaque restitution on applique la fonction ARRG.
Sans oublier que quand un étudiant membre rend un livre à la
bibliothèque, il est nécessaire d’ajouter une copie du livre du code donné c’est pourquoi j’ai fait appel à la fonction AjoutCopie.
Afin d’afficher le titre et le nom de l’auteur de chaque livre emprunté
par un étudiant membre de matricule donné, j’ai créé la fonction AffichLivEtd qui commence par la comparaison du matricule donné avec celui des membres du fichier Fmembre. Une fois trouvé j’ai vérifié que le nombre de livres empruntés n’était pas nul, ensuite j’ai ouvert un nouveau fichier temporaire tmp, j’ai mis tous les codes des livres empruntés par l’étudiant dans ce fichier temporaire, et puis j’ai comparé chaque code du fichier tmp avec les codes du fichier de la bibliothèque. A chaque fois que je trouve l’égalité j’affiche le titre et le nom de l’auteur du livre. Enfin, j’ai supprimé le fichier temporaire en utilisant l’instruction remove.
Quand il s’agit d’ajout d’un membre à la bibliothèque j’ai élaboré la
fonction AjoutMemb comme suit :
Tout d’abord il fallait donner les informations concernant le nouveau
membre de cette bibliothèque (Matricule, Nom, Prénom et les codes des livres empruntés). J’ai ouvert le fichier initial contenant tous les membres et les ai recopié dans le fichier tmp jusqu’à trouver le membre dont le matricule est supérieur à celui du nouveau. Dans ce cas-là, j’ai d’abord recopié les informations concernant le nouveau membre avant de recopier le reste. Ensuite, j’ai procédé à la suppression du fichier initial et ai attribué Fmembre comme nouveau nom au fichier tmp.
Ce programme réalise donc à l’aide des fonctions citées ci-dessus,
toutes les opérations aussi présentes dans le programme. III. Conclusion : Ce projet m’a été proposé par mon Professeur de TP Algorithme, et le travail a été réalisé par un Binôme. En Conclusion, Je peux donc affirmer que ce projet m’a beaucoup enrichi dans le domaine d’informatique et plus particulièrement, la programmation et qui a été en fin de compte, un travail agréable car le résultat est concret et très satisfaisant.