From 56935ca509f858fd27fb376305d22b7d1ca0f042 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Tue, 22 Nov 2022 16:52:21 +0100 Subject: [PATCH] ajout du tp 10 d'Algorithme --- Algo/tp/tp10/exe | Bin 0 -> 17504 bytes Algo/tp/tp10/resultat.bin | Bin 0 -> 130 bytes Algo/tp/tp10/resultat.don | 5 ++ Algo/tp/tp10/testtp10.c | 7 +++ Algo/tp/tp10/tp10.c | 99 ++++++++++++++++++++++++++++++++++++++ Algo/tp/tp10/tp10.h | 17 +++++++ 6 files changed, 128 insertions(+) create mode 100755 Algo/tp/tp10/exe create mode 100644 Algo/tp/tp10/resultat.bin create mode 100644 Algo/tp/tp10/resultat.don create mode 100644 Algo/tp/tp10/testtp10.c create mode 100644 Algo/tp/tp10/tp10.c create mode 100644 Algo/tp/tp10/tp10.h diff --git a/Algo/tp/tp10/exe b/Algo/tp/tp10/exe new file mode 100755 index 0000000000000000000000000000000000000000..9340d2471fbc198f84ec6e39b350cf2802dd309f GIT binary patch literal 17504 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 r-yuIf91ov=>GH4U*YJU lnUj=SRDvp>lvtda0+R1=bj-_3Wk8qDFG^3$1Ia5m0ss{*CYk^M literal 0 HcmV?d00001 diff --git a/Algo/tp/tp10/resultat.don b/Algo/tp/tp10/resultat.don new file mode 100644 index 0000000..24592a6 --- /dev/null +++ b/Algo/tp/tp10/resultat.don @@ -0,0 +1,5 @@ +4 +Martin algo1 12.5 +Amélie maths 15.5 +Gilbert based 17.0 +Anne organ 10 \ No newline at end of file diff --git a/Algo/tp/tp10/testtp10.c b/Algo/tp/tp10/testtp10.c new file mode 100644 index 0000000..44add57 --- /dev/null +++ b/Algo/tp/tp10/testtp10.c @@ -0,0 +1,7 @@ +#include "tp10.h" + +int main(void) +{ + global(); + return 0; +} diff --git a/Algo/tp/tp10/tp10.c b/Algo/tp/tp10/tp10.c new file mode 100644 index 0000000..feb49c5 --- /dev/null +++ b/Algo/tp/tp10/tp10.c @@ -0,0 +1,99 @@ +#include "tp10.h" + +Resultat lireResultat(FILE *fe) +{ + Resultat c; + fscanf(fe, "%s\t%s\t%f", c.nom, c.cdmat, &c.moyenne); + return c; +} + +void afficheResultat(Resultat c) +{ + printf("%s\t%s\t%f\n", c.nom, c.cdmat, c.moyenne); +} + +Resultat *chargeTresultat(char *nomFic, int *nbres) +{ + Resultat *tab; + FILE *flot; + int i; + flot = fopen(nomFic, "r"); + if(flot == NULL) + { + printf("Pb d'ouverture du fichier resultat.don\n"); + exit(1); + } + fscanf(flot, "%d", nbres); + tab = (Resultat *)malloc(*nbres * sizeof(Resultat)); + if(tab == NULL) + { + printf("Pb, il n'y a rien dans le fichier resultat.don\n"); + exit(1); + } + for(i=0; i < *nbres; i++) + tab[i]=lireResultat(flot); + fclose(flot); + return tab; +} + +void afficheTresultat(Resultat *tab, int nbres) +{ + int i; + printf("\n"); + for(i = 0; i < nbres; i++) + afficheResultat(tab[i]); +} + +void sauveTresultat(Resultat *tRes, int nbres) +{ + FILE *flot; + int i; + flot = fopen("resultat.bin", "w"); + if(flot == NULL) + { + printf("Pb d'ouverture du fichier resultat.bin\n"); + exit(1); + } + fprintf(flot, "%d\n", nbres); + fwrite(tRes, sizeof(Resultat), nbres, flot); + fclose(flot); +} + +Resultat *restaureTresultat(char *nomfichier, int *nbres) +{ + Resultat *tab; + FILE *flot; + flot = fopen(nomfichier, "r"); + if(flot == NULL) + { + printf("Pb d'ouverture du fichier resultat.don\n"); + exit(1); + } + fscanf(flot, "%d\n", nbres); + tab = (Resultat *)malloc(*nbres * sizeof(Resultat)); + if(tab == NULL) + { + printf("Pb, il n'y a rien dans le fichier resultat.bin\n"); + exit(1); + } + fread(tab, sizeof(Resultat), *nbres, flot); + fclose(flot); + return tab; +} + +void global(void) +{ + Resultat *tab; + int nb; + char nomFic[20]; + printf("Entrez le nom du fichier à lire : "); + scanf("%s", nomFic); + tab = chargeTresultat(nomFic, &nb); + afficheTresultat(tab, nb); + sauveTresultat(tab, nb); + free(tab); + tab = restaureTresultat("resultat.bin", &nb); + afficheTresultat(tab, nb); + free(tab); +} + diff --git a/Algo/tp/tp10/tp10.h b/Algo/tp/tp10/tp10.h new file mode 100644 index 0000000..ce47418 --- /dev/null +++ b/Algo/tp/tp10/tp10.h @@ -0,0 +1,17 @@ +#include +#include +#include + +typedef struct{ + char nom[21]; + char cdmat[6]; + float moyenne; +} Resultat; + +Resultat lireResultat(FILE *fe); +void afficheResultat(Resultat c); +Resultat *chargeTresultat(char *nomFic, int *nbres); +void afficheTresultat(Resultat *tab, int nbres); +void sauveTresultat(Resultat *tRes, int nbres); +Resultat *restaureTresultat(char *nomFic, int *nbres); +void global(void);