From c032759e0f6e6813d20bcec502f11efbc4f0b11b Mon Sep 17 00:00:00 2001 From: "kyllian.chabanon" Date: Fri, 11 Nov 2022 23:07:49 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20fonctions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GestionPoints.c | 76 +++++++++++++++++++++++++++---------------------- Global.c | 2 +- README.md | 2 +- Sauvegarde.c | 6 ++-- 4 files changed, 47 insertions(+), 39 deletions(-) diff --git a/GestionPoints.c b/GestionPoints.c index 3aac8be..e707a11 100644 --- a/GestionPoints.c +++ b/GestionPoints.c @@ -41,51 +41,59 @@ 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 - * + * * Permet 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 * - Entre 21 et 50 : 5% * - Entre 51 et 100 : 10% * - Au dessus de 101 : 15% -*/ + */ void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbElem, int noCarte) { - int pointsCarte, trouve, pas; + int pointsCarte, trouve, pas, err = 1; pas = RechercheAdherent(tNoCarte, nbElem, noCarte, &trouve); if (trouve == 1) { - printf("Entrez le nombre de points à ajouter : "); - scanf("%d", &pointsCarte); - if (pointsCarte > 0 && pointsCarte <= 20) + if (tCarteActive[pas] == 0) { - tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte; - tCarteActive[pas] = 1; - printf("La carte est active.\n"); + printf("La carte est désactivée. Achat de points impossible."); + return; } - else if (pointsCarte > 20 && pointsCarte <= 50) - { - tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (5 / 100.0)); - tCarteActive[pas] = 1; - printf("Merci pour votre achat. Nous vous offrons 5%% supplémentaires.\nDe plus, votre carte est active.\n"); - } - else if (pointsCarte > 50 && pointsCarte <= 100) - { - tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (10 / 100.0)); - tCarteActive[pas] = 1; - printf("Merci pour votre achat. Nous vous offrons 10%% supplémentaires.\nDe plus, votre carte est active.\n"); - } - else if (pointsCarte > 100) - { - tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (15 / 100.0)); - tCarteActive[pas] = 1; - printf("Merci pour votre achat. Nous vous offrons 15%% supplémentaires.\nDe plus, votre carte est active.\n"); - } - else + printf("Entrez le nombre de points à ajouter : "); + scanf("%d", &pointsCarte); + while (err = 1) { - printf("Le nombre de points est incorrect.\n"); - printf("Veuillez ressaisir le nombre de points à ajouter : "); - scanf("%d", &pointsCarte); + if (pointsCarte > 0 && pointsCarte <= 20) + { + tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte; + printf("Merci pour votre achat. Vous avez crédité la carte n°%d de %d points, ce qui fait un total de %d points.\n", noCarte, pointsCarte, tPointsCarte[pas]); + err = 0; + } + else if (pointsCarte > 20 && pointsCarte <= 50) + { + tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (5 / 100.0)); + printf("Merci pour votre achat. Vous avez crédité la carte n°%d de %d points. De plus, nous vous offrons 5%% supplémentaires. Nombre de points total : %d\n", noCarte, pointsCarte, tPointsCarte[pas]); + err = 0; + } + else if (pointsCarte > 50 && pointsCarte <= 100) + { + tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (10 / 100.0)); + printf("Merci pour votre achat. Vous avez crédité la carte n°%d de %d points. De plus, nous vous offrons 10%% supplémentaires. Nombre de points total : %d\n", noCarte, pointsCarte, tPointsCarte[pas]); + err = 0; + } + else if (pointsCarte > 100) + { + tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (15 / 100.0)); + printf("Merci pour votre achat. Vous avez crédité la carte n°%d de %d points. De plus, nous vous offrons 15%% supplémentaires. Nombre de points total : %d\n", noCarte, pointsCarte, tPointsCarte[pas]); + err = 0; + } + else + { + printf("Le nombre de points est incorrect.\n"); + printf("Veuillez ressaisir le nombre de points à ajouter : "); + scanf("%d", &pointsCarte); + } } } else @@ -104,9 +112,9 @@ void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbE * \param tNbActivitesJour tableau contenant le nombre d'activités du jour * \param nbElem taille logique des tableaux * - * Mettre les points bonus + * Mettre les points bonus * interdire à un adhérent de fréquenter le centre plus d’une fois par jour -*/ + */ void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem) { int choix, trouve, pas, noCarte; @@ -174,7 +182,7 @@ void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbA if (tPointsCarte[pas] >= 10) { tPointsCarte[pas] = tPointsCarte[pas] - 10; - tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1 ; + tNbActivitesJour[pas] = tNbActivitesJour[pas] + 1; printf("Vous avez pratiqué Cours de natation.\n"); } else diff --git a/Global.c b/Global.c index 00871c2..f98e1f9 100644 --- a/Global.c +++ b/Global.c @@ -67,7 +67,7 @@ void GestionMenus(void) } else if (choix == 5) { - printf("Saisissez le nombre de points à ajouter : "); + printf("Entre le numéro de la carte à créditer : "); scanf("%d", &noCarte); AjoutPoints(tNoCarte, tPointsCarte, tCarteActive, nbElem, noCarte); } diff --git a/README.md b/README.md index 9140eb4..078af5e 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ A chaque entrée, le client peut choisir plusieurs activités. Sa carte se fait **Antoine** : Ouverture.c, Sauvegarde.c, Menus.c, Global.c, GestionAdherents.c, Affichage.c **Ayour** : Affichage.c, Menus.c, Global.c, GestionAdherents.c -**Kyllian** : GestionPoints.c, Global.c, Menu.c, GestionAdherents.c +**Kyllian** : GestionPoints.c, Global.c, Menus.c, GestionAdherents.c ### Fonctionnalités diff --git a/Sauvegarde.c b/Sauvegarde.c index b585bd0..81340f1 100644 --- a/Sauvegarde.c +++ b/Sauvegarde.c @@ -8,7 +8,7 @@ /** * \brief Sauvegarde les nouvelles données dans les fichiers - * \author Antoine Perederii + * \author Antoine Perederii - Kyllian Chabanon * \param tNoCarte tableau contenant les numéros de toutes les cartes * \param tAge tableau contenant les âges des membres * \param tPointsCarte tableau contenant le nombre de points restants sur chaque carte @@ -35,11 +35,11 @@ int Sauvegarde(int tNoCarte[], int tAge[], int tPointsCarte[], int tCarteActive[ printf("Problème d'ouverture du fichier ActivitesJour.don en écriture.\n"); return -1; } - for (i = 0; i < (nbElem - 1); i++) + for (i = 0; i < nbElem; i++) { fprintf(membres, "%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; j++) { fprintf(jour, "%d\t\t%d\n", tDate[j], tNbActivitesJour[j]); }