|
|
|
@ -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++) {
|
|
|
|
|