Aide pour un projet C

widad13 Messages postés 1 Date d'inscription vendredi 13 janvier 2012 Statut Membre Dernière intervention 30 janvier 2012 - 30 janv. 2012 à 22:47
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 31 janv. 2012 à 09:51
Bonsoir,

j'ai un projet a faire; il s'agit d'ecrire un programme pour la gestion d'une biblioteque.

j'ai trouvé une partie du code bien fait a vue d'oeil, mais je ne comprend pas trop....
Est ce que quelqu'un aurait la gentillesse de me le commenter?
Je vous remercie d'avance!!!



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <ctype.h>
#include<time.h>

#include "Librairie.h"


int main()
{
/*variables livres*/
int choixMenu = 0;
char auteur[TAILLE_NOM];
char code[TAILLE_CODE];
int id = 0;
int booleen = 0;
FILE* fichierLivres = NULL;
FILE* fichierCodes = NULL;
Dlist *list = NULL;
Dlist *listAutor = NULL;

/*variables lecteurs*/
FILE* fichierLecteur = NULL;
DlistLecteur *listLecteur = NULL;
char nomLecteur[TAILLE_NOM];
char prenomLecteur[TAILLE_NOM];
int idLecteur = 0;
DlistLecteur *UnLecteurTrouve = NULL;
DlistLecteur *Retardataires = NULL;

list = dlist_new();
creerMaillonLivre(fichierLivres,list);
listLecteur = InitListLecteurs();
creerMaillonLecteur(fichierLecteur,listLecteur);

do
{
listAutor = dlist_new();
tri(list);
generate_id_livre(list);



do
{
printf("\n1/ Enregistrer un nouveau livre \n");
printf("2/ Afficher la liste des livres \n");
printf("3/ Recherche par auteur\n");
printf("4/ Supprimer un livre\n");
printf("5/ Enregistrer un nouveau lecteur \n");
printf("6/ Afficher la liste des lecteurs \n");
printf("7/ Desinscrire lecteur \n");
printf("8/ Effectuer un emprunt\n");
printf("9/ Rente de livre\n");
printf("10/ Afficher la liste des lecteurs en retard\n");
printf("11/ Quitter.\n");
scanf("%d",&choixMenu);
}while(choixMenu < 1 || choixMenu > 11);
switch(choixMenu)
{
case 1:
entrerLivre(fichierLivres,list);
break;
case 2:
printf("\n\n\nAffichage des livres, par ordre alphabetique:\n\n");
dlist_display(list);
break;
case 3:
printf("\n\n\nRecherche par auteur:\n");
printf("Entrez l'auteur :\n");
scanf("%s",auteur);
auteur[0] = toupper(auteur[0]);
printf("\nResultats de la recherche :\n");
listAutor = dlist_find_all(list,auteur);
dlist_display(listAutor);
break;
case 4:
printf("Entrez l'identifiant du livre a supprimer\n");
scanf("%d",&id);
booleen = dlist_find(list,id,code); /*le code du livre retourne permettra de l'identifier*/
if(compteFiche(fichierLivres,"base_livres.txt") > 1)
list = dlist_remove(list,code);
else
dlist_delete(&list);
FileLivreVersFichier(fichierLivres,list);
EntrerCode(fichierCodes,code);
break;
case 5:
entrerLecteur(fichierLecteur,listLecteur);
break;
case 6:
printf("\nAffichage des lecteurs:\n");
AfficherLecteur(listLecteur,list);
break;
case 7:
printf("Entrez les coordonnees du lecteur à desinscrire\n");
printf("A/Nom :\n"); scanf("%s",nomLecteur); printf("B/Prenom :\n"); scanf("%s",prenomLecteur);
printf("C/Identifiant :\n"); scanf("%d",&idLecteur);
UnLecteurTrouve = TrouverLecteur(listLecteur,nomLecteur,prenomLecteur,idLecteur);
if(UnLecteurTrouve != NULL)
{
printf("Lecteur supprime\n");
AfficherLecteur(UnLecteurTrouve,list);
listLecteur = SupprimerLecteur(listLecteur,idLecteur);
FileLecteursVersFichier(fichierLecteur,listLecteur);
}
else
printf("L'individu n'est pas dans la liste\n");
break;
case 8:
Emprunts(list,listLecteur,fichierLecteur,fichierLivres);
break;
case 9:
renteLivre(list,listLecteur,fichierLecteur,fichierLivres);
break;
case 10:
printf("Liste des lecteurs en retard :\n");
Retardataires = listeRetards(listLecteur,fichierLecteur);
AfficherLecteur(Retardataires,list);
break;
case 11:
printf("\nSortie du programme.\n");
FileLivreVersFichier(fichierLecteur,listLecteur);
FileLivreVersFichier(fichierLivres,list);
dlist_delete(&list);
SupprimerListeLecteur(&listLecteur);
break;
}
dlist_delete(&listAutor);
}while(choixMenu != 11);


return 0;
}



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <ctype.h>
#include<time.h>

#include "Librairie.h"

int tempDemprunt(int annee,int mois,int jour)
{
time_t today;
struct tm datePret;

datePret.tm_mday = jour;
datePret.tm_mon = mois;
datePret.tm_year = annee;
datePret.tm_hour = 0;
datePret.tm_min = 0;
datePret.tm_sec = 0;

today = time(NULL);

if(difftime(today, mktime(&datePret)) > 24*3600*DUREE_PRET)
return 1;
else
return 0;
}

void afficherDateRetour(int annee,int mois,int jour)
{
/*Les prets durent 5 jours*/
if(mois 1) jour jour + JANVIER;
if(mois 2) jour jour + FEVRIER;
if(mois 3) jour jour + MARS;
if(mois 4) jour jour + AVRIL;
if(mois 5) jour jour + MAI;
if(mois 6) jour jour + JUIN;
if(mois 7) jour jour + JUILLET;
if(mois 7) jour jour + AOUT;
if(mois 9) jour jour + SEPTEMBRE;
if(mois 10) jour jour + OCTOBRE;
if(mois 11) jour jour + NOVEMBRE;
jour = jour + DUREE_PRET;
if(jour < JANVIER)
{
if(mois == 0)
mois ++;
}
if(jour > JANVIER && jour < FEVRIER)
{
if(mois == 1)
mois ++;
jour = jour - JANVIER;
}
if(jour > FEVRIER && jour < MARS)
{
if(mois == 2)
mois ++;
jour = jour - FEVRIER;
}
if(jour > MARS && jour < AVRIL)
{
if(mois == 3)
mois ++;
jour = jour - MARS;
}
if(jour > AVRIL && jour < MAI)
{
if(mois == 4)
mois ++;
jour = jour - AVRIL;
}
if(jour > MAI && jour < JUIN)
{
if(mois == 5)
mois ++;
jour = jour - MAI;
}
if(jour > JUIN && jour < JUILLET)
{
if(mois == 6)
mois ++;
jour = jour - JUIN;
}
if(jour > JUILLET && jour < AOUT)
{
if(mois == 7)
mois ++;
jour = jour - JUILLET;
}
if(jour > AOUT && jour < SEPTEMBRE)
{
if(mois == 8)
mois ++;
jour = jour - AOUT;
}
if(jour > SEPTEMBRE && jour < OCTOBRE)
{
if(mois == 9)
mois ++;
jour = jour - SEPTEMBRE;

}
if(jour > OCTOBRE && jour < NOVEMBRE)
{
if(mois == 10)
mois ++;
jour = jour - OCTOBRE;
}
if(jour > NOVEMBRE && jour < DECEMBRE)
{
if(mois == 11)
mois ++;
jour = jour - NOVEMBRE;
}
if(jour > DECEMBRE)
{
annee ++;
mois = 1;
jour = jour - DECEMBRE;
}
printf("%d / %d / %d\n",jour,mois,annee);
printf("\n");
}

1 réponse

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
31 janv. 2012 à 09:51
Hello,
C'est une gestion de livre au moyen d'une liste chainée. Le code n'est pas complet mais les noms des variables/méthodes sont suffisamment explicites pour comprendre.
Si tu ne le comprends pas, je te conseille de repartir de zéro...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous