Projet 4

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

My Airtel INSTALLER

 TICKER ALGORITHME ALGORITHME ALGORITHME  

Home Privacy Policy Contact Us    

BASE DE DONNÉES PYTHON ALGORITHME (COURS) ALGORITHME (EXERCICES) LES FONCTIONS EN ALGORITHME C (EXERCICES) C (COURS) JAVA 

POO EN JAVA C++ POO EN C++ MINI-PROJETS LANGAGE C#

Accueil  structures de données  projet 4

projet 4
SOCIAL PLUGIN
by Le chemin vers la programmation - mai 18, 2021

   

CATEGORIES

My Airtel
My Airtel Est Plus Simple

INSTALLER
Nom du sponsor
Ouvrir
appnebula.co

L’objectif est de créer un programme permettant la gestion d’une bibliothèque, cette bibliothèque
contient un grand nombre de livres de différentes spécialités. Chaque livre comporte un
ensemble d’informations (code, titre, spécialité, auteur et édition).
On considère les structures suivantes :

typedef struct {
int jour ;
int mois ;
int annee ;
} Edition ;

typedef struct {
int code ;
char titre [30] ;
char specialite[30] ;
char auteur[30] ;
Edition edit ;
} Livre ;

#define max 100

==> Les fonctions à rédiger sont les suivantes :

1) void lecture (Livre L[max], int N ) qui permet de saisir les informations de N livres.

2) void afficher (Livre L[max], int N ) cette fonction permet d’afficher les informations de N
livres.

3) int comparer (Edition x , Edition y ) qui permet de comparer deux dates d’éditions, et
retourne ( -1 si x avant y, 0 si x et y sont identiques , 1 si x après y ).

4) void ordre_edition (Livre L[max] , int N ) permet de classer les livres du tableau L par ordre,
selon la date d’édition.

5) Livre * livres_auteur (Livre L[max] , int N , char nom[30] , int * k ) cette fonction permet de
retourner un tableau contenant les livres d’un auteur passé en paramètre (nom). L
représente un tableau contenant N Livres et k sert à mémoriser la taille du tableau
retourné.

6) void supprimer ( Livre L[max] , int * N , char nom[30] ) cette fonction permet de supprimer
les livres d’un auteur passé en paramètre. N passé par adresse pour modifier la taille du
tableau après la suppression.

Correction

1)
void lecture (Livre L[max],int N ){
int i;
for ( i=0; i<N ; i++)
{ printf("Entrer le code:"); scanf("%d",&L[i].code);
printf("Entrer le titre: "); scanf("%s",L[i].titre);
printf(" specialite: "); scanf("%s",L[i].specialite);
printf(" L'auteur :"); scanf("%s",L[i].auteur);
printf("Date d'edition \n");
printf(" Jour:"); scanf("%d",&L[i].edit.jour);
printf(" Mois:"); scanf("%d",&L[i].edit.mois);
printf(" annee:"); scanf("%d",&L[i].edit.annee);
printf("***************************\n");
}
}

2)
void afficher (Livre L[max],int N){
int i;
for ( i=0; i<N ; i++)
{ printf("le code: %d\n",L[i].code);
printf("Le titre : %s\n",L[i].titre);
printf(" specialite :%s\n",L[i].specialite);
printf(" l'auteur : %s\n",L[i].auteur);
printf("Date d'edition: %d/%d/%d \n",
L[i].edit.jour,L[i].edit.mois,L[i].edit.annee);

printf("****************************\n");
}
}

3)

int comparer(Edition x ,Edition y)


{ if(x.annee < y.annee ) return -1;
if(x.annee > y.annee ) return 1 ;
if(x.annee == y.annee && x.mois < y.mois ) return -1 ;
if(x.annee == y.annee && x.mois > y.mois ) return 1 ;
if(x.annee == y.annee && x.mois == y.mois && x.jour < y.jour) return -1 ;
if(x.annee == y.annee && x.mois == y.mois && x.jour > y.jour) return 1 ;
if(x.annee == y.annee && x.mois == y.mois && x.jour == y.jour) return 0 ;
}

4)

void ordre_edition(Livre L[max],int N)


{ Livre aide; int i,j;

for( i=0; i <N-1; i++)


{ for( j=i+1; j <N; j++)
{
if(L[i].edit.annee > L[j].edit.annee)
{ aide = L[i]; L[i] = L[j] ; L[j]= aide ;}
if(L[i].edit.annee == L[j].edit.annee &&
L[i].edit.mois > L[j].edit.mois)
{ aide = L[i]; L[i] = L[j] ; L[j]= aide ; }

if(L[i].edit.annee == L[j].edit.annee &&


L[i].edit.mois == L[j].edit.mois &&
L[i].edit.jour > L[j].edit.jour)
{ aide = L[i]; L[i] = L[j] ; L[j]= aide ; }
}
}
}

5)

Livre * livres_auteur(Livre L[max],int N ,char nom[30],int *k)


{ Livre tab[max];
int i;
*k = 0 ;
for ( i=0; i<N ; i++)
{ if(strcmp(L[i].auteur,nom)==0)
{ tab[*k] = L[i];
(*k)++ ;
}
}
return tab;
}

6)

void supprimer (Livre L[max],int *N,char nom[30])


{ int i,j;
for ( i=0; i<*N ; i++)
{if(strcmp(L[i].auteur,nom)==0)
{
for (j=i;j<*N ;j++) L[j] = L[j+1];
(*N)--; i--;
}
}
}

Tags Exercices corrigées Langage C Mini projets Programmation structures de données

 Facebook  Twitter    

CES POSTS POURRAIENT VOUS INTÉRESSER

EXERCICES CORRIGÉES EXERCICES CORRIGÉES EXERCICES CORRIGÉES

projet 7 projet 6 projet 5


May 20, 2021 May 19, 2021 May 19, 2021

ENREGISTRER UN COMMENTAIRE

0 Commentaires

Saisir un commentaire

Copyright © 2023 Coode Maroc Home Privacy Policy Contact Us

Vous aimerez peut-être aussi