From a7df09a4a1bf81f05908006590aa397c32c89b1c Mon Sep 17 00:00:00 2001 From: lolaborie Date: Tue, 8 Nov 2022 13:18:32 +0100 Subject: [PATCH] =?UTF-8?q?8/11=20Ajout=20Suppression=20d'un=20adh=C3=A9re?= =?UTF-8?q?nt=20->=20Faire=20Gestion=20globale=20adh=C3=A9rent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- activite.txt | 5 ++ adherent.txt | 7 +- fonction.c | 229 ++++++++++++++++++++++++++++++++++++++++++--------- fonction.h | 32 +++++-- test.c | 5 +- 5 files changed, 222 insertions(+), 56 deletions(-) create mode 100644 activite.txt diff --git a/activite.txt b/activite.txt new file mode 100644 index 0000000..0052ec9 --- /dev/null +++ b/activite.txt @@ -0,0 +1,5 @@ +5 9 14 +8 12 11 +13 6 28 +46 15 5 +47 6 18 diff --git a/adherent.txt b/adherent.txt index beb6d11..a738b7d 100644 --- a/adherent.txt +++ b/adherent.txt @@ -1,6 +1,5 @@ 2 18 29 10 2022 1 14 25 14 5 2007 1 -23 10 17 7 1789 1 -56 5 13 11 2015 1 -69 6 7 1 2015 0 -77 17 14 7 2016 1 +23 10 5 7 1000 1 +56 6 7 1 2015 0 +69 17 14 7 2016 1 diff --git a/fonction.c b/fonction.c index 4a59222..ef6b8b8 100644 --- a/fonction.c +++ b/fonction.c @@ -18,7 +18,7 @@ int chargementAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[ fclose(flot); return -1; } - pos = ajouter(tabAdherent,i,adhe,tphys); + pos = ajouter(tabAdherent,tabPoints,jour,mois,annee,carte,i,adhe,tphys); if (pos >= 0) { tabPoints[pos] = points; jour[pos] = valjour; @@ -34,6 +34,30 @@ int chargementAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[ 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; @@ -62,19 +86,24 @@ void decalageGauche(int tabTri[], int nb, int pos) { } -int ajouter(int tab[], int nb, int val, int tphys) { +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 == tphys) { + if (nb == tmax) { printf("Impossible d'insérer un nouvel élément, le tableau est plein !\n"); return -1; } - pos = recherche(tab, val, nb, &trouve); + pos = recherche(tabAdhe, val, nb, &trouve); if (trouve == 1) { printf("Valeur déjà présente dans le tableau !\n"); return -1; } - decalageDroite(tab, nb, pos); - tab[pos] = val; + 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; } @@ -83,7 +112,7 @@ int ajouterAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int printf("Nouveau numéro de carte : "); scanf("%d",&val); pos = recherche(tabAdhe, val, nb, &trouve); - coderetour = ajouter(tabAdhe, nb, val, tmax); + coderetour = ajouter(tabAdhe, tabPoints, jour, mois, annee, carte, nb, val, tmax); if (coderetour == -1) { printf("Erreur ajout du nouvel élement !\n"); return nb; @@ -107,7 +136,16 @@ int ajouterAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int } -int suppression(int tab[], int tabPoints[], int nb, int val) { +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"); @@ -116,6 +154,10 @@ int suppression(int tab[], int tabPoints[], int nb, int val) { 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; @@ -147,42 +189,50 @@ void affichageCarte(int tabAdhe[], int tabPoints[], int jour[], int mois[], int } } +// 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); +// } +// } -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 i; - } - tabPoint[num] = point; - tabNbEntree[num] = nbEntree; - i = i + 1; - fscanf(flot,"%d %d %d",&num, &point, &nbEntree); - } - fclose(flot); - return i; -} +// 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 tabPoint[], int tphys) -{ - int num; - printf("numero d’activité :"); - scanf("%d",&num); - if (tabPoint[num] == 0 && tabNbEntree[num] == 0) - printf("Activité inexistante\n"); - else - printf("Nombre d’entrée : %d", tabNbEntree[num]); +// } + + + +// void afficheNbEntreAct(int tabNbEntree[], int tabCoutPoint[], int tphys) +// { +// int num; +// printf("numero d’activité :"); +// scanf("%d",&num); +// if (tabCoutPoint[num] == 0 && tabNbEntree[num] == 0) +// printf("Activité inexistante\n"); +// else +// printf("Nombre d’entrée : %d", tabNbEntree[num]); -} +// } void alimenterCarte (int tabAdherent[], int tabPoint[],int nb) { @@ -218,7 +268,7 @@ void alimenterCarte (int tabAdherent[], int tabPoint[],int nb) tabAdherent[i] = tabAdherent[i] + 12; printf("accréditation de 12 points\n"); } - if (formule == 'B') + if (formule == 'C') { tabAdherent[i] = tabAdherent[i] + 20; printf("accréditation de 20 points\n"); @@ -228,8 +278,89 @@ void alimenterCarte (int tabAdherent[], int tabPoint[],int nb) 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; @@ -245,5 +376,21 @@ int SauvegardeAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[ 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; +// } + diff --git a/fonction.h b/fonction.h index 85b7a48..c5f74e9 100644 --- a/fonction.h +++ b/fonction.h @@ -1,30 +1,44 @@ #include +#include +int chargementAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tphys); -int recherche(int tabTri[], int val, int nb, int *trouve); +int chargementActivite(int tabPoint[],int tabNbEntree[], int tphys); +int recherche(int tabTri[], int val, int nb, int *trouve); void decalageDroite(int tabTri[], int nb, int pos); - void decalageGauche(int tabTri[], int nb, int pos); +int ajouter(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb, int val, int tmax); +int ajouterAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb, int tmax); -int ajouter(int tab[], int nb, int val, int tphys); +int suppression(int tab[], int tabPoints[], int jour[], int mois[], int annee[], int carte[],int nb, int val); -int ajouterAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb, int tmax); +void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille); +void affichageCarte(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb); +void affichageActivite(int tabCoutPoint[], int tabNbEntree[], int tailleL); -int suppression(int tab[], int tabPoints[], int nb, int val); +void affichageToutActivite(int tabCoutPoint[], int tabNbEntree[], int tailleL); +void affichageTest(int tabAdhe[], int nb); -int chargementAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tphys); +void afficheNbEntreAct(int tabNbEntree[], int tabCoutPoint[], int tphys); +void alimenterCarte (int tabAdherent[], int tabPoint[],int nb); -void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille); +void ajoutActivite(int tabCoutPoint[],int tabNbEntree[],int tailleL); -void affichageCarte(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int nb); +void suppActivite(int tabCoutPoint[], int tabNbEntree[],int tailleL); + +void faireActivite(int tabAdherent[], int tabPoint[],int tabCoutPoint[], int tabNbEntree[], int tailleLAdhe, int tailleLAct); + +int SauvegardeAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tailleL); + +int SauvegardeActivite(int tabCoutPoint[],int tabNbEntree[],int tailleL); -int SauvegardeAdherent(int tabAdherent[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tailleL); \ No newline at end of file +int supprimerAdherent(int tabAdhe[], int tabPoints[], int jour[], int mois[], int annee[], int carte[], int tailleL); \ No newline at end of file diff --git a/test.c b/test.c index 7f35cb6..f0be9b3 100644 --- a/test.c +++ b/test.c @@ -6,10 +6,11 @@ int main(void) { int tabAdhe[50], tabPoints[50], jour[50], mois[50], annee[50], carte[50], tailleL; int codeSauv, coderetour=-1; tailleL=chargementAdherent(tabAdhe,tabPoints,jour,mois,annee,carte,50); - affichageCarte(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); affichageTous(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); - ajouterAdherent(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL,50); + tailleL=ajouterAdherent(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL,50); affichageCarte(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); + tailleL=supprimerAdherent(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); + affichageTous(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); // affichageInfo(tabAdhe,tabPoints,jour,mois,annee,carte,tailleL); // tailleL=ajouter(tab,tailleL,69,50); // affichageTest(tab,tailleL);