From bfe18e54be4c3d225a261a445cb6d0dfa79da849 Mon Sep 17 00:00:00 2001 From: Alexis LAURENT Date: Mon, 7 Nov 2022 13:33:08 +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 --- .gitignore | 54 ++++++++++++ activite.txt | 0 fonction.c | 233 +++++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 272 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 activite.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cd531cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,54 @@ +# ---> C +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + diff --git a/activite.txt b/activite.txt new file mode 100644 index 0000000..e69de29 diff --git a/fonction.c b/fonction.c index d832a40..2981cb4 100644 --- a/fonction.c +++ b/fonction.c @@ -1,33 +1,236 @@ -#include "SAE.h" +#include "fonction.h" -void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour, int mois, int annee,int taille) +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) { 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) - { - print("numéro de carte %d n'est pas attribué.\n", idnum); - exit(1); + 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]); } - 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], int jour[i], int mois[i], int annee[i]); + 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], int jour[i], int mois[i], int annee[i]); + 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 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) +{ + 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"); +} + + + + +int SauvegardeAdherent(int tabAdherent[], 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\n",tabAdherent[i]); + } + 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]); + } + return 0; +} + + +