You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
saeAlgo/GestionAdherents.c

132 lines
3.9 KiB

#include "Fonctions.h"
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;
}
if (tNoCarte[i] > NoCarte)
{
*trouve = 0;
return i + 1;
}
}
}
int AjoutAdherent(int tNoCarte[], int tage[], int tPointsCarte[], int tCarteActive[], int tmax, int nbelem)
{
int NoCarte, age, pointsCarte, CarteActive, pas, trouve, j;
char reponse;
printf("Vous voulez créer un nouvel adhérent.\n");
printf("Donnez l'âge de l'adhérent : ");
scanf("%d", &age);
pas = rechercheAdherent(tNoCarte, nbelem, NoCarte, &trouve);
printf("%d\n", pas);
for (j = nbelem; j > pas; j--)
{
if (j == tmax)
{
printf("Tableau plein, impossible d'ajouter un adhérent.\n");
return -1;
}
tNoCarte[j] = tNoCarte[j - 1];
tage[j] = tage[j - 1];
tPointsCarte[j] = tPointsCarte[j - 1];
tCarteActive[j] = tCarteActive[j - 1];
}
tNoCarte[pas] = pas + 1;
printf("%d\n", tNoCarte[pas]);
tage[pas] = age;
tPointsCarte[pas] = 0;
tCarteActive[pas] = 0;
nbelem++;
printf("Vous avez créé l'adhérent numéro %d. Il a %d ans.\nSa carte n'est pas active car il n'y a pas de points dessus.\nVoulez-vous en ajouter ? (o/n)\n", tNoCarte[pas], tage[pas]);
scanf("%*c%c", &reponse);
if (reponse == 'O' || reponse == 'o')
{
AjoutPoints(tNoCarte, tPointsCarte, tCarteActive, nbelem);
}
else
{
printf("La carte n'est pas active.\n");
return nbelem;
}
return nbelem;
}
void ModificationAge(int tNoCarte[], int tage[], int nbelem)
{
int pas, NoCarte, age, trouve;
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)
{
printf("Entrez le nouvel âge de l'adhérent : ");
scanf("%d", &age);
tage[pas] = age;
printf("Vous avez modifié l'âge de l'adhérent numéro %d. Son nouvel âge est %d.\n", NoCarte, age);
}
else
{
printf("Ce numéro d'adhérent n'existe pas. Veuillez réessayer.\n");
return;
}
}
int SupprimmerAdherent(int tNoCarte[], int tage[], int tPointsCarte[], int tCarteActive[], int nbelem)
{
int pas, i, NoCarte, trouve;
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)
{
for (i = pas; i < nbelem; i++)
{
tNoCarte[i] = tNoCarte[i + 1];
tage[i] = tage[i + 1];
tPointsCarte[i] = tPointsCarte[i + 1];
tCarteActive[i] = tCarteActive[i + 1];
}
nbelem = nbelem - 1;
printf("Vous avez bien supprimé l'adhérent numéro %d.\n", NoCarte);
return nbelem;
}
else
{
printf("Ce numéro d'adhérent n'existe pas. Veuillez réessayer.\n");
return -1;
}
}
void ModificationActivationCarte(int tNoCarte[], int tCarteActive[], int nbelem)
{
int NoCarte, trouve, pas;
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)
{
tCarteActive[pas] = 0;
printf("La carte numéro %d est désormais désactivée.\n", NoCarte);
}
else
{
tCarteActive[pas] = 1;
printf("La carte numéro %d est désormais activée.\n", NoCarte);
}
}
else
{
printf("Ce numéro d'adhérent n'existe pas. Veuillez réessayer.\n");
return;
}
}