From abe3449c16486a1a07820a1dbc32c1e4f02432b9 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Thu, 17 Nov 2022 11:50:47 +0100 Subject: [PATCH] ajout du tp9 d'algo --- Algo/tp/tp9/exe | Bin 0 -> 17528 bytes Algo/tp/tp9/matieres.txt | 5 ++ Algo/tp/tp9/testtp9.c | 26 ++++++++ Algo/tp/tp9/tp9.c | 130 +++++++++++++++++++++++++++++++++++++++ Algo/tp/tp9/tp9.h | 18 ++++++ 5 files changed, 179 insertions(+) create mode 100755 Algo/tp/tp9/exe create mode 100644 Algo/tp/tp9/matieres.txt create mode 100644 Algo/tp/tp9/testtp9.c create mode 100644 Algo/tp/tp9/tp9.c create mode 100644 Algo/tp/tp9/tp9.h diff --git a/Algo/tp/tp9/exe b/Algo/tp/tp9/exe new file mode 100755 index 0000000000000000000000000000000000000000..6ab82603a10f06883fabaac9388a2047e767831b GIT binary patch literal 17528 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 literal 0 HcmV?d00001 diff --git a/Algo/tp/tp9/matieres.txt b/Algo/tp/tp9/matieres.txt new file mode 100644 index 0000000..01b8b88 --- /dev/null +++ b/Algo/tp/tp9/matieres.txt @@ -0,0 +1,5 @@ +algo 4 algorithme périodique 1 +maths 2 mathématiques +maths 4 +maths 5 +math 5 sdjlkgf sdkjgf 55dsf diff --git a/Algo/tp/tp9/testtp9.c b/Algo/tp/tp9/testtp9.c new file mode 100644 index 0000000..0d4305a --- /dev/null +++ b/Algo/tp/tp9/testtp9.c @@ -0,0 +1,26 @@ +#include "tp9.h" + +void test(void) +{ + Mat tmat[50]; + int nbmat, res; + char code[6]; + nbmat = chargeFmat(tmat, 50); + if(nbmat < 0) + return; + afficheTmat(tmat, nbmat); + printf("Code de la matiere a rechercher : "); + scanf("%s", code); + res = rechMat(code, tmat, nbmat); + if(res == -1) + printf("Matiere non trouvee, code incorrect !!!\n"); + else + afficheMat(tmat[res]); +} + +void main(void) +{ + //test(); + ajoutMat(); + return; +} \ No newline at end of file diff --git a/Algo/tp/tp9/tp9.c b/Algo/tp/tp9/tp9.c new file mode 100644 index 0000000..f7a7d5b --- /dev/null +++ b/Algo/tp/tp9/tp9.c @@ -0,0 +1,130 @@ +#include "tp9.h" + +Mat lireMat(FILE *fe) +{ + Mat c; + fscanf(fe, "%s%d%*c", c.code, &c.coef); + fgets(c.desig, 32, fe); + c.desig[strlen(c.desig)-1] = '\0'; + return c; +} + +void afficheMat(Mat c) +{ + printf("%s\t%d\t%s\n", c.code, c.coef, c.desig); +} + +int chargeFmat(Mat tmat[], int nbmax) +{ + Mat c; + int i = 0; + FILE *fe; + fe = fopen("matieres.txt", "r"); + if (fe == NULL) + { + printf("Erreur d'ouverture du fichier"); + return -1; + } + c = lireMat(fe); + while(!feof(fe)) + { + if(i == nbmax) + { + printf("Probleme, tableau plein !!!"); + return -2; + } + tmat[i] = c; + i++; + c = lireMat(fe); + } + fclose(fe); + return i; +} + +void afficheTmat(Mat tmat[], int nbmat) +{ + int i; + printf("CodeM\tCoef\tDesignation\n"); + for(i = 0; i < nbmat; i++) + { + afficheMat(tmat[i]); + } + printf("\n"); +} + +int rechMat(char code[], Mat tmat[], int nbmat) +{ + int i; + for(i = 0; i < nbmat; i++) + { + if(strcmp(code, tmat[i].code) == 0) + { + return i; + } + } + return -1; +} + +Mat saisieMat(Mat tmat[], int nbmat) +{ + int res; + Mat c; + printf("Saisie d'une matiere\n"); + printf("Code:\t "); + scanf("%s", c.code); + res = rechMat(c.code, tmat, nbmat); + while(res != -1) + { + printf("\nErreur : Code déjà enregistré pour %s\n", tmat[res].desig); + printf("Retapez : \t"); + scanf("%s", c.code); + printf("%s", c.code); + res = rechMat(c.code, tmat, nbmat); + } + printf("\nCoefficient : \t"); + scanf("%d%*c", &c.coef); + printf("\nDesignation : \t"); + fgets(c.desig, 32, stdin); + c.desig[strlen(c.desig)-1] = '\0'; + return c; +} + +void ajoutMat(void) +{ + Mat tmat[50], c; + int nbmat, res; + char code[6], rep ='o'; + nbmat = chargeFmat(tmat, 50); + if(nbmat < 0) + return; + afficheTmat(tmat, nbmat); + while(rep == 'o') + { + if(nbmat == 50) + { + printf("Probleme, tableau plein !!!"); + break; + } + c = saisieMat(tmat, nbmat); + tmat[nbmat] = c; + nbmat++; + printf("\nAjouter une autre matiere ? (o/n)\t"); + scanf("%*c%c", &rep); + } + sauvFmat(tmat, nbmat); +} + +void sauvFmat(Mat tmat[], int nbmat) +{ + int i; + FILE *fe; + fe = fopen("matieres.txt", "w"); + if(fe == NULL) + { + printf("Erreur d'ouverture du fichier"); + return; + } + for(i = 0; i < nbmat; i++) + fprintf(fe, "%s\t%d\t%s\n", tmat[i].code, tmat[i].coef, tmat[i].desig); + fclose(fe); +} \ No newline at end of file diff --git a/Algo/tp/tp9/tp9.h b/Algo/tp/tp9/tp9.h new file mode 100644 index 0000000..ca36db6 --- /dev/null +++ b/Algo/tp/tp9/tp9.h @@ -0,0 +1,18 @@ +#include +#include +#include + +typedef struct { + char code[6]; + int coef; + char desig[32]; + } Mat; + +Mat lireMat(FILE *fe); +void afficheMat(Mat c); +int chargeFmat(Mat tmat[], int nbmax); +void afficheTmat(Mat tmat[], int nbmat); +int rechMat(char code[], Mat tmat[], int nbmat); +Mat saisieMat(Mat tmat[], int nbmat); +void ajoutMat(void); +void sauvFmat(Mat tmat[], int nbmat); \ No newline at end of file