From f39ebcf364253de60c5aa50d4635408ed3ce0d40 Mon Sep 17 00:00:00 2001 From: yoboujon Date: Mon, 28 Nov 2022 23:24:50 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20fonction=20qui=20r=C3=A9cup?= =?UTF-8?q?=C3=A8re=20le=20nom=20de=20toutes=20les=20=C3=A9quipe=20d'une?= =?UTF-8?q?=20liste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- header/liste.h | 5 +++- header/readfile.h | 3 ++- src/liste.c | 60 +++++++++++++++++++++++++++++++++++++++++------ src/readfile.c | 3 +-- 4 files changed, 60 insertions(+), 11 deletions(-) diff --git a/header/liste.h b/header/liste.h index 102d061..da029f2 100644 --- a/header/liste.h +++ b/header/liste.h @@ -4,7 +4,7 @@ #include "coureur.h" //inclure le fichier "coureur.h" qui contien les libs et la structure coureur #define TEMPSMAX 300 #define TEMPSMIN 80 -#define TEMPSDOP 78 +#define TEMPSDOP 79 struct element{ //definition de la structure qui element qui sera encaspule/chaine coureur * coureurActuel; //"contient" l'adresse d'une structure coureur @@ -33,5 +33,8 @@ int tailleListe(liste l); //retourne le no coureur * getCoureur(liste l,int nb); //retourne le courreur contenue dans l'element nb d'une liste (on considere un element 0) void invertCoureur(liste * l,int nb); //inverse l'element nb et nb+1 dans une liste (on considere un element 0) void triListe(liste * l,int taille); //trie bulle des element d'une liste a partir du temps contenue dans la structure encapsule dans l'element +char ** initMatrix(int sizeCol,int sizeLine); +bool isStringInMatrix(char ** matrix, char * string, int size); +void readTeams(char ** matrix, int sizeCol, int sizeLine, liste l); int test(void); #endif \ No newline at end of file diff --git a/header/readfile.h b/header/readfile.h index d6362be..e0daf4e 100644 --- a/header/readfile.h +++ b/header/readfile.h @@ -5,10 +5,11 @@ #include #include #include "liste.h" +#define MAXLINE 50 int getNbLines(void); int getFileSize(FILE * readFile); -liste getStringFromFile(int nbLines,int * size, int * stepsNb,int * teamsNb); +liste getListFromFile(int nbLines,int * size, int * stepsNb,int * teamsNb); char * getLine(char * string,int line); liste string2Liste(char * string,int nbLines); void string2Coureur(char * string,char * nom, char * prenom, int * dossard); diff --git a/src/liste.c b/src/liste.c index 4749435..1b29db8 100644 --- a/src/liste.c +++ b/src/liste.c @@ -6,7 +6,7 @@ int main(void) int size, stepsNb, teamsNb, listeTaille, dopageCount=0; srand(time(NULL)); int fileLines = getNbLines(); - liste l = getStringFromFile(fileLines,&size,&stepsNb,&teamsNb); + liste l = getListFromFile(fileLines,&size,&stepsNb,&teamsNb); liste dopageList = initListe(); listeTaille = tailleListe(l); @@ -27,13 +27,13 @@ int main(void) allerDebut(&l); } allerDebut(&l); - printf(" --- AVANT : ---\n"); - printlist(l); + char ** tabTeam = initMatrix(teamsNb,MAXLINE); + readTeams(tabTeam,teamsNb,MAXLINE,l); dopageCount=effacerListe(&l,&dopageList); - printf("\n --- APRES : ---\n"); + //printf("\n --- CLASSEMENT GENERAL : ---\n"); triListe(&l,tailleListe(l)); - printlist(l); - printf("\n --- NOMBRE DE PERSONNES DOPEES : %d ---\n",dopageCount); + //printlist(l); + //printf("\n --- NOMBRE DE PERSONNES DOPEES : %d ---\n",dopageCount); return 0; } @@ -344,9 +344,55 @@ void triListe(liste * l,int taille) } } +/** + * @brief Initialise un tableau de chaîne de caractères + * + * @param sizeCol taille des colonnes + * @param sizeLine taille de chaque ligne + * @return int** Une matrice de caractère + */ +char ** initMatrix(int sizeCol,int sizeLine) +{ + char ** matrix; + matrix = (char **)(malloc(sizeLine*sizeof(char *))); + for(int i=0;isuiv != elementFin->suiv) + { + if(!isStringInMatrix(matrix,elementCourant->coureurActuel->equipe,sizeCol)) + { + matrix[i]=elementCourant->coureurActuel->equipe; + i++; + } + elementCourant=elementCourant->suiv; + } +} + int test(void) { - coureur * c1 = creerCoureur("Paris","Simon",15,"TRAUFORE",50000); + coureur * c1 = creerCoureur("Paris","Simon",15,"TRAUFORE",50000); coureur * c2 = creerCoureur("Bougeont","Yoann",65,"MEILLEUR",99994); coureur * c3 = creerCoureur("Barakai","Obama",120,"AMERICA",372); coureur * c4 = creerCoureur("Boujon","Yohan",56,"MAISYEUR",49999); diff --git a/src/readfile.c b/src/readfile.c index 956e933..b315ca5 100644 --- a/src/readfile.c +++ b/src/readfile.c @@ -1,5 +1,4 @@ #include "../header/readfile.h" -#define MAXLINE 50 /** * @brief Récupère le nombre de ligne d'un fichier @@ -36,7 +35,7 @@ int getNbLines(void) * @param teamsNb int * renvoi le nombre d'équipes * @return liste de coureurs */ -liste getStringFromFile(int nbLines,int * size, int * stepsNb,int * teamsNb) +liste getListFromFile(int nbLines,int * size, int * stepsNb,int * teamsNb) { liste l = initListe(); FILE * readFile=fopen("fichier_coureurs.txt","r");