From 297f8a23b48d6884d910eb91e9d98fa390e32343 Mon Sep 17 00:00:00 2001 From: Alexis LAURENT Date: Mon, 7 Nov 2022 12:54:09 +0100 Subject: [PATCH] =?UTF-8?q?mise=20=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 + adherent.txt | 5 +- fonction.c | 209 ++++----------------------------------------------- fonction.h | 5 +- test.c | 25 +++++- 5 files changed, 46 insertions(+), 200 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..39167fb --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# SAE_Algo + diff --git a/adherent.txt b/adherent.txt index 3c11a7e..391a9ee 100644 --- a/adherent.txt +++ b/adherent.txt @@ -1,5 +1,6 @@ 2 -89 14 -77 56 +69 +77 +89 diff --git a/fonction.c b/fonction.c index 60bcd4c..d832a40 100644 --- a/fonction.c +++ b/fonction.c @@ -1,212 +1,33 @@ -#include "fonction.h" +#include "SAE.h" -int chargementAdherent(int tabAdherent[], int tphys) -{ - int adhe, i =0; - FILE*flot; - flot = fopen("adherent.txt","r"); - fscanf(flot,"%d",&adhe); - while(!feof(flot)) - { - if(i >= tphys) - { - printf("tableau plein\n"); - fclose(flot); - return i; - } - ajouter(tabAdherent,i,adhe,tphys); - i = i + 1; - fscanf(flot,"%d",&adhe); - } - 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 tab[], int nb, int val, int tphys) { - int pos, trouve; - if (nb == tphys) { - printf("Impossible d'insérer un nouvel élément, le tableau est plein !\n"); - return nb; - } - pos = recherche(tab, val, nb, &trouve); - if (trouve == 1) { - printf("Valeur déjà présente dans le tableau !\n"); - return nb; - } - decalageDroite(tab, nb, pos); - tab[pos] = val; - nb += 1; - return nb; -} - - -int suppression(int tab[], 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); - nb -= 1; - return nb; - -} - - -void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille) +void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour, int mois, int annee,int taille) { int i, idnum, trouve; printf("Votre Numéro de Carte d'Adhérent :"); - scanf("%d", &idnum); + scanf("%d", idnum); printf("Num Carte \t Points \t Date \n"); i = recherche(tabNumCarte, idnum, taille, &trouve); - if (trouve == 0) printf("numéro de carte %d n'est pas attribué.\n", idnum); - else { - printf("Num Carte \t Points \t Etat Carte \t Date \n"); - if (carte[i] == 0) - printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); - if (carte[i] == 1) - printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); + if (trouve == 0) + { + print("numéro de carte %d n'est pas attribué.\n", idnum); + exit(1); } + printf("Num Carte \t Points \t Etat Carte \t Date \n"); + if (carte[i] == 0) + printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]); + if (carte[i] == 1) + printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]); } -void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille) +void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour, int mois, int annee,int taille) { int i; printf("Num Carte \t Points \t Date \n"); for (i = 0; i < taille; i++) { if (carte[i] == 0) - printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); + printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]); if (carte[i] == 1) - printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); - } -} - - -void affichageTest(int tabAdhe[], int nb) { - int i; - printf("Numéro de carte\n"); - for (i = 0 ; i < nb ; i++) { - printf("%d\n",tabAdhe[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 i; - } - tabPoint[num] = point; - tabNbEntree[num] = nbEntree; - i = i + 1; - fscanf(flot,"%d %d %d",&num, &point, &nbEntree); - } - fclose(flot); - return i; -} - -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 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("Qu'elle 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 == 'B') - { - tabAdherent[i] = tabAdherent[i] + 20; - printf("accréditation de 20 points\n"); - } + printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]); } - if (trouve == 0) - printf("Erreur ! Numéro de carte absente de la base de donnée\n"); } - - - - - - - - - - diff --git a/fonction.h b/fonction.h index 3274aa4..af377c5 100644 --- a/fonction.h +++ b/fonction.h @@ -24,4 +24,7 @@ void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour[], i void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille); -void affichageTest(int tabAdhe[], int nb); \ No newline at end of file +void affichageTest(int tabAdhe[], int nb); + + +int SauvegardeAdherent(int tabAdherent[], int tailleL); \ No newline at end of file diff --git a/test.c b/test.c index e6a1d25..8ccf711 100644 --- a/test.c +++ b/test.c @@ -3,12 +3,31 @@ int main(void) { - int tab[50], tailleL; + int tab[50], tailleL, codeSauv, coderetour=-1; tailleL=chargementAdherent(tab,50); affichageTest(tab,tailleL); tailleL=ajouter(tab,tailleL,69,50); affichageTest(tab,tailleL); - tailleL=suppression(tab,tailleL,69); - affichageTest(tab,tailleL); + // tailleL=suppression(tab,tailleL,69); + // affichageTest(tab,tailleL); + printf("Sauvegarder ? (1 : Oui, 2 : Non)\n"); + scanf("%d",&codeSauv); + if (codeSauv == 1) { + + while(coderetour == -1) { + coderetour = SauvegardeAdherent(tab,tailleL); + if (coderetour == 0) { + printf("Sauvegarde réussie !\n"); + break; + } + else { + printf("Sauvegarde échouée\n"); + printf("Réessayer ?(1 : Oui, 2 : Non\n"); + scanf("%d",&codeSauv); + if (codeSauv == 2) break; + + } + } + } return 0; } \ No newline at end of file