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.

397 lines
12 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "fonction.h"
int chargementAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tphys)
{
int adhe, points, valjour, valmois, valannee, perdue, i = 0, pos;
FILE* flot;
flot = fopen("adherent.txt","r");
if (flot == NULL) {
printf("Erreur ouverture du fichier !\n");
return -2;
}
fscanf(flot,"%d%d%d%d%d%d",&adhe,&points,&valjour,&valmois,&valannee,&perdue);
while(!feof(flot))
{
if(i >= tphys)
{
printf("tableau plein\n");
fclose(flot);
return -1;
}
pos = ajouter(tabAdherent,tabPoints,jour,mois,annee,carte,i,adhe,tphys);
if (pos >= 0) {
tabPoints[pos] = points;
jour[pos] = valjour;
mois[pos] = valmois;
annee[pos] = valannee;
carte[pos] = perdue;
i = i + 1;
}
fscanf(flot,"%d%d%d%d%d%d",&adhe,&points,&valjour,&valmois,&valannee,&perdue);
}
if (i == 0) printf("Fichier vide !\n");
fclose(flot);
return i;
}
// int chargementActivite(int tabPoint[],int tabNbEntree[], int tphys)
// {
// int num, point, nbEntree, i =0;
// FILE*flot;
// flot = fopen("activite.txt","r");
// fscanf(flot,"%d %d %d",&num, &point, &nbEntree);
// while(!feof(flot))
// {
// if(i >= tphys)
// {
// printf("tableau plein\n");
// fclose(flot);
// return -1;
// }
// tabPoint[num] = point;
// tabNbEntree[num] = nbEntree;
// i = i + 1;
// fscanf(flot,"%d %d %d",&num, &point, &nbEntree);
// }
// fclose(flot);
// return i;
// }
int recherche(int tabTri[], int val, int nb, int *trouve){
int i;
*trouve = 0;
for(i = 0 ; i < nb ; i++) {
if (val == tabTri[i]) {
*trouve = 1;
return i;
}
if (val < tabTri[i]) return i;
}
return nb;
}
void decalageDroite(int tabTri[], int nb, int pos) {
int j;
for (j = nb ; j > pos ; j--) tabTri[j] = tabTri[j-1];
}
void decalageGauche(int tabTri[], int nb, int pos) {
int j;
for(j = pos ; j < nb-1 ; j++) tabTri[j] = tabTri[j+1];
}
int ajouter(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb, int val, int tmax) {
int pos, trouve;
if (nb == tmax) {
printf("Impossible d'insérer un nouvel élément, le tableau est plein !\n");
return -1;
}
pos = recherche(tabAdhe, val, nb, &trouve);
if (trouve == 1) {
printf("Valeur déjà présente dans le tableau !\n");
return -1;
}
decalageDroite(tabAdhe, nb, pos);
decalageDroite(tabPoints, nb, pos);
decalageDroite(jour, nb, pos);
decalageDroite(mois, nb, pos);
decalageDroite(annee, nb, pos);
decalageDroite(carte, nb, pos);
tabAdhe[pos] = val;
return pos;
}
int ajouterAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb, int tmax) {
int val, trouve, points = 10, valJour, valMois, valAnnee, perdue = 1, pos, coderetour;
printf("Nouveau numéro de carte : ");
scanf("%d",&val);
pos = recherche(tabAdhe, val, nb, &trouve);
coderetour = ajouter(tabAdhe, tabPoints, jour, mois, annee, carte, nb, val, tmax);
if (coderetour == -1) {
printf("Erreur ajout du nouvel élement !\n");
return nb;
}
printf("\nJour : ");
scanf("%d",&valJour);
printf("\nMois : ");
scanf("%d",&valMois);
printf("\nAnnée : ",valAnnee);
scanf("%d",&valAnnee);
tabPoints[pos] = points;
jour[pos] = valJour;
mois[pos] = valMois;
annee[pos] = valAnnee;
carte[pos] = perdue;
nb += 1;
return nb;
}
int supprimerAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tailleL) {
int numAdhe;
printf("Numéro de l'adhérent à supprimer ?\n");
scanf("%d",&numAdhe);
tailleL=suppression(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL,numAdhe);
return tailleL;
}
int suppression(int tab[], int tabPoints[], int jour[], int mois[], int annee[], int carte[],int nb, int val) {
int pos, trouve;
if (nb == 0) {
printf("Aucun élément à supprimer dans le tableau !\n");
return nb;
}
pos = recherche(tab, val, nb, &trouve);
decalageGauche(tab, nb, pos);
decalageGauche(tabPoints, nb, pos);
decalageGauche(jour, nb, pos);
decalageGauche(mois, nb, pos);
decalageGauche(annee, nb, pos);
decalageGauche(carte,nb,pos);
nb -= 1;
return nb;
}
void affichageTous(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[],int taille)
{
int i;
printf("Numéro\tPoints\tDate d'activation\t\n");
for (i = 0 ; i < taille ; i++) {
if (carte[i] == 1) printf("%d\t%d\t%d/%d/%d\t\t Carte Active\n",tabAdhe[i],tabPoints[i],jour[i],mois[i],annee[i]);
else if (carte[i] == 0) printf("%d\t%d\t%d/%d/%d\t\t Carte Désactivée\n",tabAdhe[i],tabPoints[i],jour[i],mois[i],annee[i]);
}
}
void affichageCarte(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb) {
int carteVal, pos, trouve;
printf("Numéro de la carte ?\n");
scanf("%d",&carteVal);
pos = recherche(tabAdhe, carteVal, nb, &trouve);
if (trouve == 0) printf("Valeur non trouvée !\n");
else {
printf("Numéro\tPoints\tDate d'activation\t\n");
if (carte[pos] == 1) printf("%d\t%d\t%d/%d/%d\t\t Carte Active\n",tabAdhe[pos],tabPoints[pos],jour[pos],mois[pos],annee[pos]);
else if (carte[pos] == 0) printf("%d\t%d\t%d/%d/%d\t\t Carte Désactivée\n",tabAdhe[pos],tabPoints[pos],jour[pos],mois[pos],annee[pos]);
}
}
// void affichageActivite(int tabCoutPoint[], int tabNbEntree[], int tailleL)
// {
// int i;
// printf("N°Activité \t Points \t Nombre Entrées \n");
// for (i = 0; i < tailleL; i++)
// {
// if (tabCoutPoint[i] != 0)
// printf("%d \t %d \t %d", i, tabCoutPoint[i], tabNbEntree[i]\n);
// }
// }
// void affichageToutActivite(int tabCoutPoint[], int tabNbEntree[], int tailleL)
// {
// int i, num, trouve = 0;
// printf("Plus d'information de l'activité :");
// scanf("%d", &num);
// printf("N°Activité \t Points \t Nombre Entrées \n");
// for (i = 0; i < tailleL; i++)
// {
// if (i == num)
// {
// printf("%d \t %d \t %d", i, tabCoutPoint[i], tabNbEntree[i]\n);
// trouve = 1;
// }
// }
// if (trouve == 0)
// printf("Le numéro d'activité n'éxiste pas");
// }
// void afficheNbEntreAct(int tabNbEntree[], int tabCoutPoint[], int tphys)
// {
// int num;
// printf("numero dactivité :");
// scanf("%d",&num);
// if (tabCoutPoint[num] == 0 && tabNbEntree[num] == 0)
// printf("Activité inexistante\n");
// else
// printf("Nombre dentrée : %d", tabNbEntree[num]);
// }
void alimenterCarte (int tabAdherent[], int tabPoint[],int nb)
{
int num, trouve, i;
char formule;
printf("numero carte :");
scanf("%d",&num);
i = recherche(tabAdherent, num, nb, &trouve);
if (trouve == 1)
{
printf("Quelle formule :\n");
printf("A : 5€ -> 5 points\n");
printf("B : 10€ -> 12 point\n");
printf("C : 15€ -> 20 point\n");
printf("Choisir :");
scanf("%*c%c", &formule);
while (formule != 'A' || formule != 'B' || formule != 'C')
{
printf("Erreur récupération de donnée\n");
printf("A : 5€ -> 5 points\n");
printf("B : 10€ -> 12 point\n");
printf("C : 15€ -> 20 point\n");
printf("Choisir :");
scanf("%*c%c", &formule);
}
if (formule == 'A')
{
tabAdherent[i] = tabAdherent[i] + 5;
printf("accréditation de 5 points\n");
}
if (formule == 'B')
{
tabAdherent[i] = tabAdherent[i] + 12;
printf("accréditation de 12 points\n");
}
if (formule == 'C')
{
tabAdherent[i] = tabAdherent[i] + 20;
printf("accréditation de 20 points\n");
}
}
if (trouve == 0)
printf("Erreur ! Numéro de carte absente de la base de donnée\n");
}
// void ajoutActivite(int tabCoutPoint[],int tabNbEntree[],int tailleL)
// {
// int num, nbPoint;
// printf("Numéro de la Nouvelle Activité :");
// scanf("%d", &num);
// if (tabCoutPoint[num] != 0)
// printf("Numéro d'activité déjà existant.\n");
// if (tailleL < num)
// printf("tableau plein");
// else
// {
// printf("Coût de l'activité :");
// scanf("%d", &nbPoint);
// printf("\t Récapitulatif :");
// printf("Numéro d'activité : %d\n", num);
// printf("Nombre de point : %d\n", nbPoint);
// tabCoutPoint[num] = nbPoint;
// }
// }
// void suppActivite(int tabCoutPoint[], int tabNbEntree[],int tailleL)
// {
// int num;
// char choix;
// printf("Quel Activité voulez vous supprimer : ");
// scanf("%d", &num);
// if (tabCoutPoint[num] == 0)
// printf("Numéro d'activité pas existant\n");
// if (tailleL < num)
// printf("tableau plein\n");
// else
// {
// printf("Êtes vous sûre de vouloir supprimer l'activité (O|N): ");
// scanf("%*c%c", choix);
// while(choix != 'N' || choix != 'O')
// {
// printf("Êtes vous sûre de vouloir supprimer l'activité (O|N): ");
// scanf("%*c%c", choix);
// }
// if (choix == 'N')
// printf("Annulation de la suppression\n");
// if (choix == 'O')
// {
// printf("Suppression Activité %d\n", num);
// tabCoutPoint[num] = 0;
// tabNbEntree[num] = 0;
// }
// }
// }
// void faireActivite(int tabAdherent[], int tabPoint[],int tabCoutPoint[], int tabNbEntree[], int tailleLAdhe, int tailleLAct)
// {
// int num, idAct, i, trouve;
// printf("Identifiant Adhérent : ");
// scanf("%d", &num);
// i = recherche(tabAdherent, num, tailleLAdhe, &trouve)
// if (trouve == 0)
// printf("Identifiant Adhérent pas existant\n");
// else
// {
// printf("Numéro d'activité que vous voulez pratiquer : ");
// scanf("%d", &idAct);
// while (tabCoutPoint[idAct] == 0)
// {
// printf("Activité inexistante\n");
// printf("Numéro d'activité que vous voulez pratiquer : ");
// scanf("%d", &idAct);
// if (idAct == -1)
// exit(1);
// }
// if (tabCoutPoint[idAct] > tabPoint[i])
// printf("Vous n'avez pas assez de point");
// else{
// tabPoint[i] = tabPoint[i] - tabCoutPoint[idAct];
// printf("Achat effectué\n");
// printf("Il vous reste %d point sur votre carte\n", tabPoint[i]);
// }
// }
// }
int SauvegardeAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tailleL) {
int i;
FILE* flot = fopen("adherent.txt","w");
if (flot == NULL) {
printf("Erreur d'ouverture du fichier !\n");
return -1;
}
for (i = 0 ; i < tailleL ; i++) {
fprintf(flot,"%d %d %d %d %d %d\n",tabAdherent[i],tabPoints[i],jour[i],mois[i],annee[i],carte[i]);
}
fclose(flot);
return 0;
}
// int SauvegardeActivite(int tabCoutPoint[],int tabNbEntree[],int tailleL)
// {
// int i;
// FILE* flot = fopen("activite.txt","w");
// if (flot == NULL) {
// printf("Erreur d'ouverture du fichier !\n");
// return -1;
// }
// for (i = 0 ; i < tailleL ; i++) {
// if (tabCoutPoint[num] != 0)
// fprintf(flot,"%d %d %d",i, tabCoutPoint[i], tabNbEntree[i]);
// }
// fclose(flot);
// return 0;
// }