From c22327fcedb97cdc392f1b204e6a105839dac399 Mon Sep 17 00:00:00 2001 From: yoboujon Date: Thu, 1 Dec 2022 23:49:05 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20commentaires=20et=20d?= =?UTF-8?q?u=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 58 ++++++++ header/coureur.h | 72 +++++++++- header/liste.h | 331 +++++++++++++++++++++++++++++++++++++++++++--- header/readfile.h | 78 +++++++++++ img/coureurs.png | Bin 0 -> 29450 bytes img/doxygen.png | Bin 0 -> 10862 bytes img/elimine.png | Bin 0 -> 6878 bytes img/final.png | Bin 0 -> 16234 bytes img/general.png | Bin 0 -> 52314 bytes img/tp.png | Bin 0 -> 21345 bytes src/coureur.c | 48 ++----- src/liste.c | 311 +++++++++++-------------------------------- src/readfile.c | 80 +++-------- 13 files changed, 621 insertions(+), 357 deletions(-) create mode 100644 img/coureurs.png create mode 100644 img/doxygen.png create mode 100644 img/elimine.png create mode 100644 img/final.png create mode 100644 img/general.png create mode 100644 img/tp.png diff --git a/README.md b/README.md index e7f3c2d..c0089a2 100644 --- a/README.md +++ b/README.md @@ -1 +1,59 @@ # TP Langage C +![tpcoureur](/img/tp.png) + +[![doxygen](/img/doxygen.png)](https://etheryo.fr/insa/tpcoureur/index.html) +## Introduction +Le programme tpcoureur fonctionne de manière aléatoire. + +A chaque lancement du programme les coureurs sont lu à partir du fichier +[fichier_coureur.txt](fichier_coureurs.txt). Ces derniers vont être ensuite mis dans une liste, dans le même ordre que donné par le fichier. Ce fichier possède une convention particulière, soit : +> `1` Nombre d'étapes\ +`1` Nombre d'équipe\ +`x` Nom de l'équipe *x* +>>`5x` N° de dossard, Nom, `d'un coureur de l'équipe x`\ +... + +Les variables définies +> `TEMPSMAX` Temps maximum qu'un coureur peut avoir\ +`TEMPSMIN` Temps minimum qu'un coureur peut avoir\ +`TEMPSDOP` Temps pour les joueurs dopés *(Inférieur à `TEMPSMIN`)*\ + +Chaque calcul de temps est randomisé selon ces variables. Elles peuvent être changées pour avoir des temps finaux différents. Mais surtout change la chance qu'un joueur soit dopé. + +Le programme va tout d'abord supprimer les coureurs dopés et trier avec l'algorithme du [tri bulle][bullewiki] dans l'ordre croissant. Il va ensuite afficher les équipes éliminées : une équipe est éliminée si elle possède moins de `3 joueurs`. Et enfin elle affiche le classement final des **équipes uniquement**, seuls les temps des 3 meilleurs coureurs sont comptés. + +En premier lieu les différents participants sont affichés : + +![coureurs](img/coureurs.png) + +Différents classements sont affichés. Tout d'abord le general : + +![general](img/general.png) + +Ensuite les différentes personnes dopées ainsi que les équipe éliminées : + +![general](img/elimine.png) + +Et enfin le classement final : + +![final](img/final.png) + +## Installation + +Le [Makefile](/Makefile) permet de compiler et lancer le programme. Il permet aussi de nettoyer les résidus de la compilation. Pour cela il est possible de faire différentes commandes : +``` +make +``` +*Compile et lance le programme* +``` +make clean +``` +*Supprime les fichiers d'output ainsi que l'executable* +``` +./main +``` +*Lance le programme s'il est déjà compilé* + +A noter que sur windows Le Makefile produit une erreur 127. Cela n'est produit qu'en compilation et non à l'execution. + +[bullewiki]: https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles \ No newline at end of file diff --git a/header/coureur.h b/header/coureur.h index 40809f0..f3ce772 100644 --- a/header/coureur.h +++ b/header/coureur.h @@ -1,3 +1,13 @@ +/** + * @file coureur.h + * @author Yohan Boujon (boujon@insa-toulouse.fr) + * @author Simon Paris (pari@insa-toulouse.fr) + * @version 1.0 + * @date 2022-12-01 + * + * @copyright Copyright (c) 2022 + * + */ #ifndef HEADER_COUREUR #define HEADER_COUREUR #include @@ -5,7 +15,22 @@ #include #include -typedef struct{ //definition de la structure coureur +/** + * @struct coureur + * @brief definition de la structure d'un coureur + * + * @var coureur::nom + * Nom du coureur + * @var coureur::prenom + * Prénom du coureur + * @var coureur::dossard + * Numéro de dossard du coureur + * @var coureur::equipe + * Nom de l'équipe du coureur + * @var coureur::temps + * Son temps en seconde + */ +typedef struct{ char * nom; char * prenom; int dossard; @@ -13,9 +38,46 @@ typedef struct{ //definition de la structure int temps; } coureur; -//Prototype -coureur * creerCoureur(char nom[],char prenom[],int dossard, char equipe[],int temps);//Creation d'un coureur en memoire avec recupération de son adrresse avec le parametrage de c'est different champs -void ajouterTemps(int leTemps,coureur * leCoureur); //Modifier le temps d'un coureur a partir de son adresse et d'une valeur de cumule -void afficherCoureur(coureur * leCoureur); //Afficher le temps d'un coureur stocker en seconde sous forme d'heures, de minutes et de secondes ( a partir de l'adresse de sa structure de définition) +/** + * @brief Creation d'un coureur en memoire avec recupération de son adresse avec le parametrage de ses differents champs + fonctionnement : + -strcpy pour remplir les champs + -strlen renvoie taille d'une chaine pour une allocation exacte + * + * @param nom + * @param prenom + * @param dossard + * @param equipe + * @param temps + * @return coureur* l'adresse qui pointe sur la structure cree + */ +coureur * creerCoureur(char nom[],char prenom[],int dossard, char equipe[],int temps); + +/** + * @brief Modifier le temps d'un coureur a partir de son adresse et d'une valeur de cumule + * + * @param leTemps Temps que l'on souhaite cumulee au temps actuel d'un coureur + * @param leCoureur Represente le coureur dont on modifie le temps + */ +void ajouterTemps(int leTemps,coureur * leCoureur); + +/** + * @brief Afficher le temps d'un coureur stocker en seconde sous forme d'heures, de minutes et de secondes ( a partir de l'adresse de sa structure): + * Affiche egalement le contenue des autres champs + * @param leCoureur Represente le coureur dont on souhaite affichée le temps + */ +void afficherCoureur(coureur * leCoureur); + +/** + * @brief Convertion des secondes à un format heures,minutes et secondes + * -calcul d'heures qui renvoie uniquement la partie entier + * -calcul de minutes qui renvoie uniquement la partie entier avec la prise en compte des heures soustraite en minutes + * -calcul de seconde qui renvoie uniquement la partie entier avec la prise en compte des heures soustraite en secondes et des minutes en secondes + * + * @param secondsIN les secondes à rentrer + * @param hour les heures en sortie + * @param minute les minutes en sortie + * @param second les secondes en sortie + */ void formatSecond(int secondsIN, int* hour, int* minute, int* second); #endif \ No newline at end of file diff --git a/header/liste.h b/header/liste.h index fe8c2ad..678858f 100644 --- a/header/liste.h +++ b/header/liste.h @@ -1,3 +1,13 @@ +/** + * @file liste.h + * @author Yohan Boujon (boujon@insa-toulouse.fr) + * @author Simon Paris (pari@insa-toulouse.fr) + * @version 1.0 + * @date 2022-12-01 + * + * @copyright Copyright (c) 2022 + * + */ #ifndef HEADER_LISTE #define HEADER_LISTE #include @@ -6,43 +16,322 @@ #define TEMPSMIN 80 #define TEMPSDOP 70 -struct element{ //definition de la structure qui element qui sera encaspule/chaine - coureur * coureurActuel; //"contient" l'adresse d'une structure coureur - struct element * suiv; //"contient" l'adresse d'une autre strucutre element(chainage) +/** + * @struct element + * @brief definition de la structure qui element qui sera encaspule/chaine + * + * @var element::coureurActuel + * "contient" l'adresse d'une structure coureur + * @var element::suiv + * "contient" l'adresse d'une autre strucutre element(chainage) + */ +struct element{ + coureur * coureurActuel; + struct element * suiv; }; -typedef struct{ //definition de la structure liste qui "contient" l'encaspsulation - struct element * debut; //"contient" un element en debut *voir init dans liste.c - struct element * courant; //"contient"element actuel *voir init dans liste.c - struct element * fin; //"contient"element en fin de la liste (NULL) *voir init dans liste.c +/** + * @struct liste + * @brief definition de la structure liste qui "contient" l'encaspsulation + * + * @var liste::debut + * "contient" un element en debut + * @var liste::courant + * "contient"element actuel + * @var liste::fin + * "contient"element en fin de la liste (NULL) + */ +typedef struct{ + struct element * debut; + struct element * courant; + struct element * fin; } liste; -//Prototype de fonction -struct element * initElement(void); //initialise un element en memoir qui encapsule une strucure de coureurau champs vide -liste initListe(void); //initialise chaque element de la liste a partir de initElement -void ajoutListe(liste * listeActuel,coureur * leCoureur); //ajoute un element contenant un courreur dans le chainage d'une liste -void printlist(liste l); //afficher le coureur dans chaque element d'une liste -void allerDebut(liste * l); //mettre le poiteur courant sur l'element premier d'une liste -void allerFin(liste * l); //mettre le poiteur courant sur l'element de fin d'une liste -void avancer(liste * l); //mettre le poiteur courant sur l'element suivant de la liste dans la qu'elle qu'il pointe -coureur * coureurCourant(liste * l); //rien a foutre ici -bool effacerCoureur(liste * listeActuel,coureur * coureurSuppr, bool returnSuiv);//enleve un element d'une liste a partir de l'adresse d'un courreur, sans briser le chainage +/** + * @brief initialise un element en memoire qui encapsule une strucure de coureur au champs vide + * + * @return returnElement retourne un element vierge + */ +struct element * initElement(void); + +/** + * @brief initialise chaque elements de la liste a partir de initElement + * + * + * @return l + */ +liste initListe(void); + +/** + * @brief ajout d'un element contenant un coureur dans liste + * fonctionnement : + -Creation element vierge + -l'element vierge recoi le coureur passer en parametre + -l'element vierge poite sur le premier element + -le poiteur du premier element contenu dans liste pointe sur le nouvelle element(vierge) + -le poiteur courant contenu dans la liste pointe sur le nouvelle element + * @param listeActuel liste ou l'on rajoute un element + * @param leCoureur le coureur qui sera contenu dans l'element rajoutee + */ +void ajoutListe(liste * listeActuel,coureur * leCoureur); + +/** + * @brief affiche tous les coureurs contenu dans les elements d'une liste + * fonctionnement : + -declaration d'un poiteur eCourant egale l'adresse du premiere element (variable temporaire) + -Tant que eCourant->suiv n'est pas egale a l'adresse du derniere element faire : + -affichee le coureur dans l'element d'adresse eCourant + -eCourant devient l'adresse de l'element suivant + + * @param l liste a affiche + */ +void printlist(liste l); + +/** + * @brief Mettre le poiteur courant d'une liste sur le premiere element + * + * @param l liste ou l'on modifie le poiteur courant + */ +void allerDebut(liste * l); + +/** + * @brief Mettre le poiteur courant d'une liste sur le derniee element + * + * @param l liste ou l'on modifie le poiteur courant + */ +void allerFin(liste * l); + +/** + * @brief Mettre le poiteur courant sur l'element suivant + * + * @param l liste ou l'on modifie le poiteur courant + */ +void avancer(liste * l); + +/** + * @brief Retourne le coureur encapsulee dans l'element pointer par le pointeur courant + * + * @param l liste ou l'on modifie le poiteur courant + */ +coureur * coureurCourant(liste * l); + +/** + * @brief suprime un element(a partir de l'adresse d'un coureur) dans la liste sans briser le chainage + * fonctionnement : + -declaration d'un poiteur eParcours egale l'adresse du premiere element (variable temporaire) + -declaration d'un poiteur(ePrevious) qui stockera temporairement l'adresse des elements pendant la reconstruction du chainage + -si l'element a supprimer est le premiere element de la liste : + -le poiteur courant pointe sur l'element suivant + -le poiteur pointant sur le premiere element poite sur le deuxieme + -si l'element a suppr n'est pas le deuxieme : + -ePrevious egale l'adresse du premiere element + -eParcours egale l'adresse du deuxieme element + -tant que l'element poitee par eParcours ne contient pas le coureur a supprimer faire : + -ePrevious pointe sur l'element suivant + -eParcours pointe sur l'element suivant + -l'element avant celui a suprimer pointe sur l'element sur le qu'elle poite l'element a supprimer + -supression de l'element + + * @param listeActuel Liste ou l'on suppr un element + * @param coureurSuppr le coureur qui doit etre dans l'element pour le supprimer + */ +bool effacerCoureur(liste * listeActuel,coureur * coureurSuppr, bool returnSuiv); + +/** + * @brief Cherche si un coureur existe dans une liste + * + * @param l la liste en question + * @param c le coureur cherché + * @return true / false + */ bool doesCoureurExist(liste* l,coureur * c); + +/** + * @brief A partir d'une liste source supprime tous les éléments en commun + * + * @param destination liste à modifier + * @param source liste des éléments à supprimer + * @return int nombre d'éléments supprimés + */ int effacerListe(liste * destination, liste * source); -int tailleListe(liste l); //retourne le nombre d'elements chaine d'une liste -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 + +/** + * @brief Renvoie le nombre d'elements d'une liste + fonctionnement : + -initilisation a 0 d'un compteur (int) + -declaration d'un poiteur elementActuel initialiser au poiteur debut present dans liste qui pointe sur le premier element du chainage + -tant que elementActuel n'est pas egale a l'adresse du derniere element faire + -increment compteur + -elementActuel pointe sur l'element suivant + -retourne le compteur + + * + * @param l l la liste dont on ve connaitre la taille + * @return int le nombre d'element (on compte a partir de 0) + */ +int tailleListe(liste l); + +/** + * @brief retourne le coureur contenu dans l'element nb d'une liste (on considere un element 0) + * fonctionnement : + -init elementCourant a l'adresse du premiere element de la liste + -pour i allant de 0 a nb-1 + -a la fin de la boucle elementcourant pointe sur l'element nb (on considere un element 0) + -renvoie le coureur encapsulee dans l'element nb + * @param l la liste ou doit se trouver l'element encapsulant le coureur + * @param nb le numero d'element rechercher + * @return coureur* + */ +coureur * getCoureur(liste l,int nb); + +/** + * @brief inverse l'element nb et nb+1 dans une liste (on considere un element 0) + * fonctionnement : + -declaration d'un poiteur elementCourant initialiser au poiteur debut present dans liste qui pointe sur le premier element du chainage + -declaration et allocation en memoire(a l'adresse *elemeentPrecedent) d'une taille de structure element de type element + -pour i allant de 0 a nb-1 faire : + -en fin de boucle elementCourant poite sur l'element nb et elementPrecendent nb-1 + + -declaration de elementsuivant qui poite sur l'element nb+1 + -elementCourant pointe sur nb+1 + -elementSuivant pointe sur nb + -si l'element a intervertir est le premier : + -le poiteur courant pointe sur l'ancien deuxieme element + -le poiteur debut pointe sur l'ancien deuxieme + -si l'element a intervertir diff du premier : + -element nb-1 pointe sur element nb + -le poiteur courant pointe sur le premier element + * @param l liste ou l'on inverse les elements + * @param nb le numero d'element inverser avec nb+1 + */ +void invertCoureur(liste * l,int nb); + +/** + * @brief trie bulle des elements d'une liste a partir du temps contenu dans la structure encapsuler dans l'element + * fonctionnement : + -pour i allant du nombre d'element dans la liste a 2 step -1 + -pour j allant de 0 a i-1 step 1 + -si lecoureur taille -i a un temps < au coureur taille-i+1 + -inverser les coureurs j et j+1 + + * @param l liste a trier + * @param taille represente la taille de la liste + */ +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); + +/** + * @brief Detecte si une chaîne de caractères est présente dans un + * tableau de chaîne de caractères + * + * @param matrix tableau de chaîne de caractères + * @param string chaîne de caractère + * @param size nombre de lignes + * @return true / false + */ bool isStringInMatrix(char ** matrix, char * string, int size); + +/** + * @brief Donne le nom de chaque équipe dans un tableau de chaîne de caractères + * + * @param matrix tableau de chaîne de caractère + * @param sizeCol taille des colonns + * @param sizeLine taille des lignes + * @param l la liste composant les noms des équipes + */ void readTeams(char ** matrix, int sizeCol, int sizeLine, liste l); + +/** + * @brief Compte le nombre de joueur dans chaque équipe et le met dans une liste + * d'entiers + * + * @param teamNames les noms de chaque équipe + * @param sizeCol taille de la colonne des noms de chaque équipe + * @param list la liste que l'ont veut analyser + * @return int* tableau en commun avec le nom des équipes du nombre de joueur + */ int * teamsCount(char ** teamNames, int sizeCol, liste list); + +/** + * @brief Elimine une équipe si elle a moins de lessThanCoureurCount + * + * @param teamNames les noms de chaque équipe + * @param sizeCol taille de la colonne des noms de chaque équipe + * @param list la liste que l'ont veut analyser + * @param coureursInTeams nombre de joueur par équipe + * @param lessThanCoureurCount int + */ void removeTeam(char ** teamNames, int sizeCol, liste * list, int * coureursInTeams, int lessThanCoureurCount); + +/** + * @brief Récupère l'élément courant de la liste + * + * @param l liste + * @return struct element* + */ struct element * getElementCourant(liste l); + +/** + * @brief Affiche les équipes et le nombre de coureurs + * + * @param teamsNames les noms de chaque équipe + * @param coureurInTeams nombre de coureur dans chaque équipe + * @param teamsNB nombre d'équipes + */ void printTeamsDetails(char ** teamsNames, int * coureurInTeams, int teamsNB); + +/** + * @brief Affiche les équipes composés d'un certain nombre de coureur + * + * @param num le nombre de coureur auquel l'équipe doit être égale + * @param teamsNames les noms de chaque équipe + * @param coureurInTeams nombre de coureur dans chaque équipe + * @param teamsNB nombre d'équipes + */ void printTeamsDetailsFor(int num, char ** teamsNames, int * coureurInTeams, int teamsNB); + +/** + * @brief Supprime les coureurs s'il y a plus de maxCoureur + * + * @param maxCoureur nombre de coureur max dans une équipe + * @param list liste à analyser + * @param teamNames nom des équipes + * @param sizeCol taille de la colonne des équipe/nombre d'équipes + */ int * keepOnlyCoureur(int maxCoureur, liste * list, char ** teamNames, int sizeCol); + +/** + * @brief Tri une liste de int ainsi qu'une liste de chaîne de caractère associé + * + * @param temps liste de int + * @param taille taille de cette liste + * @param teams liste de chaîne de caractère (doit être de la même taille) + */ void triTemps(int * temps, int taille,char ** teams); + +/** + * @brief Affiche le temps ainsi que les équipes + * + * @param temps liste de temps en int + * @param teams liste de chaîne de caractères, les équipes + * @param taille taille des deux listes (doivent être égales) + * @param ignore le chiffre qui doit être ignoré (si vous voulez le désactiver, choisissez un nombre impossible) + */ void printTeamsTimes(int * temps, char ** teams, int taille, int ignore); + +/** + * @brief Fonction de test + * + * @return int renvoie zéro si réussie + */ int test(void); #endif \ No newline at end of file diff --git a/header/readfile.h b/header/readfile.h index e0daf4e..f49a37e 100644 --- a/header/readfile.h +++ b/header/readfile.h @@ -1,3 +1,13 @@ +/** + * @file readfile.h + * @author Yohan Boujon (boujon@insa-toulouse.fr) + * @author Simon Paris (pari@insa-toulouse.fr) + * @version 1.0 + * @date 2022-12-01 + * + * @copyright Copyright (c) 2022 + * + */ #ifndef HEADER_READFILE #define HEADER_READFILE #include @@ -7,12 +17,80 @@ #include "liste.h" #define MAXLINE 50 +/** + * @brief Récupère le nombre de ligne d'un fichier + * + * @param readFile le fichier en question + * @return int nombre de ligne + */ int getNbLines(void); + +/** + * @brief Converti les caractères d'un fichier dans la liste de coureur. + * + * @param nbLines nombre de ligne du fichier qui va être lu + * @param size renvoie la taille de la chaîne de caractère + * @param stepsNb int * renvoi le nombre d'étapes + * @param teamsNb int * renvoi le nombre d'équipes + * @return liste de coureurs + */ int getFileSize(FILE * readFile); + +/** + * @brief récupère la taille du fichier, est assez grossier et ne sert qu'à + * initialiser les tableaux pour ne pas avoir une taille à prédéfinir. + * + * @param readFile fichier en question + * @return int taille du fichier + */ liste getListFromFile(int nbLines,int * size, int * stepsNb,int * teamsNb); + +/** + * @brief /!\/!\/!\ Debug uniquement /!\/!\/!\ : + * récupère une ligne, non optimisé donc inutilisable + * + * @param string la chaîne de caractère à analyser + * @param line int la ligne à récupérer + * @return char* la ligne sous un string + */ char * getLine(char * string,int line); + +/** + * @brief /!\/!\/!\ INUTILISE CAR OBSELETE /!\/!\/!\ : + * Renvoi une liste à partir d'une chaîne de caractère contenant + * les équipes ainsi que les coureurs avec leur nom, leur prénom et numéro de dossard + * + * @param string chaîne de caractère + * @param nbLines nombre de ligne max de la chaîne de caractère + * @return liste des coureurs + */ liste string2Liste(char * string,int nbLines); + +/** + * @brief A partir d'une ligne récupère les informations sur le coureur, + * Notamment son numéro de dossard, son nom et son prénom + * + * @param string char * ligne textuel + * @param nom char * renvoi le nom du coureur, doit être vide + * @param prenom char * renvoi le nom du coureur, doit être vide + * @param dossard int * renvoi le numéro du dossard + */ void string2Coureur(char * string,char * nom, char * prenom, int * dossard); + +/** + * @brief Supprime les retours à la ligne dans les chaînes de caractère. + * Attention ! les remplace par le caractère signifiant la fin de la chaîne. + * + * @param string chaîne de caractère + */ void deleteLineFeed(char * string); + +/** + * @brief /!\/!\/!\ Debug uniquement /!\/!\/!\ : + * Permet d'observer les valeurs de chaque caractère. + * la taille n'est pas demandée pour observer au delà de l'espace mémoire donné + * + * @param string un tableau de caractère + */ void printHexString(char * string); #endif \ No newline at end of file diff --git a/img/coureurs.png b/img/coureurs.png new file mode 100644 index 0000000000000000000000000000000000000000..d88bddd8fe6dd853720f5726fb7b3b6d9e5527b4 GIT binary patch literal 29450 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 R-Os;->T4Tmm1@|B{4Y{a1Csy% literal 0 HcmV?d00001 diff --git a/img/elimine.png b/img/elimine.png new file mode 100644 index 0000000000000000000000000000000000000000..38d3508a0af625517a497da709f246fc76511ea9 GIT binary patch literal 6878 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 C6u=Vz literal 0 HcmV?d00001 diff --git a/img/general.png b/img/general.png new file mode 100644 index 0000000000000000000000000000000000000000..28438c1bd0129ad027987f0e38aa29b887d63223 GIT binary patch literal 52314 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 literal 0 HcmV?d00001 diff --git a/img/tp.png b/img/tp.png new file mode 100644 index 0000000000000000000000000000000000000000..0ebb6c25bf2d8800b772a2f8f7c510666542b6d2 GIT binary patch literal 21345 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�XEk=lwB>e=BpproE5($`}lR1_0t40eU zLik9xXCJn6WZIDt_gYFu3g%9#%`yvZa>9S{SKMn$ixQhq_COkjIA-W z9$X02mL#?4`akpWbY2;f%(b?8*)sL&M6g+r->~1YHI2n)F_s-L$?IbR6!<^WpVtEo zDDB$$(1?QchLK>U^nG+WBClOL8#m+C{9b;?NhxQ0^v)fKM5SH|Nn6g>RfY6zAx4a5$aPYY7J75hoM2Aak|6y;k|15hzpT_1 z2qt_Ed{2KN-_FrmSp~Vj=OZ6KWhXoue&*T;<07$eInS9=3NFdEU&a5Ni7cE!-NPVNrJO1uM5a zYs@rCd?0YVuQ!6cL>Pd8i~L*Dh&PB~cG}_`H1fOa>G0_~5Llw^K9DX8l%m?Z5v`XN2zoE4JO3n;E19$T zcQ|v)0#^Qe<`!!6E+KzbHr`yilMBW+;N#1(;1wwNF%L&hJy1M@uZG;PRnllDpF<6W z3-kyg8eVrS59Ht$|AJzuEe2`qPaNb8^I1lU-HcyfTt%<|)Mw2Q@Q(VIHPqrdlKYTu zB@2D$+@^G0=`;4ZR|l|i4xG7QUfvH0@oRUNG>jXIBs(Dria{5C!~4{VcmJr*>&gpE zc{1v^J4zDN&`&-Y1Z@tdeb^`t*0-*?ch+;!guM6%1e!Y1om*~Av3=pX-v+M9i?||) zDdwII2ufP8Mue1^H$C2v@J`udMB&jWj$rmOYI3pl1M@ax0MdrJz-rqt9mIZ=?Q}+2xMz%h4|_OK1l= zZ$Vl0DHID%v-dnzV!}F@e&Cva;Z(Vri z_h&7h_jSsb*AQnTgGwozh1Ay=FT0DiR@h6G>Yl2|{n7hd^8TS7VPZ=HuK98j5X3!h9dX2567eE)8nf!*UKC3lV(F%G@BLv z$v5hmmp4WVs`IZ?{Jy>kAAJ{wIF)MZe6qHY!N>5LH9e|R_d{qXU{J>U(sv zJ>V##Y7YZ(wUXOr?K^N#+(iigj}eU|X0Q2g8!_za_0N2fUDy)PZE|o`kneQcF~PJj LwYpMn;vV;3vVyvB literal 0 HcmV?d00001 diff --git a/src/coureur.c b/src/coureur.c index 59d4d72..3911b03 100644 --- a/src/coureur.c +++ b/src/coureur.c @@ -1,18 +1,17 @@ -#include "../header/coureur.h" //inclure le fichier "coureur.h" qui contien les libs, structure et prototypes - /** - * @brief Creation d'un coureur en memoire avec recupération de son adrresse avec le parametrage de c'est different champs - fonctionnement : - -strcpy pour remplir les champs - -strlen renvoie taille d'une chaine pour une allocation exacte + * @file coureur.c + * @author Yohan Boujon (boujon@insa-toulouse.fr) + * @author Simon Paris (pari@insa-toulouse.fr) + * @brief Gère les coureurs + * @version 1.0 + * @date 2022-12-01 + * + * @copyright Copyright (c) 2022 * - * @param nom - * @param prenom - * @param dossard - * @param equipe - * @param temps - * @return coureur* l'adresse qui pointe sur la structure cree */ +#include "../header/coureur.h" + + coureur * creerCoureur(char nom[],char prenom[],int dossard, char equipe[],int temps) { coureur * leCoureur = malloc(sizeof(coureur)); @@ -30,23 +29,12 @@ coureur * creerCoureur(char nom[],char prenom[],int dossard, char equipe[],int t return leCoureur; } -/** - * @brief Modifier le temps d'un coureur a partir de son adresse et d'une valeur de cumule - * - * @param leTemps Temps que l'on souhaite cumulee au temps actuel d'un coureur - * @param leCoureur Represente le coureur dont on modifie le temps - */ + void ajouterTemps(int leTemps,coureur * leCoureur) { leCoureur->temps+=leTemps; } -/** - * @brief Afficher le temps d'un coureur stocker en seconde sous forme d'heures, de minutes et de secondes ( a partir de l'adresse de sa structure): - -initilisation de 3 variable temporaires - - * @param leCoureur Represente le coureur dont on souhaite affichée le temps - */ void afficherCoureur(coureur * leCoureur) { int heure,minute,seconde; @@ -55,17 +43,7 @@ void afficherCoureur(coureur * leCoureur) printf("Nom : %s\tPrenom : %s\tDossard : %d\tEquipe : %s\tTemps : %d:%d:%d\n",leCoureur->nom,leCoureur->prenom,leCoureur->dossard,leCoureur->equipe,heure,minute,seconde); } -/** - * @brief Convertion des seconds à un format heures,minutes et secondes - * -calcul d'heures qui renvoie uniquement la partie entier - * -calcul de minutes qui renvoie uniquement la partie entier avec la prise en compte des heures soustraite en minutes - * -calcul de seconde qui renvoie uniquement la partie entier avec la prise en compte des heures soustraite en secondes et des minutes en secondes - * - * @param secondsIN les secondes à rentrer - * @param hour les heures en sortie - * @param minute les minutes en sortie - * @param second les secondes en sortie - */ + void formatSecond(int secondsIN, int* hour, int* minute, int* second) { *hour = (int)(secondsIN)/3600; diff --git a/src/liste.c b/src/liste.c index 382a4e5..340d1f6 100644 --- a/src/liste.c +++ b/src/liste.c @@ -1,7 +1,81 @@ +/** + * @file liste.c + * @author Yohan Boujon (boujon@insa-toulouse.fr) + * @author Simon Paris (pari@insa-toulouse.fr) + * @brief Gère les listes + * @version 1.0 + * @date 2022-12-01 + * + * @copyright Copyright (c) 2022 + * + */ #include "../header/readfile.h" #include "../header/liste.h" #define MAXTEAMATES 3 +/*! \mainpage TP Coureur par Simon Paris et Yohan Boujon +# TP Langage C +## Introduction +Le programme tpcoureur fonctionne de manière aléatoire. + +A chaque lancement du programme les coureurs sont lu à partir du fichier +[fichier_coureur.txt](fichier_coureurs.txt). Ces derniers vont être ensuite mis dans une liste, dans le même ordre que donné par le fichier. Ce fichier possède une convention particulière, soit : +> `1` Nombre d'étapes + +> `1` Nombre d'équipe + +> `x` Nom de l'équipe *x* + +> `5x` n° du dossard, Nom, `d'un coureur de l'équipe x` + +> ... + +Les variables définies +> `TEMPSMAX` Temps maximum qu'un coureur peut avoir\ +`TEMPSMIN` Temps minimum qu'un coureur peut avoir\ +`TEMPSDOP` Temps pour les joueurs dopés *(Inférieur à `TEMPSMIN`)*\ + +Chaque calcul de temps est randomisé selon ces variables. Elles peuvent être changées pour avoir des temps finaux différents. Mais surtout change la chance qu'un joueur soit dopé. + +Le programme va tout d'abord supprimer les coureurs dopés et trier avec l'algorithme du [tri bulle][bullewiki] dans l'ordre croissant. Il va ensuite afficher les équipes éliminées : une équipe est éliminée si elle possède moins de `3 joueurs`. Et enfin elle affiche le classement final des **équipes uniquement**, seuls les temps des 3 meilleurs coureurs sont comptés. + +En premier lieu les différents participants sont affichés : + +![coureurs](img/coureurs.png) + +Différents classements sont affichés. Tout d'abord le general : + +![general](img/general.png) + +Ensuite les différentes personnes dopées ainsi que les équipe éliminées : + +![general](img/elimine.png) + +Et enfin le classement final : + +![final](img/final.png) + +## Installation + +Le [Makefile](/Makefile) permet de compiler et lancer le programme. Il permet aussi de nettoyer les résidus de la compilation. Pour cela il est possible de faire différentes commandes : +``` +make +``` +*Compile et lance le programme* +``` +make clean +``` +*Supprime les fichiers d'output ainsi que l'executable* +``` +./main +``` +*Lance le programme s'il est déjà compilé* + +A noter que sur windows Le Makefile produit une erreur 127. Cela n'est produit qu'en compilation et non à l'execution. + +[bullewiki]: https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles + */ + int main(void) { int size, stepsNb, teamsNb, listeTaille, dopageCount; @@ -49,11 +123,6 @@ int main(void) return 0; } -/** - * @brief initialise un element en memoire qui encapsule une strucure de coureur au champs vide - * - * @return returnElement retourne un element vierge - */ struct element * initElement(void) { struct element * returnElement = (struct element *)malloc(sizeof(struct element)); @@ -62,12 +131,6 @@ struct element * initElement(void) return returnElement; } -/** - * @brief initialise chaque element de la liste a partir de initElement - * - * - * @return l - */ liste initListe(void) { liste l; @@ -77,17 +140,6 @@ liste initListe(void) return l; } -/** - * @brief ajout d'un element contenant un coureur dans liste - * fonctionnement : - -Creation element vierge - -l'element vierge recoi le coureur passer en parametre - -l'element vierge poite sur le premier element - -le poiteur de premiere element contenue dans liste pointe sur le nouvelle element(vierge) - -le poiteur courant contenue dans la liste pointe sur le nouvelle element - * @param listeActuel liste ou l'on rajoute un element - * @param leCoureur le coureur qui sera contenue dans l'element rajoutee - */ void ajoutListe(liste * listeActuel,coureur * leCoureur) { struct element * elementActuel = (struct element *)malloc(sizeof(struct element)); @@ -97,16 +149,6 @@ void ajoutListe(liste * listeActuel,coureur * leCoureur) listeActuel->courant=elementActuel; } -/** - * @brief affiche tous les coureurs contenue dans les elements d'une liste - * fonctionnement : - -decleration d'un poiteur eCourant egale l'adresse du premiere element (variable temporaire) - -Tant que eCourant->suiv n'est pas egale a l'adresse du derniere element faire : - -affichee le coureur dans l'element d'adresse eCourant - -eCourant devient l'adresse de l'element suivant - - * @param l liste a affiche - */ void printlist(liste l) { struct element * eCourant = l.debut; @@ -118,66 +160,26 @@ void printlist(liste l) printf("NULL \n"); } -/** - * @brief Mettre le poiteur courant d'une liste sur le premiere element - * - * @param l liste ou l'on modifie le poiteur courant - */ void allerDebut(liste * l) { l->courant = l->debut; } -/** - * @brief Mettre le poiteur courant d'une liste sur le derniee element - * - * @param l liste ou l'on modifie le poiteur courant - */ void allerFin(liste * l) { l->courant = l->fin; } -/** - * @brief Mettre le poiteur courant sur l'element suivant - * - * @param l liste ou l'on modifie le poiteur courant - */ void avancer(liste * l) { l->courant = l->courant->suiv; } -/** - * @brief Retourne le coureur encapsulee dans l'element pointer par le pointeur courant - * - * @param l liste ou l'on modifie le poiteur courant - */ coureur * coureurCourant(liste * l) { return l->courant->coureurActuel; } -/** - * @brief suprime un element(a partir de l'adresse d'un coureur) dans la liste sans briser le chainage - * fonctionnement : - -declaration d'un poiteur eParcours egale l'adresse du premiere element (variable temporaire) - -declaration d'un poiteur(ePrevious) qui stockera temporairement l'adresse des elements pendant la reconstruction du chainage - -si l'element a supprimer est le premiere element de la liste : - -le poiteur courant pointe sur l'element suivant - -le poiteur pointant sur le premiere element poite sur le deuxieme - -si l'element a suppr n'est pas le deuxieme : - -ePrevious egale l'adresse du premiere element - -eParcours egale l'adresse du deuxieme element - -tant que l'element poitee par eParcours ne contient pas le courreur a supprimer faire : - -ePrevious pointe sur l'element suivant - -eParcours pointe sur l'element suivant - -l'element avant celui a suprimer pointe sur l'element sur le qu'elle poite l'element a supprimer - -supression de l'element - - * @param listeActuel Liste ou l'on suppr un element - * @param coureurSuppr le coureur qui doit etre dans l'element pour le supprimer - */ bool effacerCoureur(liste * listeActuel,coureur * coureurSuppr, bool returnSuiv) { if(!doesCoureurExist(listeActuel,coureurSuppr)) @@ -208,13 +210,6 @@ bool effacerCoureur(liste * listeActuel,coureur * coureurSuppr, bool returnSuiv) return true; } -/** - * @brief Cherche si un coureur existe dans une liste - * - * @param l la liste en question - * @param c le coureur cherché - * @return true / false - */ bool doesCoureurExist(liste* l,coureur * c) { struct element * eDebut = l->debut; @@ -229,13 +224,6 @@ bool doesCoureurExist(liste* l,coureur * c) return false; } -/** - * @brief A partir d'une liste source supprime tous les éléments en commun - * - * @param destination liste à modifier - * @param source liste des éléments à supprimer - * @return int nombre d'éléments supprimés - */ int effacerListe(liste * destination, liste * source) { int returnValue=0; @@ -251,20 +239,6 @@ int effacerListe(liste * destination, liste * source) return returnValue; } -/** - * @brief Renvoie le nombre d'elements d'une liste - fonctionnement : - -initilisation a 0 d'un compteur (int) - -decleration d'un poiteur elementActuel initialisee au poiteur debut present dans liste qui pointe sur le premier element du chainage - -tant que elementActuel n'est pas egale a l'adresse du derniere element faire - -increment compteur - -elementActuel pointe sur l'element suivant - -retourne le compteur - - * - * @param l l la liste dont on ve connaitre la taille - * @return int le nombre d'element (on compte a partir de 0) - */ int tailleListe(liste l) { int returnValue=0; @@ -278,17 +252,6 @@ int tailleListe(liste l) allerDebut(&l); } -/** - * @brief retourne le courreur contenue dans l'element nb d'une liste (on considere un element 0) - * fonctionnement : - -init elementCourant a l'adresse du premiere element de la liste - -pour i allant de 0 a nb-1 - -a la fin de la boucle elementcourant pointe sur l'element nb (on considere un element 0) - -renvoie le coureur encapsulee dans l'element nb - * @param l la liste ou doit se trouver l'element encapsulant le coureur - * @param nb le numero d'element rechercher - * @return coureur* - */ coureur * getCoureur(liste l,int nb) { struct element * elementCourant = l.debut; @@ -299,26 +262,6 @@ coureur * getCoureur(liste l,int nb) return elementCourant->coureurActuel; } -/** - * @brief inverse l'element nb et nb+1 dans une liste (on considere un element 0) - * fonctionnement : - -decleration d'un poiteur elementCourant initialisee au poiteur debut present dans liste qui pointe sur le premier element du chainage - -declaration et allocation en memoire(a l'adresse *elemeentPrecedent) d'une taille de structure element de type element - -pour i allant de 0 a nb-1 faire : - -en fin de boucle elementCourant poite sur l'element nb et elementPrecendent nb-1 - - -declaration de elementsuivant qui poite sur l'element nb+1 - -elementCourant pointe sur nb+1 - -elementSuivant pointe sur nb - -si l'element a intervertir est le premier : - -le poiteur courant pointe sur l'ancien deuxieme element - -le poiteur debut pointe sur l'ancien deuxieme - -si l'element a intervertir diff du premier : - -element nb-1 pointe sur element nb - -le poiteur courant pointe sur le premier element - * @param l liste ou l'on inverse les elements - * @param nb le numero d'element inverser avec nb+1 - */ void invertCoureur(liste * l,int nb) { struct element * elementDebut = l->debut; @@ -342,17 +285,6 @@ void invertCoureur(liste * l,int nb) } } -/** - * @brief trie bulle des element d'une liste a partir du temps contenue dans la structure encapsule dans l'element - * fonctionnement : - -pour i allant du nombre d'element dans la liste a 2 step -1 - -pour j allant de 0 a i-1 step 1 - -si leCourreur taille -i a un temps < au coureur taille-i+1 - -inverser les courreurs j et j+1 - - * @param l liste a trier - * @param taille represente la taille de la liste - */ void triListe(liste * l,int taille) { bool tabOrdered = true; @@ -365,7 +297,7 @@ void triListe(liste * l,int taille) invertCoureur(l,j); tabOrdered = false; } - //printlist(*l); + } if(tabOrdered) { @@ -374,13 +306,6 @@ 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; @@ -392,15 +317,6 @@ char ** initMatrix(int sizeCol,int sizeLine) return matrix; } -/** - * @brief Detecte si une chaîne de caractères est présente dans un - * tabealu de chaîne de caractères - * - * @param matrix tableau de chaîne de caractères - * @param string chaîne de caractère - * @param size nombre de lignes - * @return true / false - */ bool isStringInMatrix(char ** matrix, char * string, int size) { for(int i=0;icourant; @@ -485,7 +375,7 @@ void removeTeam(char ** teamNames, int sizeCol, liste * list, int * coureursInTe { if((strcmp(teamNames[i],elementCourant->coureurActuel->equipe)) == 0 && (coureursInTeams[i]coureurActuel); + effacerCoureur(list,elementCourant->coureurActuel,false); elementCourant=getElementCourant(*list); } @@ -494,24 +384,11 @@ void removeTeam(char ** teamNames, int sizeCol, liste * list, int * coureursInTe } } -/** - * @brief Récupère l'élément courant de la liste - * - * @param l liste - * @return struct element* - */ struct element * getElementCourant(liste l) { return l.courant; } -/** - * @brief Affiche les équipes et le nombre de coureurs - * - * @param teamsNames les noms de chaque équipe - * @param coureurInTeams nombre de coureur dans chaque équipe - * @param teamsNB nombre d'équipes - */ void printTeamsDetails(char ** teamsNames, int * coureurInTeams, int teamsNB) { for(int i=0;i