0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Gestion de bibliothèque en C : fonctions clés

Le document décrit la structure d'un programme de gestion de bibliothèque en C, comprenant des fichiers pour le menu principal, les fonctions et les déclarations. Il définit deux structures, Livre et Emprunt, et propose des prototypes de fonctions pour ajouter, afficher, rechercher, supprimer, emprunter et retourner des livres. Le programme principal gère les choix de l'utilisateur via un menu, en utilisant une approche modulaire sans pointeurs.

Transféré par

cayouba062
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Gestion de bibliothèque en C : fonctions clés

Le document décrit la structure d'un programme de gestion de bibliothèque en C, comprenant des fichiers pour le menu principal, les fonctions et les déclarations. Il définit deux structures, Livre et Emprunt, et propose des prototypes de fonctions pour ajouter, afficher, rechercher, supprimer, emprunter et retourner des livres. Le programme principal gère les choix de l'utilisateur via un menu, en utilisant une approche modulaire sans pointeurs.

Transféré par

cayouba062
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

EXPLICATION UN PEU DETAILLE

Fichier Rôle
Main.c Programme principal (menu + logique de navigation)
Projet.c Fonctions qui exécutent les tâches
Projet.h Déclarations des structures et fonctions (interface)

Étape 1 : Déclaration des structures dans projet.h


Objectif :

Créer 2 types d'objets : Livre et Emprunt.

#define MAX 100

typedef struct {
char titre[50];
char auteur[30];
int annee;
int isbn;
int emprunte; // 0 = dispo, 1 = emprunté
} Livre;

typedef struct {
int isbn;
char nom[30];
char date[11]; // jj/mm/aaaa
} Emprunt;

Ces structures permettent de stocker toutes les infos nécessaires. Le champ emprunte
indique si le livre est déjà prêté.

Étape 2 : Prototypes dans projet.h


🎯 Objectif :

Préparer les fonctions modulaires qu’on va coder.

c
int ajouterLivre(Livre[], int);
void afficherLivres(Livre[], int);
void rechercherLivre(Livre[], int);
int supprimerLivre(Livre[], int);
int emprunterLivre(Livre[], int, Emprunt[], int);
void retournerLivre(Livre[], int);
EXPLICATION UN PEU DETAILLE
void afficherStat(Livre[], int, int);

🛠️Étape 3 : Fonctions dans projet.c


Voici le rôle de chaque fonction (tu peux les coder après cette logique) :

🔹 1. ajouterLivre()

 Saisie des infos (titre, auteur, année, ISBN)


 Ajoute à la liste
 Retourne le nouveau total

🔹 2. afficherLivres()

 Parcourt le tableau
 Affiche tous les livres avec numérotation et état (dispo/emprunté)

🔹 3. rechercherLivre()

 Demande un mot-clé (titre ou auteur)


 Affiche les correspondances

🔹 4. supprimerLivre()

 Demande ISBN
 Supprime le livre en le remplaçant par le dernier dans le tableau
 Retourne le nouveau total

🔹 5. emprunterLivre()

 Vérifie si le livre est dispo


 Saisie nom + date
 Change l’état à emprunté
 Ajoute à la liste des emprunts

🔹 6. retournerLivre()

 Demande ISBN
 Remet le livre à l’état disponible

🔹 7. afficherStat()

 Compte total, nombre empruntés, nombre disponibles


 Affiche les statistiques

Menu principal dans main.c


EXPLICATION UN PEU DETAILLE
Tu dois gérer les choix comme ceci :

c
int main() {
Livre livres[MAX];
Emprunt emprunts[MAX];
int nbLivres = 0, nbEmprunts = 0, choix;

do {
printf("\n1-Ajouter 2-Afficher 3-Rechercher 4-Supprimer\n");
printf("5-Emprunter 6-Retourner 7-Stats 0-Quitter\n");
printf("Choix : "); scanf("%d", &choix);

switch (choix) {
case 1: nbLivres = ajouterLivre(livres, nbLivres); break;
case 2: afficherLivres(livres, nbLivres); break;
case 3: rechercherLivre(livres, nbLivres); break;
case 4: nbLivres = supprimerLivre(livres, nbLivres);
break;
case 5: nbEmprunts = emprunterLivre(livres, nbLivres,
emprunts, nbEmprunts); break;
case 6: retournerLivre(livres, nbLivres); break;
case 7: afficherStat(livres, nbLivres, nbEmprunts);
break;
}
} while (choix != 0);

return 0;
}

📌 À chaque appel, les données sont traitées sans pointeurs, juste avec des retours de
valeur. C’est le cœur de la programmation modulaire sans complexité.

Vous aimerez peut-être aussi