/** * \file GestionPoints.c * \brief Contient les fonctions pour la gestion des points des adhérents * \author : */ #include "Fonctions.h" /** * \brief Permet de rechercher un adhérent * \author : * \param tNoCarte tableau contenant les numéros de toutes les cartes * \param nbElem taille logique des tableaux * \param noCarte numéro de la carte à rechercher * \param trouve pointeur qui prend 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; for (i = 0; i < nbElem; i++) { if (tNoCarte[i] == noCarte) { *trouve = 1; return i; } else if (tNoCarte[i] > noCarte) { *trouve = 0; return i + 1; } } } /** * \brief Ajoute des points sur une carte * \author : * \param tNoCarte tableau contenant les numéros de toutes les cartes * \param tPointsCarte tableau qui contient le nombre de points restants sur chaque carte * \param tCarteActive tableau qui contient l'état de chaque carte * \param nbElem taille logique des tableaux * \param noCarte numéro de la carte à créditer */ void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbElem, int noCarte) { int pointsCarte, trouve, pas; pas = RechercheAdherent(tNoCarte, nbElem, noCarte, &trouve); if (trouve == 1) { printf("Entrez le nombre de points à ajouter : "); scanf("%d", &pointsCarte); if (pointsCarte > 0 && pointsCarte <= 20) { tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte; tCarteActive[pas] = 1; printf("La carte est active.\n"); } 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("Le nombre de points est incorrect.\n"); printf("Veuillez ressaisir le nombre de points à ajouter : "); scanf("%d", &pointsCarte); } } else { printf("Ce numéro d'adhérent n'existe pas. Veuillez réessayer.\n"); return; } } /** * \brief Débite une carte lorsqu'un adhérent pratique une activité * \author : * \param tNoCarte tableau contenant les numéros de toutes les cartes * \param tCarteActive tableau qui contient 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 */ void DebitActivitee(int tNoCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem) { int noCarte, trouve, pas, pointsCarte; char reponse; printf("Entrez le numéro de la carte de l'adhérent recherché : "); scanf("%d", &noCarte); pas = RechercheAdherent(tNoCarte, nbElem, noCarte, &trouve); if (trouve == 1) { 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 { printf("La carte est toujours active.\n"); } } 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"); } } } else { printf("Ce numéro d'adhérent n'existe pas. Veuillez réessayer.\n"); return; } }