diff --git a/includes/main.h b/includes/main.h index 995dd2d..3c5a060 100644 --- a/includes/main.h +++ b/includes/main.h @@ -6,4 +6,4 @@ #include "charge.h" #define TMAXTRAV 8 - +#define TRACE true diff --git a/srcs/charge.c b/srcs/charge.c index 59ece3c..a593084 100644 --- a/srcs/charge.c +++ b/srcs/charge.c @@ -5,6 +5,7 @@ // initialisation des travaux Offre **initTabTravaux(void) { + trace("initTabTravaux"); Offre **tabTravaux; tabTravaux = (Offre **)malloc(TMAXTRAV* sizeof(Offre *)); @@ -32,6 +33,7 @@ Offre **initTabTravaux(void) // Chargement d'une chaine de caracteres depuis un fichier char *readFromFile(FILE *file) { + trace("readFromFile"); char *str; char *buf; int len = 0; @@ -66,6 +68,7 @@ char *readFromFile(FILE *file) // Chargement d'un devis depuis un fichier void loadDevis(FILE *devisFile, Offre **tabTravaux) { + trace("loadDevis"); int index; char *travaux; Devis d; @@ -83,6 +86,7 @@ void loadDevis(FILE *devisFile, Offre **tabTravaux) // Chagement des offres depuis le fichier devis.txt Offre **loadOffre(void) { + trace("loadOffre"); Offre **tabTravaux = initTabTravaux(); FILE *devisFile; @@ -110,7 +114,7 @@ Offre **loadOffre(void) // Chargement des précédences depuis un fichier Precedence *loadPrec(int *tmax, int *tlog) { - printf("\n*-*-* LOADPREC *-*-*\n"); + trace("loadPrec"); FILE *prec; Precedence *tabP, *s; prec=fopen("files/précédences.txt", "r"); @@ -143,7 +147,7 @@ Precedence *loadPrec(int *tmax, int *tlog) // Chargement des tâches depuis un fichier pour chaque offre Tache **loadTaches(Offre *tabTravaux[]) { - printf("\n*-*-* LOADTACHES *-*-*\n"); + trace("loadTaches"); Precedence *prec; int i, tmaxPrec=5, tlogPrec; Tache *t, **tabTache; diff --git a/srcs/main.c b/srcs/main.c index 3f34893..0c930a0 100644 --- a/srcs/main.c +++ b/srcs/main.c @@ -21,3 +21,9 @@ int main() return 0; } + +void trace(char str[]) +{ + if(TRACE) + printf("\n*-*-* %s *-*-*\n"); +} \ No newline at end of file diff --git a/srcs/sort.c b/srcs/sort.c index 5339462..006ccea 100644 --- a/srcs/sort.c +++ b/srcs/sort.c @@ -6,6 +6,7 @@ // Retourne l'indice de l'offre dans le tableau si elle est trouvée, sinon retourne -1 int rechTravaux(char *travauxName, Offre **tabTravaux) { + trace("rechTravaux"); //On utilise la taille max de travaux car travaux est un tableau constant, sa taille max est égale à sa taille logique. int deb=0, end=TMAXTRAV-1, mid; @@ -28,6 +29,7 @@ int rechTravaux(char *travauxName, Offre **tabTravaux) // Affiche chaque offre gardee avec le devis ayant le prix le plus bas void minTravaux(Offre *tabTravaux[]) { + trace("minTravaux"); int i; MaillonDevis *minDev, *md, *s; for (i = 0; i < TMAXTRAV; i++) @@ -73,6 +75,7 @@ void minTravaux(Offre *tabTravaux[]) // Libère la mémoire d'une liste de devis void freeListeDevis(ListeDevis *ldevis) { + trace("freeListeDevis"); ListeDevis current = *ldevis; ListeDevis next; @@ -88,6 +91,7 @@ void freeListeDevis(ListeDevis *ldevis) // Boucle principale de fusion de listes de devis void fusionDevisElements(ListeDevis *R, int *tlogR, ListeDevis *S, int *tlogS, ListeDevis *mergedList, ListeDevis *last, int *k) { + trace("fusionDevisElements"); ListeDevis *current; while (*tlogR > 0 && *tlogS > 0) @@ -120,8 +124,9 @@ void fusionDevisElements(ListeDevis *R, int *tlogR, ListeDevis *S, int *tlogS, L } // Gère les éléments restants après les itérations principales de fusion -void gestionElementsRestants(ListeDevis *mergedList, ListeDevis *last, ListeDevis *source, int *tlogSource, int *k) +void gestionElementsRestants(ListeDevis *mergedList, ListeDevis *last, ListeDevis *source, int *tlogSource, int *k) //UTILE ??? { + trace("gestionElementsRestants"); while (*tlogSource > 0) { if (!*mergedList) @@ -142,6 +147,7 @@ void gestionElementsRestants(ListeDevis *mergedList, ListeDevis *last, ListeDevi // Fusionne deux listes de devis triées en une seule liste triée void fusionMaillonDevis(ListeDevis R, int tlogR, ListeDevis S, int tlogS, ListeDevis *T) { + trace("fusionMaillonDevis"); ListeDevis last; ListeDevis mergedList; int k; @@ -159,6 +165,7 @@ void fusionMaillonDevis(ListeDevis R, int tlogR, ListeDevis S, int tlogS, ListeD // Tri fusion sur une liste de devis void triFusionListeDevis(ListeDevis *ldevis, int tlog) { + trace("triFusionListeDevis"); ListeDevis p; ListeDevis q; ListeDevis qTemp; diff --git a/srcs/structures.c b/srcs/structures.c index 8f7951e..05395c9 100644 --- a/srcs/structures.c +++ b/srcs/structures.c @@ -5,12 +5,14 @@ // Initialise une liste de devis ListeDevis newListeDevis(void) { + trace("newListeDevis"); return NULL; } // Initialise une nouvelle offre Offre *newOffre(char *travauxName) { + trace("newOffre"); Offre *o; o = (Offre *)malloc(sizeof(Offre)); strcpy(o->travaux, travauxName); @@ -21,6 +23,7 @@ Offre *newOffre(char *travauxName) // Initialise une liste (pour les successeurs) Liste newListe(void) { + trace("newListe"); return NULL; } @@ -29,12 +32,14 @@ Liste newListe(void) // Verifie l'integrite d'une liste de devis Booleen emptyListe(ListeDevis l) { + trace("emptyListe"); return l==NULL; } // Vérifie l'intégrité de l'offre Booleen emptyOffre(Offre *o) { + trace("emptyOffre"); return emptyListe(o->ldevis); } @@ -43,6 +48,7 @@ Booleen emptyOffre(Offre *o) // Insere un devis en tete de la liste des devis ListeDevis insert(ListeDevis l, Devis d) { + trace("insert"); MaillonDevis *md; md = (MaillonDevis *)malloc(sizeof(MaillonDevis)); if (md == NULL) @@ -59,6 +65,7 @@ ListeDevis insert(ListeDevis l, Devis d) Liste insertSucc(Liste l, char travaux[]) { + trace("insertSucc"); MaillonSucc *ms; ms = (MaillonSucc *)malloc(sizeof(MaillonSucc)); if (ms == NULL) @@ -77,6 +84,7 @@ Liste insertSucc(Liste l, char travaux[]) // Supprime le premier maillon de la liste de devis ListeDevis del(ListeDevis l) { + trace("del"); MaillonDevis *md; if (l == NULL) { @@ -108,6 +116,7 @@ ListeDevis del(ListeDevis l) // Calcule la longueur de la liste de devis int lenListeDevis(ListeDevis l) { + trace("lenListeDevis"); int len=0; while (l) { @@ -119,6 +128,7 @@ int lenListeDevis(ListeDevis l) int lenMaxNomEntreprise(ListeDevis ldevis) { + trace("lenMaxNomEntreprise"); int maxLen; int len; @@ -136,6 +146,7 @@ int lenMaxNomEntreprise(ListeDevis ldevis) // Calcule le nombre de precedences pour un travail donne int nombrePred(char travaux[], Precedence prec[], int tlog) { + trace("nombrePred"); int nbPred = 0, i; for (i=0; itravaux); displayListeDevis(o->ldevis); } @@ -174,6 +188,7 @@ void displayOffre(Offre *o) // Affiche les details de la liste de devis void displayListeDevis(ListeDevis l) { + trace("displayListeDevis"); while(l != NULL) { displayDevis(l->dev); @@ -184,6 +199,7 @@ void displayListeDevis(ListeDevis l) // Fonction pour afficher le devis d'une entreprise donnée pour un type de travaux donné void afficherDevisEntreprise(Offre **tabTravaux) { + trace("afficherDevisEntreprise"); int indiceTravaux; int maxlen; char typeTravaux[30]; @@ -224,6 +240,7 @@ void afficherDevisEntreprise(Offre **tabTravaux) void displayPrecedences(Precedence *tabP, int tlog) { + trace("displayPrecedences"); printf("Liste des précédences :\n"); for (int i = 0; i < tlog; i++) {