diff --git a/donnees/activite.don b/donnees/activite.don index 7787f2b..9386b26 100644 --- a/donnees/activite.don +++ b/donnees/activite.don @@ -1,4 +1,5 @@ -1 5 -2 45 -3 14 -2 7 \ No newline at end of file +1 10 piscine +2 10 foot +3 10 dessin +4 20 course +5 10 judo diff --git a/donnees/adherent.don b/donnees/adherent.don index 5206600..ce48650 100644 --- a/donnees/adherent.don +++ b/donnees/adherent.don @@ -1,6 +1,7 @@ -78 1 45 -41 1 14 -56 1 24 -49 2 14 -96 2 3 -74 2 0 \ No newline at end of file +78 1 35 +41 1 14 +56 1 24 +49 2 14 +96 2 3 +74 2 0 +1 1 123456 diff --git a/header/activite.h b/header/activite.h index f11297f..1dceb4f 100644 --- a/header/activite.h +++ b/header/activite.h @@ -1,10 +1,8 @@ #include "global.h" +#include -void Affichage_entree(); -void Affichage_activite(); - -void Gestion_activite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents ); +void Gestion_activite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents, char Tab_nom_activite[100][20], int Tab_nb_activite_adherent[100]); void Supprimer_activite(); @@ -12,6 +10,19 @@ void Supprimer_activite(); -int effectuer_activite( int Tab_credit_carte[], int Tab_tarif_activite[], int num_adherant, int nbr_activite, int Tab_numero_carte_adherent[], int nbAdherents, int Tab_Etat_carte[]); +int effectuer_activite(int num_adherant , int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents, char Tab_nom_activite[100][20], int Tab_nb_activite_adherent[100]); + +int verif_adherent(int num_adherant, int Tab_Presence_adherent[], int nbAdherents, int Tab_numero_carte_adherent[], int Tab_nb_activite_adherent[100]); + + +int verif_activite(int Tab_numero_activite[],int activite, int nbActivite); + +void modif_crea_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite); + +void affichage_activite( int Tab_numero_activite[], int Tab_tarif_activite[], char Tab_nom_activite[100][20], int nbActivite, int Tab_nbr_entree_activite[]); + +void creer_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite); + +void supprimer_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite); -int verif_adherent(int num_adherant, int Tab_Presence_adherent[], int nbAdherents, int Tab_numero_carte_adherent[]); \ No newline at end of file +void modifier_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite); diff --git a/header/adherent.h b/header/adherent.h index a7e8923..c11056a 100644 --- a/header/adherent.h +++ b/header/adherent.h @@ -13,4 +13,6 @@ int TrouverAdherent(int tabNoCarte[], int nbAdherents, int noCarte, int *trouve) void RechargeCarte(int noCarte, int tabNoCarte[], int tabEtatCarte[], int tabPointCarte[], int nbAdherents); -void CreerAdherent(int tabNoCarte[], int tabEtatCarte[], int tabPointCarte[], int *nbAdherents, int taillePhysique); \ No newline at end of file +void CreerAdherent(int tabNoCarte[], int tabEtatCarte[], int tabPointCarte[], int *nbAdherents, int taillePhysique); + +void Bonus(int indice, int tabPointCarte[]); \ No newline at end of file diff --git a/header/chargement.h b/header/chargement.h index 039d906..d59d2a7 100644 --- a/header/chargement.h +++ b/header/chargement.h @@ -2,9 +2,11 @@ int chargement_tableaux_adherent(int Tab_numero_carte_adherent[],int Tab_Etat_carte[],int Tab_credit_carte[]); -int chargement_tableaux_activite(int Tab_numero_activite[], int Tab_tarif_activite[]); +int chargement_tableaux_activite(int Tab_numero_activite[], int Tab_tarif_activite[],char Tab_nom_activite[100][20]); -int enregistrement_tableaux_adherent(int Tab_numero_carte_adherent[],int Tab_Etat_carte[],int Tab_credit_carte[]); +void dechargement_adherent(int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[]); -int enregistrement_tableaux_activite(int Tab_numero_activite[], int Tab_tarif_activite[]); \ No newline at end of file +void dechargement_activite( int Tab_numero_activite[], int Tab_tarif_activite[], char Tab_nom_activite[100][20]); + +void dechargement_activite( int Tab_numero_activite[], int Tab_tarif_activite[], char Tab_nom_activite[100][20]); diff --git a/header/menus.h b/header/menus.h index a7604da..f0c83f1 100644 --- a/header/menus.h +++ b/header/menus.h @@ -8,7 +8,7 @@ void GestionCompteAdherent(int tabNoCarte[], int tabEtatCarte[], int tabPointCar int CibleAdherent(int tabNoCarte[], int nbAdherents); void AfficheBandeauGCA(void); -void MenuActivite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents ); +void MenuActivite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents, int Tab_nom_activite[100][20] ); void MenuGlobal(void); void AfficheBandeauMP(void); diff --git a/source/activite.c b/source/activite.c index cd17d59..e3e98a7 100644 --- a/source/activite.c +++ b/source/activite.c @@ -3,31 +3,410 @@ #include "../header/adherent.h" #include "../header/menus.h" -void Affichage_entree() +void modif_crea_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite) { - printf("\n\n Affichage des entrees par activite dans la journee\n"); - printf(" --------------------------------------------------\n\n\n"); + clean; + int choix = 0; + printf("=================================================================================\n"); + printf(" Gestion des activites\n"); + printf("=================================================================================\n"); + + //affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + + printf(" Souhaitez vous : \n"); + printf(" ---------------\n\n"); + printf(" - 1.) Creer une activite.\n - 2.) Modifier une activite. \n - 3.) Supprimer une activite.\n - 4.) Afficher les Activites\n - 5) retour menu principal.\n\n"); + printf(" - Votre reponse : "); + scanf("%d%*c", &choix); + + switch (choix) + { + case 1 :clean; + creer_activite(Tab_numero_activite, Tab_nom_activite, Tab_tarif_activite, Tab_nbr_entree_activite, nbActivite); + break; + + case 3 : + supprimer_activite(Tab_numero_activite, Tab_nom_activite, Tab_tarif_activite, Tab_nbr_entree_activite, nbActivite); + break; + + case 2 : + clean; + modifier_activite(Tab_numero_activite, Tab_nom_activite, Tab_tarif_activite, Tab_nbr_entree_activite, nbActivite); + break; + + case 4 : + clean; + printf("=================================================================================\n"); + printf(" Affichage des activites\n"); + printf("=================================================================================\n\n\n"); + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + char trash; + wait; + break; + + case 5 : return; + + + } } -void Affichage_activite() +void creer_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite) { - printf("\n\n Affichage des activites\n"); - printf(" --------------------------------------------------\n\n\n"); + + printf("=================================================================================\n"); + printf(" Creer une activite\n"); + printf("=================================================================================\n"); + + int i = 0, position = 0, valeur_temp =0; + char reponse; + + for (i = 0; i < 100; i ++) + { + if ( Tab_numero_activite[i] == 0) + { + position = i; + i = 190; + } + + else position = 123; + } + + if (position == 123) + { + printf("\n ---> L'espace de stockage est trop faible, veuillez supprimer des activites.\n\n"); + printf(" - Souhaitez vous supprimer une activites ? \n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if (reponse == 'O' || reponse == 'o') + supprimer_activite(Tab_numero_activite, Tab_nom_activite, Tab_tarif_activite, Tab_nbr_entree_activite, nbActivite); + else return; + } + + printf("\n\n Quel est le nom de l'activite ? : \n"); + printf( " -------------------------------\n\n - Votre reponse : "); + scanf("%s", Tab_nom_activite[position]); + + nbActivite = nbActivite +1; + + printf("\n\n - Quel est son numero : "); + + scanf("%d", &valeur_temp); + Tab_numero_activite[position] = valeur_temp; + + for (i = 0; i < 100; i ++) + { + + if (i == position) i = i +1; + + while ( Tab_numero_activite[i] == Tab_numero_activite[position]) + { + printf("\n\n ---> Numero deja pris, reessayer : "); + + scanf("%d", &valeur_temp); + Tab_numero_activite[position] = valeur_temp; + + i = 0 ; + + } + } + + + printf("\n\n - Quel est son Tarif : "); + + scanf("%d", &valeur_temp); + + Tab_tarif_activite[position] = valeur_temp; + + printf(" \n\nL'activite %s a bien ete creee ! \n \n Son numero est le %d\n Son tarif est de %d\n\n", + Tab_nom_activite[position], Tab_numero_activite[position], Tab_tarif_activite[position]); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + + char trash; + wait; + + } +void modifier_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite) +{ + + printf("=================================================================================\n"); + printf(" Modifier une activite\n"); + printf("=================================================================================\n"); + + int i = 0, position = 0, valeur_temp =0, num = 0; + char reponse; + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + + printf("\n\n Quel est le numero de l'activite a modifier : "); + scanf("%d%*c", &num); + + for ( int i = 0; i < 100; i ++) + { + if ( Tab_numero_activite[i] == num) + { + position = i; + i = 190; + } + else position = 200; + } + + while (position == 200) + { + printf("\n ---> Activite inexistante ! \n\n"); + printf(" - Souhaitez vous recommencer ? \n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if (reponse == 'O' || reponse == 'o') + { + printf(" \n\nQuelle activite souhaitez vous modifier : "); + scanf("%d%*c", &num); + + for ( int i = 0; i < 100; i ++) + { + if ( Tab_numero_activite[i] == num) + { + position = i; + + + i = 190; + } + else position = 200; + } + } + else return; + } + + + printf(" \nSouhaitez vous changer le nom ? \n\n"); + printf(" - ( O /N ) : "); + scanf("%c%*c",&reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if ( reponse == 'o' || reponse == 'O') + { + printf("\n\n Quel est le nouveau nom de l'activite : "); + scanf("%s%*c", Tab_nom_activite[position]); + + clean; + printf("=================================================================================\n"); + printf(" Modifier une activite\n"); + printf("=================================================================================\n"); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + } + + printf(" Souhaitez vous changer le numero ? \n\n"); + printf(" - ( O /N ) : "); + scanf("%c%*c",&reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if ( reponse == 'o' || reponse == 'O') + { + printf("\n\n Quel est le nouveau numero de l'activite : "); + scanf("%d%*c", &valeur_temp); + Tab_numero_activite[position] = valeur_temp; + + for (i = 0; i < 100; i ++) + { + + if (i == position) i = i +1; + + while ( Tab_numero_activite[i] == Tab_numero_activite[position]) + { + printf("\n\n Numero deja pris, reessayer : "); + + scanf("%d%c", &valeur_temp); + Tab_numero_activite[position] = valeur_temp; + + i = 0 ; + + } + } + + clean; + printf("=================================================================================\n"); + printf(" Modifier une activite\n"); + printf("=================================================================================\n"); + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + } + + printf(" Souhaitez vous changer le Tarif ? \n\n"); + printf(" - ( O /N ) : "); + scanf("%c%*c",&reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if ( reponse == 'o' || reponse == 'O') + { + printf("\n\n Quel est le nouveau tarif de l'activite : "); + + printf("\n\n Quel est son Tarif : "); + scanf("%d%*c", &valeur_temp); + + Tab_tarif_activite[position] = valeur_temp; + + clean; + printf("=================================================================================\n"); + printf(" Modifier une activite\n"); + printf("=================================================================================\n"); + } + + printf(" L'activite %s a bien ete modifie ! \n \n Son numero est le %d\n Son tarif est de %d\n\n", + Tab_nom_activite[position], Tab_numero_activite[position], Tab_tarif_activite[position]); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); -void Supprimer_activite() + char trash; + wait; + + +} + +void supprimer_activite(int Tab_numero_activite[], char Tab_nom_activite[100][20], int Tab_tarif_activite[], int Tab_nbr_entree_activite[], int nbActivite) +{ + clean; + printf("=================================================================================\n"); + printf(" Supprimer une activite\n"); + printf("=================================================================================\n"); + + int i = 0, position = 0, valeur_temp =0, num = 0; + char reponse; + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + + printf("\n\n Quel est le numero de l'activite a supprimer : "); + scanf("%d%*c", &num); + + for ( int i = 0; i < 100; i ++) + { + if ( Tab_numero_activite[i] == num) + { + position = i; + + i = 190; + } + else position = 200; + } + + while (position == 200) + { + printf("\n ---> Activite inexistante ! \n\n"); + printf(" - Souhaitez vous recommencer ? \n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if (reponse == 'O' || reponse == 'o') + { + printf(" \n\nQuelle activite souhaitez vous supprimer ? : "); + scanf("%d%*c", &num); + + for ( int i = 0; i < 100; i ++) + { + if ( Tab_numero_activite[i] == num) + { + position = i; + + + i = 190; + } + else position = 200; + } + } + else return; + } + + Tab_numero_activite[position] = 0; + + clean; + printf("=================================================================================\n"); + printf(" Supprimer une activite\n"); + printf("=================================================================================\n"); + + + printf(" \n\n L'activite %s ( numero %d ) a bien ete supprimee ! \n\n", Tab_nom_activite[position], num); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbActivite, Tab_nbr_entree_activite); + + char trash; + wait + +} + +void affichage_activite( int Tab_numero_activite[], int Tab_tarif_activite[], char Tab_nom_activite[100][20], int nbActivite, int Tab_nbr_entree_activite[]) { - printf("\n\n Supprimer une activite\n"); - printf(" --------------------------------------------------\n\n\n"); + printf(" ====================================================================================================\n"); + printf(" | Nom de l'activite | Numero de l'activite | Tarif de l'activite | Nombre d'entree dans la journee |\n"); + printf(" |-------------------|----------------------|---------------------|---------------------------------|\n"); + + for ( int i = 0; i < nbActivite; i ++) + { + if (Tab_numero_activite[i] != 0) printf(" |%13s | %11d | %11d | %15d | \n", + Tab_nom_activite[i], Tab_numero_activite[i], Tab_tarif_activite[i], Tab_nbr_entree_activite[i]); + } + printf(" ====================================================================================================\n"); } -void Gestion_activite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents ) +void Gestion_activite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents, char Tab_nom_activite[100][20], int Tab_nb_activite_adherent[100]) { char reponse ='g'; + int verif_2 = 0; + clean; + scanf("%*c"); int num_adherant = 0, activite = 0, verif = 0, i = 1; @@ -68,55 +447,120 @@ void Gestion_activite(int Tab_numero_activite[], int Tab_tarif_activite[],int printf(" - Votre reponse : "); scanf("%d", &num_adherant); - verif = verif_adherent( num_adherant, Tab_Presence_adherent, nbAdherents, Tab_numero_carte_adherent); // Verifie que la personne ne soit pas déjà venu + verif = verif_adherent(num_adherant,Tab_Presence_adherent, nbAdherents, Tab_numero_carte_adherent, Tab_nb_activite_adherent); + +if ( verif_2 == 4) +{ + printf(" ---> Adherent deja fait son nombre max d'activite ! \n\n"); + + return; + +} if (verif == 1) { printf("\n ---> Adherent deja venu au centre aujourd'hui ! \n"); + return; } if (verif == 2) { printf("\n ---> Adherent non existant ! \n"); + return; } - while (verif != 1 && i <= 3) + if (verif == 3) { + + return; + } + + while (verif != 1 || verif != 3 || verif_2 != 4 ) { - verif = effectuer_activite(Tab_credit_carte,Tab_tarif_activite,num_adherant, nbr_activite, Tab_numero_carte_adherent, nbAdherents, Tab_Etat_carte); - i = i +1; + if (verif ==2 ) return; + verif_2 = verif_adherent(num_adherant,Tab_Presence_adherent, nbAdherents, Tab_numero_carte_adherent, Tab_nb_activite_adherent); + + + verif = effectuer_activite( num_adherant, Tab_numero_activite, Tab_tarif_activite, Tab_nbr_entree_activite, Tab_numero_carte_adherent, Tab_Etat_carte, Tab_credit_carte, Tab_Presence_adherent, nbr_activite, nbAdherents, Tab_nom_activite, Tab_nb_activite_adherent); } if (verif >3 ) printf("\n ---> vous avez déjà fait 3 activités dans la journée !\n Revenez demain !\n\n"); + + } -int effectuer_activite( int Tab_credit_carte[], int Tab_tarif_activite[], int num_adherant, int nbr_activite, int Tab_numero_carte_adherent[], int nbAdherents, int Tab_Etat_carte[]) +int effectuer_activite(int num_adherant, int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_nbr_entree_activite[],int Tab_numero_carte_adherent[], int Tab_Etat_carte[], int Tab_credit_carte[], int Tab_Presence_adherent[], int nbr_activite, int nbAdherents, char Tab_nom_activite[100][20], int Tab_nb_activite_adherent[100]) { - int activite = 0, verif = 0, position = 0; + + clean; + printf("================================================================\n"); + printf(" Effectuer une Activite\n"); + printf("================================================================\n\n\n"); + + int activite = 0, verif = 0, position_adherent = 0, position_activite; char reponse; - printf("\n\n - Quelle activite l'adherent souhaite t'il faire : \n"); - printf( " -----------------------------------------------\n"); - Affichage_activite(); + printf("\n\n\n - Les activite disponibles : \n"); + printf( " -----------------------------\n\n\n"); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbr_activite, Tab_nbr_entree_activite); printf("\n\n Choississez le numero de l'activite souhaitee : \n"); printf( " ----------------------------------------------\n"); printf(" - Votre reponse : "); scanf("%d%*c", &activite); - position = TrouverAdherent(Tab_numero_carte_adherent, nbAdherents, num_adherant, &verif); + position_adherent = TrouverAdherent(Tab_numero_carte_adherent, nbAdherents, num_adherant, &verif); - verif = Tab_credit_carte[position] - Tab_tarif_activite[activite]; + verif = verif_activite(Tab_numero_activite, activite, nbr_activite); - printf("\n test 23 : valezur de vrif : %d", verif); + while ( verif == -1) + { + printf("\n ---> Activite inexistante ! \n\n"); + printf(" Souhaitez vous poursuivre ? \n"); + printf(" --------------------------\n\n"); + printf(" - ( O / N ) : "); + scanf("%c%*c", &reponse); + while ( reponse != 'O' && reponse !='o' && reponse !='n' && reponse != 'N') + { + printf("\n\n ---> Erreur de saisie !\n\n"); + printf(" Saisir a nouveau : \n"); + printf(" -----------------"); + printf("\n\n - ( O / N ) : "); + scanf("%c%*c", &reponse); + } + + if ( reponse == 'n' || reponse == 'N') return 1; + else + { + clean; + printf("================================================================\n"); + printf(" Effectuer une Activite\n"); + printf("================================================================\n\n\n"); + + printf("\n\n\n - Les activite disponibles : \n"); + printf( " -----------------------------\n\n\n"); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbr_activite, Tab_nbr_entree_activite); + printf("\n\n - Quelle activite l'adherent souhaite t'il faire : \n"); + printf( " -----------------------------------------------\n"); + + affichage_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nom_activite, nbr_activite, Tab_nbr_entree_activite); - printf("\n valeur credit adhent : %d\n", Tab_credit_carte[position]); + printf("\n\n Choississez le numero de l'activite souhaitee : \n"); + printf( " ----------------------------------------------\n"); + printf(" - Votre reponse : "); + scanf("%d%*c", &activite); + verif = verif_activite(Tab_numero_activite, activite, nbr_activite); + } + } + position_activite = verif; - printf("\n valeur tarif : %d \n", Tab_tarif_activite[activite]); + verif = Tab_credit_carte[position_adherent] - Tab_tarif_activite[position_activite-1]; while (verif < 0) { @@ -137,13 +581,19 @@ int effectuer_activite( int Tab_credit_carte[], int Tab_tarif_activite[], int nu if (reponse == 'O' || reponse == 'o') RechargeCarte(num_adherant,Tab_numero_carte_adherent, Tab_Etat_carte, Tab_credit_carte, nbAdherents); else return 1; + scanf("%*c"); - verif = Tab_credit_carte[num_adherant] - Tab_tarif_activite[activite]; + verif = Tab_credit_carte[position_adherent] - Tab_tarif_activite[position_activite-1]; } - Tab_credit_carte[num_adherant] = verif; + Tab_credit_carte[position_adherent] = verif; + + printf("\n L'activite %s a bien ete realise !\n l'adherent numero %d possede encore %d credit. \n", Tab_nom_activite[position_activite-1], Tab_numero_carte_adherent[position_adherent], Tab_credit_carte[position_adherent]); + +Tab_nb_activite_adherent[position_adherent]= Tab_nb_activite_adherent[position_adherent] +1; +Tab_nbr_entree_activite[position_activite] = Tab_nbr_entree_activite[position_activite] +1 ; printf("\n Souhaitez-vous faire une activite a nouveau ? \n"); printf( " -------------------------------------------\n"); @@ -160,16 +610,16 @@ int effectuer_activite( int Tab_credit_carte[], int Tab_tarif_activite[], int nu } if (reponse == 'O' || reponse =='o') return 0; - else return 1; + if (reponse == 'N' || reponse == 'n' ) return 2; } -int verif_adherent(int num_adherant, int Tab_Presence_adherent[], int nbAdherents, int Tab_numero_carte_adherent[]) +int verif_adherent(int num_adherant, int Tab_Presence_adherent[], int nbAdherents, int Tab_numero_carte_adherent[], int Tab_nb_activite_adherent[100]) { - int i = 0, verif = 6 ; + int i = 0, verif = 6 , position = 0; - i = TrouverAdherent(Tab_numero_carte_adherent, nbAdherents, num_adherant, &verif); + position = TrouverAdherent(Tab_numero_carte_adherent, nbAdherents, num_adherant, &verif); if (verif != 1) return 2; @@ -177,7 +627,24 @@ int verif_adherent(int num_adherant, int Tab_Presence_adherent[], int nbAdherent for (i = 0; i <100; i ++) { if (Tab_Presence_adherent[i] == num_adherant) return 1; - } + } + + + if ( Tab_nb_activite_adherent[position] >= 3) return 4; + + return 0; +} + + + +int verif_activite(int Tab_numero_activite[],int activite, int nbActivite) +{ + for (int i = 0; i 5 ) // Tant que le choix est inférieur à 1 ou supérieur à 4, on renvoie le menu + while(choix < 1 || choix > 4 ) // Tant que le choix est inférieur à 1 ou supérieur à 4, on renvoie le menu { - system("cls"); + clean; printf("\n\nERREUR DANS LA SAISIE DU CHOIX ! \n\n - Veuillez choisir a nouveau\n----------------------------------------\n\n "); - + printf("\n Menu des Activites\n"); printf(" ------------------\n\n"); //On affiche le menu - printf("\n- 1.) Afficher le nombre d'entree par activite dans la journee\n"); - printf("- 2.) Afficher toutes les activites\n"); - printf("- 3.) Creer / modifier une activite\n"); - printf("- 4.) Supprimer une activite\n\n\n"); + printf("- 1.) Afficher toutes les activites\n"); + printf("- 2.) Creer / modifier une activite\n"); + printf("- 3.) Supprimer une activite\n\n\n"); scanf("%d%*c",&choix); //On récupère le choix de l'utilisateur à nouveau clean; // Commande pour vider le terminal sous windows @@ -197,19 +196,21 @@ void MenuActivite(int Tab_numero_activite[], int Tab_tarif_activite[],int Tab_ switch (choix) { - case 1 : Affichage_entree(); // Affiche le nombre d'entrées par activités dans la journée - break; + case 1 : + printf("====================================================================================\n"); + printf(" Affichage des activites \n"); + printf("====================================================================================\n"); - case 2 : Affichage_activite(); // Affiche toutes les activités + + break; - case 3 : ; // Pour créer ou modifier une activité + case 2 : ; break; - case 4 : Supprimer_activite(); // Pour supprimer une activité + case 3 : ; // Pour créer ou modifier une activité break; - case 5 : Gestion_activite( Tab_numero_activite, Tab_tarif_activite, Tab_nbr_entree_activite, Tab_numero_carte_adherent, Tab_Etat_carte, Tab_credit_carte, Tab_Presence_adherent, nbr_activite, nbAdherents ); } } @@ -221,26 +222,32 @@ void MenuGlobal(void) { int actif = 1, choix; int trash; - int tabNoCarte[100], tabEtatCarte[100], tabPoint[100]; + int tabNoCarte[100] = {0}, tabEtatCarte[100] = {0}, tabPoint[100] = {0}; + + int Tab_nb_activite_adherent[100] = {0}; int nbAdherents = chargement_tableaux_adherent(tabNoCarte, tabEtatCarte, tabPoint); // Chargement des adhérents - int tabNoAct[100], tabPrixAct[100]; - int nbActivite = chargement_tableaux_activite(tabNoAct, tabPrixAct); // Chargement des activités + + int Tab_nbr_entree_activite[100] ={0}; + char Tab_nom_activite[100][20]; + int tabNoAct[100] ={0}, tabPrixAct[100] ={0}; + int nbActivite = chargement_tableaux_activite(tabNoAct, tabPrixAct, Tab_nom_activite); // Chargement des activités int tabEntree[100] = {0}, tabPresence[100] = {0}; + int taillePhysique = 100; // Gestion de problème de fichier - if (nbAdherents == -1 || nbActivite == -1) + /* if (nbAdherents == -1 || nbActivite == -1) { clean AfficheBandeauMP(); printf("\nUne erreur est survenue : fichier introuvable.\nMerci de verifier la validite de votre fichier adherent.don et votre fichier activite.don dans le dossier donnees\n"); - } + } else - { + {*/ while(actif) { clean @@ -256,11 +263,16 @@ void MenuGlobal(void) break; case 1 : GestionAdherent(tabNoCarte, tabEtatCarte, tabPoint, &nbAdherents, taillePhysique); break; case 2 : GestionCompteAdherent(tabNoCarte, tabEtatCarte, tabPoint, nbAdherents); break; - case 3 : MenuActivite(tabNoAct, tabPrixAct, tabEntree, tabNoCarte, tabEtatCarte, tabPoint, tabPresence, nbActivite, nbAdherents); break; - case 4 : Gestion_activite(tabNoAct, tabPrixAct, tabEntree, tabNoCarte, tabEtatCarte, tabPoint, tabPresence, nbActivite, nbAdherents); break; + case 3 : modif_crea_activite(tabNoAct, Tab_nom_activite, tabPrixAct, Tab_nbr_entree_activite, nbActivite); break; + + case 4 : Gestion_activite(tabNoAct, tabPrixAct, tabEntree, tabNoCarte, tabEtatCarte, tabPoint, tabPresence, nbActivite, nbAdherents, Tab_nom_activite, Tab_nb_activite_adherent); break; } } - } + // } + + + dechargement_adherent( tabNoCarte, tabEtatCarte, tabPoint); + dechargement_activite( tabNoAct, tabPrixAct, Tab_nom_activite); } /**