From 09fbb792a55dac1e8bf57df7607d3babe568df8e Mon Sep 17 00:00:00 2001 From: Camille RAYNAUD Date: Thu, 11 Jan 2024 22:32:35 +0100 Subject: [PATCH] Documentation et Creation de la fonction 2 --- src/chargement.c | 19 +++++++- src/fonction1.c | 21 ++++++-- src/fonction2.c | 112 +++++++++++++++++++++++++++++++++++++++++++ src/init.c | 6 ++- src/main.c | 17 +++++++ src/specification1.h | 14 +++++- 6 files changed, 181 insertions(+), 8 deletions(-) create mode 100644 src/fonction2.c diff --git a/src/chargement.c b/src/chargement.c index 0cde77c..763a40b 100644 --- a/src/chargement.c +++ b/src/chargement.c @@ -1,10 +1,20 @@ /** - * @file chargement.c - * @brief Fonctions de chargement des fichiers de données + * \file chargement.c + * \brief Fonctions de chargement des fichiers de données + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 */ #include "specification1.h" +/** +* \brief Chargement des fichiers +* \param[out] *offre pointeur sur le maillonDevis +* \param[in] fichier nom de l'entreprise +* \return -1/-2 Si on a une erreur dans l'ouverture du fichier ou de l'en-tête +* \return tlog +*/ + int chargement(Offre *offre, char fichier[]) { FILE *flot; @@ -31,6 +41,11 @@ int chargement(Offre *offre, char fichier[]) return tLog; } +/** +* \brief permet de lire le Devis. +* \param[out] *flot +*/ + Offre lireDevis(FILE *flot) { //TODO diff --git a/src/fonction1.c b/src/fonction1.c index e0be78a..2438ac6 100644 --- a/src/fonction1.c +++ b/src/fonction1.c @@ -1,5 +1,20 @@ +/** + * \file fonction1.c + * \brief Fonction de codage de contexte de l'information + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 +*/ + #include "specification1.h" +/** +* \brief Rechercher dans la liste des devis +* \param[in,out] typeTravaux tableau des types de travaux +* \struct[out] *offre pointeur des offres +* \param[in] tLog +* \return offre[i].ldevis Retourne l'offre dans le devis +*/ + //? ListeDevis ou ListeDevis* ? ListeDevis rechListeDevis(char typeTravaux[], Offre *offre, int tLog) { @@ -14,7 +29,7 @@ ListeDevis rechListeDevis(char typeTravaux[], Offre *offre, int tLog) /** * \brief Afficher l'ensemble des devis pour un type de travaux -* \param[out] *l pointeur sur le maillonDevis +* \struct[out] *l pointeur sur le maillonDevis */ void Affiche(ListeDevis l) { @@ -28,7 +43,7 @@ void Affiche(ListeDevis l) /** * \brief Afficher l'ensemble des devis pour un type de travaux -* \param[out] *l pointeur sur le maillonDevis +* \struct[out] *l pointeur sur le maillonDevis */ void AfficheDevis(ListeDevis l) { @@ -48,7 +63,7 @@ void AfficheDevis(ListeDevis l) /** * \brief Afficher le devis d'une entreprise donnée pour un type de travaux donnée -* \param[out] *l pointeur sur le maillonDevis +* \struct[out] *l pointeur sur le maillonDevis * \param[in] entr nom de l'entreprise */ diff --git a/src/fonction2.c b/src/fonction2.c new file mode 100644 index 0000000..b17dccc --- /dev/null +++ b/src/fonction2.c @@ -0,0 +1,112 @@ +/** + * \file fonction2.c + * \brief Selection des entreprises en fonction du meilleur devis + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 +*/ + +#include "specification1.h" + +/** +* \brief Faire un tri par échange +* \struct[in,out] tab[] tableau de structure de Devis +* \param[in] n +*/ +void triEchange (Devis * tab[], int n) +{ + int pge; + while(n>1) + { + pge=plusGrand(tab,n); + echanger(tab,pge,n-1); + n=n-1; + } +} + +/** +* \brief Comparer deux devis pour trouver le plus grand +* \struct[in,out] tab[] tableau de structure de Devis +* \param[out] *offre pointeur des offres +* \param[in] n +* \return pge Retourne le plus grand entier +*/ + +//On veut pas le plus grand mais le plus petit! Le cout le moins chère est plus avantageux +int plusGrand(Devis * tab[], int n) +{ + int pge=0; + for(int i=1;ildevis.devis.cout,tab[pge]->ldevis.devis.cout)>0) + pge=i; + return pge; +} + +/** +* \brief Comparer deux devis +* \struct[in] d1 Devis +* \struct[in] d2 Devis +* \return cmp Retourne une valeur pour connaitre qui est le plus rentable +*/ +int comparer(Devis d1, Devis d2) +{ + int cmp + cmp = d1.cout - d2.cout; + if(cmp==0) + cmp = d2.capital - d1.capital; + return cmp; +} + +/** +* \brief Echanger la place des deux devis +* \structin,out] typeTravaux tableau des types de travaux +* \param[out] *offre pointeur des offres +* \param[in] tLog +* \return offre[i].ldevis Retourne l'offre dans le devis +*/ +void echanger(Devis * tab[],int i, int j) +{ + Devis * aux; + aux = tab[i]; + tab[i] = tab[j]; + tab[j] = aux; +} + +/** +* \brief Rechercher dans la liste des devis +* \param[in,out] typeTravaux tableau des types de travaux +* \param[out] *offre pointeur des offres +* \param[in] tLog +* \return offre[i].ldevis Retourne l'offre dans le devis +*/ +void ShowEntrepTache(Offre o, int tlog) +{ + for(int i=0;isuiv); + tab[i]=tab[i+1]; +} + +/** +* \brief Rechercher dans la liste des devis +* \param[in,out] typeTravaux tableau des types de travaux +* \param[out] *offre pointeur des offres +* \param[in] tLog +* \return offre[i].ldevis Retourne l'offre dans le devis +*/ +void suppression(ListeDevis ldevis) +{ + MaillonDevis *m; + if (ldevis == NULL) + { + fprintf("Operation interdite\n"); + exit(1); + } + m=ldevis; + while (ldevis->suiv->suiv != NULL) + { + m = ldevis->suiv; + } + free(ldevis); + return m; +} \ No newline at end of file diff --git a/src/init.c b/src/init.c index b25bc93..7861f2e 100644 --- a/src/init.c +++ b/src/init.c @@ -1,6 +1,8 @@ /** - * @file init.c - * @brief Fonctions d'initialisation de Pile/File/Liste + * \file init.c + * \brief Fonctions d'initialisation de Pile/File/Liste + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 */ #include "specification1.h" diff --git a/src/main.c b/src/main.c index a727cc3..60b43d5 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,18 @@ +/** + * \file main.c + * \brief Fonction globale + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 +*/ + #include "specification1.h" +/** +* \brief Affichage des devis en fonction de spécificité +* \struct[out] *offre pointeur des offres +* \param[in] tLog +*/ + void affiche(Offre *offre, int tLog) { //TODO Optimiser cet étron de code @@ -34,6 +47,10 @@ void affiche(Offre *offre, int tLog) } } +/** +* \brief Fonction global +*/ + void global(void) { Offre *tabTravaux; diff --git a/src/specification1.h b/src/specification1.h index e234485..e52ee7d 100644 --- a/src/specification1.h +++ b/src/specification1.h @@ -1,3 +1,10 @@ +/** + * \file specification1.h + * \brief Mise en place des structures et des fonctions associées + * \auteurs LAVERGNE Rémi ; DELINAC Inès ; RAYNAUD Camille + * \date 12 janvier 2024 +*/ + #include #include #include @@ -57,7 +64,12 @@ int chargement(Offre *offre, char fichier[]); //celle ayant le coût de réalisation le moins cher //si égalité : //Celle ayant le plus gros capital -void ShowEntrepTache(Offre o); +void triEchange (Devis * tab[], int n); +int plusGrand(Devis * tab[], int n); +int comparer(Devis d1, Devis d2); +void echanger(Devis * tab[],int i, int j); +void ShowEntrepTache(Offre o, int tlog); +void suppression(ListeDevis ldevis); //~~~~~~~~~~~~PARTIE 3~~~~~~~~~~~~