Ajout trace

master
Louis GERMAIN 2 years ago
parent 0c2a8bd48f
commit 44c1473346

@ -6,4 +6,4 @@
#include "charge.h"
#define TMAXTRAV 8
#define TRACE true

@ -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;

@ -21,3 +21,9 @@ int main()
return 0;
}
void trace(char str[])
{
if(TRACE)
printf("\n*-*-* %s *-*-*\n");
}

@ -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;

@ -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; i<tlog; i++)
if (strcmp(travaux, prec[i].travauxSucc)==0)
@ -148,6 +159,7 @@ int nombrePred(char travaux[], Precedence prec[], int tlog)
// Retourne une liste des successeurs pour un travail donne
Liste lstSucc(char travaux[], Precedence prec[], int tlog)
{
trace("lstSucc");
Liste succ = newListe();
int i;
for (i=0; i<tlog; i++)
@ -161,12 +173,14 @@ Liste lstSucc(char travaux[], Precedence prec[], int tlog)
// Affiche les details d'un devis
void displayDevis(Devis d)
{
trace("displayDevis");
printf("\t%s\t%s\t%d\t%d\t%d\n", d.nomE, d.adresse, d.capital, d.duree, d.prix);
}
// Affiche les details de l'offre et sa liste de devis
void displayOffre(Offre *o)
{
trace("displayOffre");
printf("\n%s\n", o->travaux);
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++) {

Loading…
Cancel
Save