Exercice 1
Pour avoir une immunité collective contre le virus COVID19, le Maroc a lancé un programme pour la vaccination d’un grand nombre de citoyens, ce qui nécessite une gestion efficace pour l’opération de vaccination et le suivi de citoyens vaccinés. Les types des vaccins adoptés sont : Astrazeneca et Sinopharm. L’immunité d’un citoyen contre le virus COVID19 nécessite deux doses pour le vaccin utilisé, la deuxième dose doit être programmée après une période précise par rapport à la première dose, sachant que la période varie entre deux à quatre semaines.
La gestion des citoyens concernés par la vaccination est réalisée via un tableau de structures, où chaque structure représente un citoyen. Les informations qui concernent un citoyen sont : le numéro de la carte d’identité nationale (cin) , le nom (nom), le prénom(prenom), le type du vaccin (type), la date de la première dose (date_prem) et le nombre de jours entre la première et la deuxième dose (nbj).
On considère les structures suivantes :
typedef struct {
int jour ;
int mois ;
int annee ;
} Date ;
typedef struct {
char type[30] ;
Date date_prem ;
int nbj ;
} Vaccin ;
typedef struct {
char cin[30] ;
char nom [30] ;
char prenom[30];
Vaccin vac ;
} Citoyen ;
#define max 100
=>Les fonctions à rédiger sont les suivantes :
1) void lecture (Citoyen C[max] , int N) qui permet de saisir les informations des citoyens concernés par la vaccination. N représente le nombre total de citoyens.
2) void affichage (Citoyen C[max] , int N) qui permet d’afficher les informations des
citoyens concernés par la vaccination. N représente le nombre total de citoyens.
3) void totalVaccin (Citoyen C[max] , int N) qui permet de calculer et afficher le nombre de citoyens qui vont prendre un type du vaccin, sachant que C un tableau contenant les citoyens concernés par la vaccination. N représente le nombre total de citoyens.
4) void CitoyenVac (Citoyen C[max] , int N, char type[30],Citoyen tab[max], int * k) qui permet de remplir un tableau des citoyens ( tab) contenant les citoyens qui vont prendre le vaccin spécifié par le type (type). C représente un tableau de citoyens et N représente le nombre total de citoyens et k sert à mémoriser la taille du tableau (tab).
5) Date * deuxDose (Citoyen C[max] , int N, char type[30]) qui permet de retourne un tableau de type Date ( un pointeur sur Date) contenant les dates de la deuxième dose pour les citoyens concernés par un type de vaccin spécifié par le troisième argument de la fonction. C représente un tableau de citoyens et N représente le nombre total de citoyens.
6) void AfficheDate(Citoyen C[max] , int N, char cin[20] ) qui permet d’afficher les dates des deux doses programmées pour un citoyen identifié par le CIN. C représente un tableau de citoyens et N représente le nombre total de citoyens.
Correction
1)
void Lecture(Citoyen C[max],int N){
int i;
for ( i=0; i<N ; i++)
{ printf("Entrer Le CIN :"); scanf("%s",C[i].cin);
printf("Entrer Le nom :"); scanf("%s",C[i].nom);
printf("Entrer Le prenom :"); scanf("%s",C[i].prenom);
printf("Entrer le type de vaccin :"); scanf("%s",C[i].vac.type);
printf("Entrer la date de vaccin \n");
printf(" Entrer le jour :"); scanf("%d",&C[i].vac.date_prem.jour);
printf(" Entrer le mois :"); scanf("%d",&C[i].vac.date_prem.mois);
printf(" Entrer l'annee :"); scanf("%d",&C[i].vac.date_prem.annee);
printf("Entrer Le nombre de jours entre les deux doses :");
scanf("%d",&C[i].vac.nbj);
printf("******************************\n");
}
}
2)
void Affichage(Citoyen C[max],int N){
int i ;
for ( i=0; i<N ; i++)
{ printf("Le CIN : %s\n",C[i].cin);
printf("Le nom : %s\n",C[i].nom);
printf("Le prenom :%s\n",C[i].prenom);
printf("Le type de vaccin : %s\n",C[i].vac.type);
printf("La date de vaccin: %d/%d/%d\n ", C[i].vac.date_prem.jour , C[i].vac.date_prem.mois, C[i].vac.date_prem.annee);
printf("Le nombre de jours entre les deux doses : %d\n",C[i].vac.nbj);
printf("******************************\n");
}
}
3)
void totalVaccin (Citoyen C[max] , int N)
{ int i,Nb_Astra=0,Nb_Sino=0 ;
for ( i=0; i<N ; i++)
{ if(strcmp(C[i].vac.type,"Astrazeneca")==0)
Nb_Astra++;
else Nb_Sino++;
}
printf("Le nombre de citoyens qui vont Astrazenica %d\n",Nb_Astra);
printf("Le nombre de citoyens qui vont Sinopharme %d\n",Nb_Sino);
}
4)
void CitoyenVac (Citoyen C[max],int N,char type[30],Citoyen tab[max],int * k)
{ Citoyen tab[max];
int i;
*k =0;
for ( i=0; i<N ; i++)
{ if(strcmp(C[i].vac.type,type)==0)
{ tab[*k] = C[i];
(*k)++;
}
}
}
5)
Date * deuxDose(Citoyen C[max],int N ,char type[30])
{ int i,j=0;
Date dates[max];
for ( i=0; i<N ; i++)
{ if(strcmp(C[i].vac.type,type)==0)
{ dates[i].jour = ( C[i].vac.date_prem.jour + C[i].vac.nbj )%30;
dates[i].mois = ( C[i].vac.date_prem.mois +(C[i].vac.date_prem.jour + C[i].vac.nbj)/30)%12;
dates[i].annee = C[i].vac.date_prem.annee +(C[i].vac.date_prem.mois +(C[i].vac.date_prem.jour + C[i].vac.nbj)/30)/12;
}
}
return dates;
}
6)
void AfficheDate(Citoyen C[max],int N,char cin[20])
{ int i,j=0;
Date d;
for ( i=0; i<N ; i++)
{ if( strcmp(C[i].cin,cin)==0)
{
d.jour =(C[i].vac.date_prem.jour + C[i].vac.nbj )%30;
d.mois = ( C[i].vac.date_prem.mois +(C[i].vac.date_prem.jour + C[i].vac.nbj)/30)%12;
d.annee = C[i].vac.date_prem.annee +(C[i].vac.date_prem.mois +(C[i].vac.date_prem.jour + C[i].vac.nbj)/30)/12;
printf(" %s %s %s \n",C[i].nom,C[i].prenom,cin);
printf("La date de la premiere dose: %d/%d/%d\n",C[i].vac.date_prem.jour,C[i].vac.date_prem.mois,C[i].vac.date_prem.annee);
printf("La date de la deuxieme dose: %d/%d/%d",d.jour,d.mois,d.annee);
}
}
}
Exercice 2
Dans le département d’informatique de la faculté des sciences, il existe un laboratoire, appelé « Traitement de l’information et Aide à la Décision », qui regroupe un ensemble de professeurs, chercheurs et doctorants. Ce laboratoire produit chaque année un ensemble de productions scientifiques. L’objectif de ce sujet est la gestion automatique de cette production en utilisant un tableau de structures, où chaque production est une structure. Une production est caractérisée par les informations suivantes : un code de référence (ref), le titre de la production (titre), l’auteur principal (aut1), le directeur de la thèse (aut2), l’encadrant (aut3), le type de production (type : thèse, publication ou communication), et la date de production (date).
On considère les structures suivantes :
typedef struct {
int jours ;
int mois ;
int annee ;
} Date;
typedef struct {
int ref ;
char titre [100] ;
char aut1[40] ;
char aut2[40];
char aut3[40] ;
char type[40] ;
Date date ;
} Production;
#define max 100
Les fonctions à rédiger sont les suivantes:
1) void lecteure ( Production P[max], int N) qui permet de saisir les informations de N productions.
2) void Affichage (Production P[max] , int N) qui permet d’afficher les informations de N productions.
3) void NombreProductions (Production P[max] , int N) qui permet de calculer et
afficher le nombre de production pour chaque type ( thèse, publication et communication) sachant que P un tableau contenant les productions et N représente le nombre total de productions.
4) Production * RechType (Production P[max] , int N , char type[30] , int * k) qui permet de rechercher et retourne un tableau des productions ( un pointeur sur Production) contenant les Productions d’un type donné ( type). P représente un tableau de productions et N représente le nombre total de productions, et le troisième argument k sert à mémoriser le nombre de productions enregistrés dans le tableau retourné.
5) void SuppProd (Production P[max] , int * N, char auteur[30]) qui permet de
supprimer les productions d’un auteur ( qui peut être un auteur principal, un directeur de thèse ou bien un encadrant). Et après la suppression, afficher les productions supprimées.
6) void AffichOrdre ( Production P[max] , int N ) qui permet d’afficher les productions par ordre croissant selon la date de production. P représente un tableau de productions et N représente le nombre total de productions.
Correction
1)
void Lecture(Production P[max],int N){
int i;
for ( i=0; i<N ; i++)
{ printf("Entrer la reference :"); scanf("%d",&P[i].ref);
printf("Entrer Le titre : "); scanf("%s",P[i].titre);
printf("Entrer Le nom de l'auteur : "); scanf("%s",P[i].aut1);
printf("Entrer Le nom du directeur :"); scanf("%s",P[i].aut2);
printf("Entrer le nom de l'encadrant :"); scanf("%s",P[i].aut3);
printf("Entrer le type de la production :"); scanf("%s",P[i].type);
printf("Entrer la date de la prodction: \n");
printf(" Entrer le jour :"); scanf("%d",&P[i].date.jour);
printf(" Entrer le mois :"); scanf("%d",&P[i].date.mois);
printf(" Entrer l'annee :"); scanf("%d",&P[i].date.annee);
printf("*********************************\n");
}
}
2)
void Affichage(Production P[max],int N){
int i ;
for ( i=0; i<N ; i++)
{printf(" La reference : %d\n",P[i].ref);
printf(" Le titre: %s\n",P[i].titre);
printf(" Le nom de l'auteur: %s\n",P[i].aut1);
printf(" Le nom du directeur: %s\n",P[i].aut2);
printf(" Le nom de l'encadrant: %s\n",P[i].aut3);
printf(" Le type de la production: %s\n",P[i].type);
printf(" La date de la prodction: %d/%d/%d\n",P[i].date.jour,
P[i].date.mois,P[i].date.annee);
printf("*******************************\n");
}
}
3)
void NombreProductions(Production P[max],int N)
{ int Nb_pro_these=0,Nb_pro_pub=0,Nb_pro_commu=0 ,i;
for ( i=0; i<N ; i++)
{ if(strcmp(P[i].type,"These")==0)
Nb_pro_these++;
if(strcmp(P[i].type,"Publication")==0)
Nb_pro_pub++;
if(strcmp(P[i].type,"Communication")==0)
Nb_pro_commu++;
}
printf("Le nombre de production Thèse : %d\n",Nb_pro_these);
printf("Le nombre de production publication : %d\n",Nb_pro_pub);
printf("Le nombre de production communication : %d\n",Nb_pro_commu);
}
4)
Production * RechType(Production P[max],int N,char type[30],int *k)
{ Production tab[max];
int i;
*k = 0 ;
for ( i=0; i<N ; i++)
{ if(strcmp(P[i].type,type)==0)
{ tab[*k] = P[i];
(*k)++ ;
}
}
return tab;
}
5)
void SuppProd (Production P[max],int *N,char auteur[30])
{ Production supp[max];
int i,j,k=0;
for ( i=0; i<*N ; i++)
{ if(strcmp(P[i].aut1,auteur)==0 ||
strcmp(P[i].aut2,auteur)==0 ||
strcmp(P[i].aut3,auteur)==0)
{ supp[i]=P[i];
for ( j=i ; j<*N ; j++) P[j] = P[j+1];
(*N)--; i--; k++;
}
}
printf("la liste de productions supprimées :");
Affichage(supp,k);
}
6)
void AffichOrdre(Production P[max],int N)
{ Production aide;
int i,j;
for( i=0; i <N-1; i++)
{ for( j=i+1; j <N; j++)
{
if(P[i].date.annee > P[j].date.annee)
{ aide = P[i]; P[i] = P[j] ; P[j]= aide ;}
if(P[i].date.annee == P[j].date.annee &&
P[i].date.mois > P[j].date.mois)
{ aide = P[i]; P[i] = P[j] ; P[j]= aide ; }
if(P[i].date.annee == P[j].date.annee &&
P[i].date.mois == P[j].date.mois &&
P[i].date.jour > P[j].date.jour)
{ aide = P[i]; P[i] = P[j] ; P[j]= aide ; }
}
}
Affichage(P,N);
}
Exercice 3
Un club d’athlétisme organise chaque année une compétition de course (400 mètres et 3000 mètres) afin de sélectionner les athlètes contribuant aux compétitions nationales. Un athlète participant à la compétition est une personne identifiée par les informations suivantes : un code identifiant (code), le nom (nom), le prénom (prénom), et la date de naissance (date) et le score (score).
On considère les structures suivantes :
typedef struct {
int temps ; /* temps en seconde effectué pour terminer la course */
char distance[10] ; /* Distance de la course ( "400 m" ou "3000 m" ) */
char termine[4] ; /* Athlète a terminé la course ( "oui" ou "non" ) */
} Score ;
typedef struct {
int code ; /* code identifiant l’athlète */
char nom_prenom [10] ; /* Nom et prénom de l’athlète */
Score competition ; /* Résultat de l’athlète */
} Athlete ;
#define max 100
==> Les fonctions à rédiger sont les suivantes:
1) void Lecture (Athlete A[max], int N ) permet de saisir les informations de N athlètes.
2) void Affichage (Athlete A[max], int N ) qui permet d’afficher les informations de N athlètes.
3) void Calcul (Athlete A[max], int N) qui permet de calculer et afficher le nombre des athlètes participant à chaque type de course ( NB_400 , NB_3000 )
4) void supprimer (Athlete A[max] , int N ) qui permet de supprimer les athlètes qui n’ont pas terminé la course.
5) void chercher_400 (Athlete A[max] , int N , Athlete T[max] , int * k ) qui permet de remplir le tableau T avec des athlètes qui ont terminé la course de 400 mètres. A représente un tableau contenant N Athlètes, et le quatrième argument sert à mémoriser la taille du tableau T.
6) void affiche_ordre_400 (Athlete T[max] , int n ) qui permet de trier et afficher les informations des athlètes qui ont terminé la course 400 mètres par ordre de mérite ( Ordre croissant ). n représente le nombre total des athlètes qui ont terminé la course de 400 mètres.
Correction
1)
void Lecture (Athlete A[max],int N ){
int i;
for ( i=0; i<N ; i++)
{ printf("Entrer le code:"); scanf("%d",&A[i].code);
printf("Entrer le nom et prenom: "); scanf("%s",A[i].nom_prenom);
printf("Le temps effectue en seconde: "); scanf("%d",&A[i].competition.temps);
printf("La distance de la course:"); scanf("%s",A[i].competition.distance);
printf("Termine la course (oui ou non)?:"); scanf("%s",A[i].competition.termine);
printf("*************************\n");
}
}
2)
void Affichage (Athlete A[max],int N){
int i;
for ( i=0; i<N ; i++)
{ printf("le code: %d\n",A[i].code);
printf("Le nom et prenom: %s\n",A[i].nom_prenom);
printf("Le temps effectue en seconde:%d\n",A[i].competition.temps);
printf("La distance de la course: %s\n",A[i].competition.distance);
printf("Terminition: %s\n",A[i].competition.termine);
printf("**************************\n");
}
}
3)
void Calcul(Athlete A[max],int N)
{ int NB_400=0 , NB_3000 = 0 ,i;
for ( i=0; i<N ; i++)
{ if(strcmp(A[i].competition.distance,"400m")==0)
NB_400++;
if(strcmp(A[i].competition.distance,"3000m")==0)
NB_3000++;
}
printf("Le nombre de participant de 400m : %d\n",NB_400);
printf("Le nombre de participant de 3000m : %d\n",NB_3000);
}
4)
void Supprimer(Athlete A[max],int *N)
{ int i,j;
for ( i=0; i<*N ; i++)
{if(strcmp(A[i].competition.termine,"non")==0)
{
for (j=i;j<*N ;j++) A[j] = A[j+1];
(*N)--; i--;
}
}
}
5)
void chercher_400(Athlete A[max],int N,Athlete T[max],int * k)
{
int i ;
*k = 0;
for ( i=0; i<N ; i++)
{ if(strcmp(A[i].competition.distance,"400m")==0 &&
strcmp(A[i].competition.termine,"oui")==0)
{ T[*k] = A[i];
(*k)++ ;
}
}
}
6)
void affiche_ordre_400(Athlete T[max],int N)
{ Athlete aide;
int i,j;
for( i=0; i <N-1; i++)
{ for( j=i+1; j<N; j++)
{
if ( T[i].competition.temps > T[j].competition.temps )
{ aide = T[i]; T[i] = T[j] ;
T[j]= aide ;
}
}
}
Affichage (T,N);
}
Exercice 4
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--;
}
}
}
Exercice 5
Un centre d’immatriculation au Maroc souhaite automatiser l’enregistrement des véhicules (Neuf et occasion) via un système informatique. Ce système doit assurer les taches suivantes : l’enregistrement des véhicules, l’élaboration des cartes grises, ….etc. On vous propose de réaliser cette gestion en utilisant un tableau de structures. Chaque véhicule est identifié par les informations suivantes : Nom, prénom et CIN du propriétaire, Marque, Model, Carburant (gasoil ou essence), état (neuf ou occasion), puissance fiscale et Immatriculation. Ces informations représentent les champs des structures suivantes.
typedef struct {
int mois ;
int annee ;
} Model ;
typedef struct {
char nom_prenom[30] ;
char CIN[20] ;
char marque[20] ;
Model mod ;
char carburant[15] ;
char etat[15] ;
int fiscale ;
char Matricule[40] ;
} Vehicule ;
#define max 100
=> Les fonctions à rédiger sont les suivantes :
1) void saisir (Vehicule V[max] , int N ) permet de saisir les informations de N véhicules.
2) void afficher (Vehicule V[max] , int N ) permet d’afficher la liste de N véhicules qui sont enregistrés dans le tableau V.
3) int rechercher (Vehicule V[max] , int N , char Matricule [40] ) cette fonction
permet de rechercher un véhicule identifié par la matricule m dans le tableau V contenant N véhicules et retourne l’indice 1 dans le cas de réussite et 0 dans le cas inverse.
4) void ajouter_vehicule (Vehicule V[max] , int * N , Vehicule vc ) permet d’ajouter un véhicule vc au tableau V de N véhicules. Dans le cas où le véhicule existe déjà dans le tableau, il faut faire une mise à jour concernant le nouveau propriétaire (nom_prénom et CIN).
5) Dans le cadre de la protection de l’environnement contre la pollution et la réduction du nombre des accidents, une décision est prise pour arrêter les véhicules qui ont dépassés 25 ans de circulation par rapport à la date précisée.
void supprimer (Vehicule V[max] , int * N , int annee ) cette fonction permet de supprimer les véhicules qui ont dépassés 25 ans de circulation.
Correction
1)
void saisir (Vehicule V[max],int N){
int i;
for ( i=0; i<N ; i++)
{
printf("Entrer Nom et prenom:"); scanf("%s",V[i].nom_prenom);
printf("Entrer CIN: "); scanf("%s",V[i].CIN);
printf("Entrer marque: "); scanf("%s",V[i].marque);
printf("Entrer model \n");
printf(" mois: "); scanf("%d",&V[i].mod.mois);
printf(" annee: "); scanf("%d",&V[i].mod.annee);
printf("Carburant: "); scanf("%s",V[i].carburant);
printf("Etat : "); scanf("%s",V[i].etat);
printf("Nb cv: "); scanf("%d",&V[i].fiscale);
printf("Matricule :"); scanf("%s",V[i].Matricule);
}
}
2)
void afficher (Vehicule V[max],int N){
int i;
for ( i=0; i<N ; i++)
{ printf("Nom et prenom: %s\n",V[i].nom_prenom);
printf("CIN: %s\n",V[i].CIN);
printf("Model: %d/%d \n",V[i].mod.mois,V[i].mod.annee);
printf("Carburant: %s \n",V[i].carburant);
printf("Etat : %s \n",V[i].etat);
printf("Nb cv: %d \n",V[i].fiscale);
printf("Matricle:%s \n",V[i].Matricule);
printf("**************************\n");
}
}
3)
int rechercher (Vehicule V[max], int N,char m[40])
{ int i,existe=0;
for ( i=0; i<N ; i++) {
if( strcmp(V[i].Matricule,m)==0)
existe=1;
}
return existe;
}
4)
void ajouter_vehicule(Vehicule V[max],int *N,Vehicule vc)
{ int i;
if(rechercher(V,*N,vc.Matricule)== 1)
{ for( i=0; i < *N; i++)
{ if( strcmp(V[i].Matricule,vc.Matricule)==0)
{ strcpy(V[i].nom_prenom,vc.nom_prenom) ;
strcpy(V[i].CIN,vc.CIN);
}
}
}else
{ V[*N] = vc ; (*N)++; }
}
5)
void supprimer (Vehicule V[max],int *N,int annee)
{ int i,j;
for ( i=0; i<*N ; i++)
{if(annee-V[i].mod.annee>=25)
{
for (j=i;j<*N ;j++) V[j] = V[j+1];
(*N)--; i--;
}
}
}
0 Commentaires