1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
| #include <stdio.h>
#include <stdlib.h>
struct livre
{
char id_liv [20];
char titre [20];
char auteur [20];
int annee_edition;
char id_liv_suiv [20];
};
struct date
{
int jours;
int mois;
int annee;
};
struct maison
{
int identifiant;
char libelle [20];
struct date date_crea;
char id [20];
struct livre liste_liv[100];
};
void remplir (int nb,int nl,struct maison *tbib)
{
struct maison *p;
struct livre *liste_liv;
struct liste_liv *p2;
for (p=tbib; p<tbib+nb; p++)
{
printf ("Donnez l'identifiant de la maison : ");
scanf ("%d",&p->identifiant);
printf ("Donnez le libelle de la maison :");
scanf ("%s",p->libelle);
printf ("Donnez la date de creation :");
scanf ("%d%d%d",&p->date_crea.jours,&p->date_crea.mois,&p->date_crea.annee);
printf ("Donnez l'id du premier livre de la maison d'edition :");
scanf ("%s",p->id);
for (p2=p->liste_liv; p2<p->liste_liv+nl; p2++)
{
printf ("Donnez l'id du livre :");
scanf ("%s",p->p2.id_liv);
printf ("Donnez le titre et le titre de l'auteur du livre :");
scanf ("%s%s",p->p2.titre,p->p2.auteur);
printf ("Donnez l'annee d'edition du livre :");
scanf ("%d",&p->p2.annee_edition);
printf ("Donnez l'id du livre suivant :");
scanf ("%s",p->p2.id_liv_suiv);
}
}
}
void main ()
{
int nb,nl;
struct liste_liv *p2;
struct maison *tbib;
struct maison *p;
p=tbib;
do
{
printf ("Donnez le nombre de maisons d'editions :");
scanf ("%d",&nb);
}
while ((nb<0)||(nb>60));
tbib=(struct maison*)malloc(nb*sizeof(struct maison));
do
{
printf ("Donnez le nombre de livres d'une maison d'edition :");
scanf ("%d",&nl);
}
while ((nl<0)||(nl>60));
remplir (nb,nl,tbib);
} |
Partager