Amélioration des fonctions

master
Kyllian CHABANON 2 years ago
parent 1b246937d2
commit c032759e0f

@ -41,51 +41,59 @@ int RechercheAdherent(int tNoCarte[], int nbElem, int noCarte, int *trouve)
* \param tCarteActive tableau contenant l'état de chaque carte * \param tCarteActive tableau contenant l'état de chaque carte
* \param nbElem taille logique des tableaux * \param nbElem taille logique des tableaux
* \param noCarte numéro de la carte à créditer * \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. * 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 : * Il y a des bonus donnés selon le nombre de points ajoutés :
* - En dessous de 20 : aucun bonus * - En dessous de 20 : aucun bonus
* - Entre 21 et 50 : 5% * - Entre 21 et 50 : 5%
* - Entre 51 et 100 : 10% * - Entre 51 et 100 : 10%
* - Au dessus de 101 : 15% * - Au dessus de 101 : 15%
*/ */
void AjoutPoints(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int nbElem, int noCarte) 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); pas = RechercheAdherent(tNoCarte, nbElem, noCarte, &trouve);
if (trouve == 1) if (trouve == 1)
{ {
printf("Entrez le nombre de points à ajouter : "); if (tCarteActive[pas] == 0)
scanf("%d", &pointsCarte);
if (pointsCarte > 0 && pointsCarte <= 20)
{ {
tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte; printf("La carte est désactivée. Achat de points impossible.");
tCarteActive[pas] = 1; return;
printf("La carte est active.\n");
} }
else if (pointsCarte > 20 && pointsCarte <= 50) printf("Entrez le nombre de points à ajouter : ");
{ scanf("%d", &pointsCarte);
tPointsCarte[pas] = tPointsCarte[pas] + pointsCarte * (1 + (5 / 100.0)); while (err = 1)
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"); if (pointsCarte > 0 && pointsCarte <= 20)
printf("Veuillez ressaisir le nombre de points à ajouter : "); {
scanf("%d", &pointsCarte); 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 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 tNbActivitesJour tableau contenant le nombre d'activités du jour
* \param nbElem taille logique des tableaux * \param nbElem taille logique des tableaux
* *
* Mettre les points bonus * Mettre les points bonus
* interdire à un adhérent de fréquenter le centre plus dune fois par jour * interdire à un adhérent de fréquenter le centre plus dune fois par jour
*/ */
void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem) void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbActivitesJour[], int nbElem)
{ {
int choix, trouve, pas, noCarte; int choix, trouve, pas, noCarte;
@ -174,7 +182,7 @@ void DebitCarte(int tNoCarte[], int tPointsCarte[], int tCarteActive[], int tNbA
if (tPointsCarte[pas] >= 10) if (tPointsCarte[pas] >= 10)
{ {
tPointsCarte[pas] = 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"); printf("Vous avez pratiqué Cours de natation.\n");
} }
else else

@ -67,7 +67,7 @@ void GestionMenus(void)
} }
else if (choix == 5) else if (choix == 5)
{ {
printf("Saisissez le nombre de points à ajouter : "); printf("Entre le numéro de la carte à créditer : ");
scanf("%d", &noCarte); scanf("%d", &noCarte);
AjoutPoints(tNoCarte, tPointsCarte, tCarteActive, nbElem, noCarte); AjoutPoints(tNoCarte, tPointsCarte, tCarteActive, nbElem, noCarte);
} }

@ -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 **Antoine** : Ouverture.c, Sauvegarde.c, Menus.c, Global.c, GestionAdherents.c, Affichage.c
**Ayour** : Affichage.c, Menus.c, Global.c, GestionAdherents.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 ### Fonctionnalités

@ -8,7 +8,7 @@
/** /**
* \brief Sauvegarde les nouvelles données dans les fichiers * \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 tNoCarte tableau contenant les numéros de toutes les cartes
* \param tAge tableau contenant les âges des membres * \param tAge tableau contenant les âges des membres
* \param tPointsCarte tableau contenant le nombre de points restants sur chaque carte * \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"); printf("Problème d'ouverture du fichier ActivitesJour.don en écriture.\n");
return -1; 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]); 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]); fprintf(jour, "%d\t\t%d\n", tDate[j], tNbActivitesJour[j]);
} }

Loading…
Cancel
Save