@ -2,10 +2,9 @@
int Ouverture ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int tNbActivitesJour [ ] , int tDate [ ] , int tmax , int * pasAct )
{
int pasMembres , pasAct ;
int pasMembres ;
pasMembres = OuvertureMembres ( tNoCarte , tage , tPointsCarte , tCarteActive , tmax ) ;
pasAct = OuvertureActivitesJour ( tNbActivitesJour , tDate , tmax ) ;
* pasAct = pasAct ;
* pasAct = OuvertureActivitesJour ( tNbActivitesJour , tDate , tmax ) ;
return pasMembres ;
}
@ -15,13 +14,13 @@ int OuvertureMembres(int tNoCarte[], int tage[], int tPointsCarte[], int tCarteA
int NoCarte , age , pointsCarte , CarteActive ;
FILE * flot ;
flot = fopen ( " membres.don " , " r " ) ;
if ( flot = = NULL )
if ( flot = = NULL )
{
printf ( " Pb d'ouverture du fichier membres.don \n " ) ;
return - 1 ;
}
fscanf ( flot , " %d%d%d%d " , & NoCarte , & age , & pointsCarte , & CarteActive ) ;
while ( ! feof ( flot ) )
while ( ! feof ( flot ) )
{
if ( i = = tmax )
{
@ -45,15 +44,15 @@ int OuvertureActivitesJour(int tNbActivitesJour[], int tDate[], int tmax)
int Date , nbActivitesJour ;
FILE * jour ;
jour = fopen ( " ActivitesJour.don " , " r " ) ;
if ( jour = = NULL )
if ( jour = = NULL )
{
printf ( " Pb d'ouverture du fichier ActivitesJour.don \n " ) ;
return - 1 ;
}
fscanf ( jour , " %d%d " , & Date , & nbActivitesJour ) ;
while ( ! feof ( jour ) )
while ( ! feof ( jour ) )
{
if ( i = = tmax )
if ( i = = tmax )
{
printf ( " Tableau plein \n " ) ;
fclose ( jour ) ;
@ -91,95 +90,174 @@ int choixMenuAffichage(void)
printf ( " \t Gestion des matières \n " ) ;
printf ( " 1. \t Affichage des informations d'un adhérent \n " ) ;
printf ( " 2. \t Affichage des informations de tous les adhérents \n " ) ;
printf ( " 3. \t Affichage du nombre d’ entrées totale d ans la journée\n " ) ;
printf ( " 4. \t Affichage du nombre d'entrées totale de toutes les journées \n " ) ;
printf ( " 3. \t Affichage du nombre d’ entrées totale d e toutes les journée\n " ) ;
printf ( " 4. \t Affichage du nombre d'entrées totale de puis le début \n " ) ;
printf ( " 5. \t Affichage du nombre total d'adhérents \n " ) ;
printf ( " 6. \t quitter \n " ) ;
printf ( " \n option choisie : \n " ) ;
scanf ( " %d " , & choix ) ;
return choix ;
}
void Affichage1Adherent ( )
{
}
void AffichageTousAdherents ( )
int rechercheAdherent ( int tNoCarte [ ] , int nbelem , int NoCarte , int * trouve )
{
int i ;
for ( i = 0 ; i < nbelem ; i + + )
{
if ( tNoCarte [ i ] = = NoCarte )
{
* trouve = 1 ;
return i ;
}
if ( tNoCarte [ i ] > NoCarte )
{
* trouve = 0 ;
return i ;
}
}
}
int rechercheAdherent ( int tNoCarte [ ] , int tmax , int nbelem )
{
int i = 0 , NoCarte ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
while ( i < tmax & & tNoCarte [ i ] ! = NoCarte )
{
i + + ;
}
if ( i = = tmax )
{
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return - 1 ;
}
else
{
return i ;
}
}
void AffichageNbEntreesJour ( )
void Affichage1Adherent ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int nbelem )
{
int pas , NoCarte , CarteActive , trouve ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
printf ( " N°_de_carte \t Age Points Carte_active \n " ) ;
printf ( " \t %d \t %d \t %d \t %d \n " , tNoCarte [ pas ] , tage [ pas ] , tPointsCarte [ pas ] , tCarteActive [ pas ] ) ;
}
else
{
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return ;
}
}
void AffichageTousAdherents ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int nbelem )
{
int i ;
printf ( " N°_de_carte \t Age Points Carte_active \n " ) ;
for ( i = 0 ; i < nbelem ; i + + )
{
printf ( " \t %d \t %d \t %d \t %d \n " , tNoCarte [ i ] , tage [ i ] , tPointsCarte [ i ] , tCarteActive [ i ] ) ;
}
}
void AffichageNbEntreesTousJours ( )
void AffichageNbEntreesTousJour ( int tNbActivitesJour [ ] , int tDate [ ] , int nbelem )
{
int i ;
printf ( " Date \t Nb_Activites \n " ) ;
for ( i = 0 ; i < nbelem ; i + + )
{
printf ( " \t %d \t %d \n " , tDate [ i ] , tNbActivitesJour [ i ] ) ;
}
}
void AffichageNbAdherents ( )
void AffichageNb EntreesTotal( int tNbActivitesJour [ ] , int nbelem )
{
int i , somme = 0 ;
for ( i = 0 ; i < nbelem ; i + + )
{
somme = somme + tNbActivitesJour [ i ] ;
}
printf ( " Le nombre total d'entrées est de %d depuis le début. \n " , somme ) ;
}
void AffichageNbAdherents ( int nbelem )
{
int i , somme = 0 ;
for ( i = 0 ; i < nbelem ; i + + )
{
somme = somme + 1 ;
}
printf ( " Le nombre total d'adhérents est de %d. \n " , somme ) ;
}
void gestionMenus ( void )
{
int tNoCarte [ 20 ] = { 0 } , tage [ 20 ] = { 0 } , tPointsCarte [ 20 ] = { 0 } , tCarteActive [ 20 ] = { 0 } ;
int tDate [ 20 ] = { 0 } , tNbActivitesJour [ 20 ] = { 0 } ;
int tmax = 20 , nbelem , choix , pasAct ;
nbelem = Ouverture ( tNoCarte , tage , tPointsCarte , tCarteActive , tNbActivitesJour , tDate , tmax , & pasAct ) ;
if ( nbelem < 0 )
if ( nbelem < 0 )
{
printf ( " Erreur d'ouverture du fichier ou tableau plein !!! \n " ) ;
return ;
return ;
}
choix = choixMenu ( ) ;
while ( choix ! = 8 )
while ( choix ! = 8 )
{
if ( choix = = 1 )
if ( choix = = 1 )
{
choix = choixMenuAffichage ( ) ;
while ( choix ! = 6 )
while ( choix ! = 6 )
{
if ( choix = = 1 )
if ( choix = = 1 )
{
Affichage1Adherent ( tNoCarte , tage , tPointsCarte , tCarteActive , nbelem ) ;
}
if ( choix = = 2 )
if ( choix = = 2 )
{
AffichageTousAdherents ( tNoCarte , tage , tPointsCarte , tCarteActive , nbelem ) ;
}
if ( choix = = 3 )
if ( choix = = 3 )
{
AffichageNbEntreesTousJour ( tNbActivitesJour , tDate , nbelem ) ;
}
if ( choix = = 4 )
if ( choix = = 4 )
{
AffichageNbEntreesTotal ( tNbActivitesJour , nbelem ) ;
}
if ( choix = = 5 )
if ( choix = = 5 )
{
AffichageNbAdherents ( nbelem ) ;
}
choix = choixMenuAffichage ( ) ;
}
}
if ( choix = = 2 )
if ( choix = = 2 )
{
nbelem = AjoutAdherent ( tNoCarte , tage , tPointsCarte , tCarteActive , tmax , nbelem ) ;
}
if ( choix = = 3 )
if ( choix = = 3 )
{
ModificationAge ( tNoCarte , tage , nbelem ) ;
}
if ( choix = = 4 )
if ( choix = = 4 )
{
nbelem = SupprimmerAdherent ( tNoCarte , tage , tPointsCarte , tCarteActive , nbelem ) ;
}
if ( choix = = 5 )
if ( choix = = 5 )
{
AjoutPoints ( tNoCarte , tPointsCarte , nbelem ) ;
}
if ( choix = = 6 )
if ( choix = = 6 )
{
}
if ( choix = = 7 )
{
}
choix = choixMenu ( ) ;
}
@ -187,27 +265,158 @@ void gestionMenus(void)
exit ( 1 ) ;
}
void ModificationAge ( int tNoCarte [ ] , int tage [ ] , int nbelem )
{
int pas , NoCarte , age ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
printf ( " Entrez l'age de l'adhérent : " ) ;
scanf ( " %d " , & age ) ;
tage [ pas ] = age ;
}
else
{
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return ;
}
}
int SupprimmerAdherent ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int nbelem )
{
int pas , i , NoCarte , trouve ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
for ( i = pas ; i < nbelem ; i + + )
{
tNoCarte [ i ] = tNoCarte [ i + 1 ] ;
tage [ i ] = tage [ i + 1 ] ;
tPointsCarte [ i ] = tPointsCarte [ i + 1 ] ;
tCarteActive [ i ] = tCarteActive [ i + 1 ] ;
}
nbelem = nbelem - 1 ;
return nbelem ;
}
else
{
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return - 1 ;
}
}
int AjoutAdherent ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int tmax , int nbelem )
{
int NoCarte , age , pointsCarte , CarteActive , pas ;
char reponse ;
printf ( " Donnez l'âge de l'adhérent : \n " ) ;
scanf ( " %d " , & age ) ;
pas = rechercheAdherant ( tNoCarte , nbelem ) ;
for ( j = nbelem ; j > pas ; j - - )
{
if ( j = = tmax )
{
printf ( " Tableau plein, impossible d'ajouter un adhérent \n " ) ;
return - 1 ;
}
tNoCarte [ j ] = tNoCarte [ j - 1 ] ;
tage [ j ] = tage [ j - 1 ] ;
tPointsCarte [ j ] = tPointsCarte [ j - 1 ] ;
tCarteActive [ j ] = tCarteActive [ j - 1 ] ;
}
tNoCarte [ pas ] = pas + 1 ;
tage [ pas ] = age ;
tPointsCarte [ pas ] = 0 ;
tCarteActive [ pas ] = 0 ;
nbelem + + ;
printf ( " Le numero de carte de l'adherent qui a %d ans est %d. \n La carte n'est pas active car il n'y a pas de points dessus. \n Voulez-vous en ajouter ? (O / N) " , tage [ pas ] , tNoCarte [ pas ] ) ;
scanf ( " %*c%c " , & reponse ) ;
if ( reponse = = ' O ' | | reponse = = ' o ' )
{
AjoutPoints ( tNoCarte , tPointsCarte , tCarteActive , nbelem , pas ) ;
}
else
{
printf ( " La carte n'est pas active. \n " ) ;
return nbelem ;
}
return nbelem ;
}
void AjoutPoints ( int tNoCarte [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int nbelem , int pas )
{
int pointsCarte , NoCarte , trouve ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
printf ( " Entrez le nombre de points a ajouter: " ) ;
scanf ( " %d " , & pointsCarte ) ;
if ( pointsCarte > 0 & & pointsCarte < 20 )
{
tPointsCarte [ pas ] = pointsCarte ;
tCarteActive [ pas ] = 1 ;
printf ( " La carte est active. \n " ) ;
}
if ( pointsCarte > 20 & & pointsCarte < 50 )
{
tPointsCarte [ pas ] = pointsCarte + pointsCarte * ( 1 + ( 5 / 100.0 ) ) ;
tCarteActive [ pas ] = 1 ;
printf ( " Merci pour votre achat. Nous vous offrons 5%% supplémentaires. De plus, votre carte est active. \n " ) ;
}
if ( pointsCarte > 50 & & pointsCarte < 100 )
{
tPointsCarte [ pas ] = pointsCarte + pointsCarte * ( 1 + ( 10 / 100.0 ) ) ;
tCarteActive [ pas ] = 1 ;
printf ( " Merci pour votre achat. Nous vous offrons 10%% supplémentaires. De plus, votre carte est active. \n " ) ;
}
if ( pointsCarte > 100 )
{
tPointsCarte [ pas ] = pointsCarte + pointsCarte * ( 1 + ( 15 / 100.0 ) ) ;
tCarteActive [ pas ] = 1 ;
printf ( " Merci pour votre achat. Nous vous offrons 15%% supplémentaires. De plus, votre carte est active. \n " ) ;
}
else
{
printf ( " Le nombre de points est incorrect. \n " ) ;
printf ( " Veuillez ressaisir le nombre de points a ajouter: " ) ;
scanf ( " %d " , & pointsCarte ) ;
}
}
else
{
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return - 1 ;
}
}
int Sauvegarde ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int tNbActivitesJour [ ] , int tDate [ ] , int nbelem )
{
int i , j ;
FILE * flot , * jour ;
flot = fopen ( " membres.don " , " a " ) ;
jour = fopen ( " ActivitesJour.don " , " a " ) ;
if ( flot = = NULL )
if ( flot = = NULL )
{
printf ( " Pb d'ouverture du fichier membres.don \n " ) ;
return - 1 ;
}
if ( jour = = NULL )
if ( jour = = NULL )
{
printf ( " Pb d'ouverture du fichier ActivitesJour.don \n " ) ;
return - 1 ;
}
for ( i = 0 ; i < ( nbelem - 1 ) ; i + + )
for ( i = 0 ; i < ( nbelem - 1 ) ; i + + )
{
fprintf ( flot , " \t %d \t %d \t \t %d \t \t %d \n " , tNoCarte [ i ] , tage [ i ] , tPointsCarte [ i ] , tCarteActive [ i ] ) ;
}
for ( j = 0 ; j < ( nbelem - 1 ) ; j + + )
for ( j = 0 ; j < ( nbelem - 1 ) ; j + + )
{
fprintf ( jour , " %d \t \t %d \n " , tDate [ j ] , tNbActivitesJour [ j ] ) ;
}
@ -215,107 +424,78 @@ int Sauvegarde(int tNoCarte[], int tage[], int tPointsCarte[], int tCarteActive[
fclose ( flot ) ;
}
void ajouterPoints( int tNumCarte [ ] , int tPoints [ ] , int tailleLog )
void ModificationActivationCarte( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int nbelem )
{
int numCarte , nbPoints , trouve , index ;
char choix ;
printf ( " Entrez le numéro d'adhérent : " ) ;
scanf ( " %d " , & numCarte ) ;
index = recherche ( tNumCarte , tailleLog , numCarte , & trouve ) ;
while ( trouve = = 0 )
{
printf ( " Numéro de carte non trouvé. Veuillez réessayer. \n Entrez le numéro d'adhérent : " ) ;
scanf ( " %d " , & numCarte ) ;
index = recherche ( tNumCarte , tailleLog , numCarte , & trouve ) ;
}
printf ( " Entrez le nombre de points à ajouter : " ) ;
scanf ( " %d " , & nbPoints ) ;
printf ( " Vous voulez bien ajouter %d points à la carte n°%d ? (O/n) " , nbPoints , numCarte ) ;
scanf ( " %c%*c " , & choix ) ;
if ( choix = = ' n ' | | choix = = ' N ' ) {
printf ( " Annulation " ) ;
int NoCarte , trouve , pas ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
if ( tCarteActive [ pas ] = = 1 )
{
tCarteActive [ pas ] = 0 ;
printf ( " La carte est desactivée. \n " ) ;
}
else
{
modifierPoints ( tNumCarte , tPoints , tailleLog , numCarte , nbPoints ) ;
tCarteActive [ pas ] = 1 ;
printf ( " La carte est activée. \n " ) ;
}
}
int modifierPoints ( int tNumCarte [ ] , int tPoints [ ] , int tailleLog , int numCarte , int nbPoints )
{
int index , trouve ;
index = recherche ( tNumCarte , tailleLog , numCarte , & trouve ) ;
if ( trouve = = 0 )
{
printf ( " Numéro de carte non trouvé. Annulation de l'opétation. " ) ;
return 0 ;
}
else
{
tPoints [ index ] + = nbPoints ;
return 1 ;
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return - 1 ;
}
}
int recherche ( int tab [ ] , int tailleLog , int valeur , int * trouve )
void DebitActivitee ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int tNbActivitesJour [ ] , int tDate [ ] , int nbelem )
{
for ( int i = 0 ; i < tailleLog ; i + + )
int NoCarte , trouve , pas , pointsCarte ;
char reponse ;
printf ( " Entrez le numéro de la carte de l'adhérent recherché : " ) ;
scanf ( " %d " , & NoCarte ) ;
pas = rechercheAdherant ( tNoCarte , nbelem , NoCarte , & trouve ) ;
if ( trouve = = 1 )
{
if ( tab [ i ] = = valeur )
if ( tCarteActive [ pas ] = = 1 )
{
* trouve = 1 ;
return i ;
printf ( " Voulez-vous desactiver cette carte ? (O/N) \n " ) ;
scanf ( " %*c%c " , & reponse ) ;
if ( reponse = = ' O ' | | reponse = = ' o ' )
{
tCarteActive [ pas ] = 0 ;
printf ( " La carte est desactivée. \n " ) ;
}
else if ( tab [ i ] > valeur )
else
{
* trouve = 0 ;
return i ;
printf ( " La carte est toujours active. \n " ) ;
}
}
* trouve = 0 ;
return tailleLog ;
}
void modifierAge ( int tNumCarte [ ] , int tAge [ ] , int tailleLog )
{
int numCarte , age , index , trouve ;
char choix ;
printf ( " Entrez le numéro d'adhérent : " ) ;
scanf ( " %d " , & numCarte ) ;
index = recherche ( tNumCarte , tailleLog , numCarte , & trouve ) ;
while ( trouve = = 0 )
else
{
printf ( " Numéro de carte non trouvé. Veuillez réessayer. \n Entrez le numéro d'adhérent : " ) ;
scanf ( " %d " , & numCarte ) ;
index = recherche ( tNumCarte , tailleLog , numCarte , & trouve ) ;
}
printf ( " Entrez le nouvel âge : " ) ;
scanf ( " %d " , & age ) ;
while ( age < = 0 )
printf ( " La carte est desactivée. Voulez-vous la réactiver ? (O/N) \n " ) ;
scanf ( " %*c%c " , & reponse ) ;
if ( reponse = = ' O ' | | reponse = = ' o ' )
{
printf ( " Âge non valide. Veuillez réessayer. \n Entrez le nouvel âge : " ) ;
scanf ( " %d " , & age ) ;
tCarteActive [ pas ] = 1 ;
printf ( " La carte est activée. \n " ) ;
}
printf ( " Le nouvel âge du client n°%d est bien %d ? (O/n) " , numCarte , age ) ;
scanf ( " %c%*c " , & choix ) ;
if ( choix = = ' n ' | | choix = = ' N ' )
else
{
printf ( " Annulation " ) ;
return ;
printf ( " La carte est toujours desactivée. \n " ) ;
}
}
}
else
{
tAge [ index ] = age ;
return ;
printf ( " Ce numéro d'adhérant n'existe pas, veuillez réessayer \n " ) ;
return - 1 ;
}
}
/*
int Sauvegarde ( int tNoCarte [ ] , int tage [ ] , int tPointsCarte [ ] , int tCarteActive [ ] , int tNbActivitesJour [ ] , int tDate [ ] , int nbelem )
{