diff --git a/Fonctions.h b/Fonctions.h index 198fee7..c356e76 100644 --- a/Fonctions.h +++ b/Fonctions.h @@ -9,6 +9,7 @@ int OuvertureActivitesJour(int tNbActivitesJour[], int tDate[], int tMax); /* Fonctions des menus */ int ChoixMenu(void); int ChoixMenuAffichage(void); +int choixMenuActivites(void); /* Fonctions d'affichage */ void Affichage1Adherent(int tNoCarte[], int tAge[], int tPointsCarte[], int tCarteActive[], int nbElem); @@ -33,4 +34,4 @@ void ModificationActivationCarte(int tNoCarte[], int tCarteActive[], int nbElem) /* Fonctions de gestion des points */ void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbElem, int noCarte); -void DebitActivitee(int tNoCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem); \ No newline at end of file +void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem); \ No newline at end of file diff --git a/GestionAdherents.c b/GestionAdherents.c index 258d8aa..fc02f21 100644 --- a/GestionAdherents.c +++ b/GestionAdherents.c @@ -156,7 +156,7 @@ void ModificationActivationCarte(int tNoCarte[], int tCarteActive[], int nbElem) scanf("%d", &choix); if (choix == 1) { - printf("\nPourquoi voulez-vous activer la carte ?\n1.\tCarte retrouvée\n2.\tNouvelle carte\n3.\tLevée de sanction\n"); + printf("\nPourquoi voulez-vous activer la carte ?\n1.\tCarte retrouvée\n2.\tNouvelle carte à la place de l'ancienne\n3.\tLevée de sanction\n"); printf("\nOption choisie : "); scanf("%d", &choixRaison); diff --git a/GestionPoints.c b/GestionPoints.c index c1ac260..05c9b74 100644 --- a/GestionPoints.c +++ b/GestionPoints.c @@ -2,7 +2,7 @@ * \file GestionPoints.c * \brief Fichier contenant les fonctions pour la gestion des points des adhérents * \author Antoine Perederii - Kyllian Chabanon -*/ + */ #include "Fonctions.h" @@ -14,7 +14,7 @@ * \param noCarte numéro de la carte à rechercher * \param trouve pointeur prenant comme valeur 1 si le numéro a été trouvé et 0 sinon * \return l'index où se trouve le numéro de la carte recherché, s'il n'y est pas, retourne l'endroit où il doit être inséré -*/ + */ int RechercheAdherent(int tNoCarte[], int nbElem, int noCarte, int *trouve) { int i; @@ -41,7 +41,7 @@ int RechercheAdherent(int tNoCarte[], int nbElem, int noCarte, int *trouve) * \param tCarteActive tableau contenant l'état de chaque carte * \param nbElem taille logique des tableaux * \param noCarte numéro de la carte à créditer - * + * * Perlet d'ajouter des points à la carte correspondant au numéro de carte donné en paramètre. * Il y a des bonus donnés selon le nombre de points ajoutés : * - En dessous de 20 : aucun bonus @@ -102,10 +102,16 @@ void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbE * \param tCarteActive tableau contenant l'état de chaque carte * \param tNbActivitesJour tableau contenant le nombre d'activité qui a été faite dans la journée * \param nbElem taille logique des tableaux + */ + + +/* + Mettre les points bonus + interdire à un adhérent de fréquenter le centre plus d’une fois par jour */ -void DebitActivitee(int tNoCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem) +void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem) { - int noCarte, trouve, pas, pointsCarte; + int choix, trouve, pas, noCarte; char reponse; printf("Entrez le numéro de la carte de l'adhérent recherché : "); scanf("%d", &noCarte); @@ -114,31 +120,125 @@ void DebitActivitee(int tNoCarte[], int tCarteActive[], int tNbActivitesJour[], { if (tCarteActive[pas] == 1) { - printf("Voulez-vous désactiver 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 + while (choix != 10) { - printf("La carte est toujours active.\n"); + choix = choixMenuActivites(); + switch (choix) + { + case 1: + if (tPointsCarte[pas] >= 0) + { + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué la piscine.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 2: + if (tPointsCarte[pas] >= 0) + { + tPointsCarte[pas] = tPointsCarte[pas] - 0; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué l'option accessibilité.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 3: + if (tPointsCarte[pas] >= 5) + { + tPointsCarte[pas] = tPointsCarte[pas] - 5; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Aquakid + Aquaplouf.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 4: + if (tPointsCarte[pas] >= 9) + { + tPointsCarte[pas] = tPointsCarte[pas] - 9; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Aquafit.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 5: + if (tPointsCarte[pas] >= 10) + { + tPointsCarte[pas] = tPointsCarte[pas] - 10; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1 ; + printf("Vous avez pratiqué Cours de natation.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 6: + if (tPointsCarte[pas] >= 12) + { + tPointsCarte[pas] = tPointsCarte[pas] - 12; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Cours de gymnastique aquatique.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 7: + if (tPointsCarte[pas] >= 15) + { + tPointsCarte[pas] = tPointsCarte[pas] - 15; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Vagues.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 8: + if (tPointsCarte[pas] >= 20) + { + tPointsCarte[pas] = tPointsCarte[pas] - 20; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Aquabike.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + case 9: + if (tPointsCarte[pas] >= 35) + { + tPointsCarte[pas] = tPointsCarte[pas] - 35; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; + printf("Vous avez pratiqué Aquafamily.\n"); + } + else + { + printf("Vous n'avez pas assez de points.\n"); + } + break; + } + choix = choixMenuActivites(); } } else { - printf("La carte est desactivée. Voulez-vous la réactiver ? (o/n)\n"); - scanf("%*c%c", &reponse); - if (reponse == 'O' || reponse == 'o') - { - tCarteActive[pas] = 1; - printf("La carte est activée.\n"); - } - else - { - printf("La carte est toujours desactivée.\n"); - } + printf("Votre carte est inactive. Veuillez La réactivé.\n"); } } else diff --git a/Global.c b/Global.c index 1735d94..00871c2 100644 --- a/Global.c +++ b/Global.c @@ -6,22 +6,6 @@ #include "Fonctions.h" -/* -A une séance d’une activité donnée correspond un certain nombre de -points. -Exemple : -Une séance de musculation : 10 points -Une séance d’aquagym : 15 points -Une séance de SPA : 12 points - -A chaque entrée au centre, un adhérent peut choisir une ou plusieurs activités en même temps. Il peut -par exemple faire une séance de musculation suivie d’une séance de SPA, sa carte se verra débiter de -22 points. -Attribution de points lors d'un sceance qui dépende de critères socioprofessionnels (retraités, étudiants, ... AGE - -Votre application doit pouvoir interdire à un adhérent de fréquenter le centre plus d’une fois par jour -*/ - /** * \brief Gère les menus en appelant une fonction pour chaque choix fait par l'utilisateur * \author Antoine Perederii - Ayour Malki @@ -93,7 +77,7 @@ void GestionMenus(void) } else if (choix == 7) { - DebitActivitee(tNoCarte, tCarteActive, tNbActivitesJour, nbElem); + DebitCarte(tNoCarte, tPointsCarte, tCarteActive, tNbActivitesJour, nbElem); } choix = ChoixMenu(); } diff --git a/Menus.c b/Menus.c index 44acdf0..f89b00e 100644 --- a/Menus.c +++ b/Menus.c @@ -46,4 +46,23 @@ int ChoixMenuAffichage(void) printf("\nOption choisie : "); scanf("%*c%c", &choix); return choix; +} + +int choixMenuActivites(void) +{ + int choix; + printf("\nChoix activités :\n"); + printf("1.\tPiscine, \t\t\t0pt\n"); + printf("2.\tOption accessibilité, \t\t0pt\n"); + printf("3.\tAquakid + Aquaplouf, \t\t5pt\n"); + printf("4.\tAquafit, \t\t\t9pt\n"); + printf("5.\tCours de natation, \t\t10pt\n"); + printf("6.\tCours de gymnastique aquatique, 12pt\n"); + printf("7.\tVagues, \t\t\t15pt\n"); + printf("8.\tAquabike, \t\t\t20pt\n"); + printf("9.\tAquafamily, \t\t\t35pt\n"); + printf("10.\tQuitter\n"); + printf("\nOption choisie : "); + scanf("%d", &choix); + return choix; } \ No newline at end of file diff --git a/exe b/exe index e2d36db..f861c5d 100755 Binary files a/exe and b/exe differ