|
|
|
@ -5,14 +5,14 @@
|
|
|
|
|
// Initialise une liste de devis
|
|
|
|
|
ListeDevis newListeDevis(void)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* NEWLISTEDEVIS *-*-*");
|
|
|
|
|
printf("\n*-*-* NEWLISTEDEVIS *-*-*\n");
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Initialise une nouvelle offre
|
|
|
|
|
Offre *newOffre(char *travauxName)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* NEWOFFRE *-*-*");
|
|
|
|
|
printf("\n*-*-* NEWOFFRE *-*-*\n");
|
|
|
|
|
Offre *o;
|
|
|
|
|
o = (Offre *)malloc(sizeof(Offre));
|
|
|
|
|
strcpy(o->travaux, travauxName);
|
|
|
|
@ -23,7 +23,7 @@ Offre *newOffre(char *travauxName)
|
|
|
|
|
// Initialise une liste (pour les successeurs)
|
|
|
|
|
Liste newListe(void)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* NEWLISTE *-*-*");
|
|
|
|
|
printf("\n*-*-* NEWLISTE *-*-*\n");
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -32,14 +32,14 @@ Liste newListe(void)
|
|
|
|
|
// Verifie l'integrite d'une liste de devis
|
|
|
|
|
Booleen emptyListe(ListeDevis l)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* EMPTYLISTE *-*-*");
|
|
|
|
|
printf("\n*-*-* EMPTYLISTE *-*-*\n");
|
|
|
|
|
return l==NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Vérifie l'intégrité de l'offre
|
|
|
|
|
Booleen emptyOffre(Offre *o)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* EMPTYOFFRE *-*-*");
|
|
|
|
|
printf("\n*-*-* EMPTYOFFRE *-*-*\n");
|
|
|
|
|
return emptyListe(o->ldevis);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -48,7 +48,7 @@ Booleen emptyOffre(Offre *o)
|
|
|
|
|
// Insere un devis en tete de la liste des devis
|
|
|
|
|
ListeDevis insert(ListeDevis l, Devis d)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* INSERT *-*-*");
|
|
|
|
|
printf("\n*-*-* INSERT *-*-*\n");
|
|
|
|
|
MaillonDevis *md;
|
|
|
|
|
md = (MaillonDevis *)malloc(sizeof(MaillonDevis));
|
|
|
|
|
if (md == NULL)
|
|
|
|
@ -65,7 +65,7 @@ ListeDevis insert(ListeDevis l, Devis d)
|
|
|
|
|
|
|
|
|
|
Liste insertSucc(Liste l, char travaux[])
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* INSERTSUCC *-*-*");
|
|
|
|
|
printf("\n*-*-* INSERTSUCC *-*-*\n");
|
|
|
|
|
MaillonSucc *ms;
|
|
|
|
|
ms = (MaillonSucc *)malloc(sizeof(MaillonSucc));
|
|
|
|
|
if (ms == NULL)
|
|
|
|
@ -84,7 +84,7 @@ Liste insertSucc(Liste l, char travaux[])
|
|
|
|
|
// Supprime le premier maillon de la liste de devis
|
|
|
|
|
ListeDevis del(ListeDevis l)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* DEL *-*-*");
|
|
|
|
|
printf("\n*-*-* DEL *-*-*\n");
|
|
|
|
|
MaillonDevis *md;
|
|
|
|
|
if (l==NULL)
|
|
|
|
|
{
|
|
|
|
@ -112,7 +112,7 @@ ListeDevis del(ListeDevis l)
|
|
|
|
|
// Calcule la longueur de la liste de devis
|
|
|
|
|
int lenListeDevis(ListeDevis l)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* LENLISTEDEVIS *-*-*");
|
|
|
|
|
printf("\n*-*-* LENLISTEDEVIS *-*-*\n");
|
|
|
|
|
int len=0;
|
|
|
|
|
while (l)
|
|
|
|
|
{
|
|
|
|
@ -124,7 +124,7 @@ int lenListeDevis(ListeDevis l)
|
|
|
|
|
|
|
|
|
|
int lenMaxNomEntreprise(ListeDevis ldevis)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* LENMAXNOMENTREPRISE *-*-*");
|
|
|
|
|
printf("\n*-*-* LENMAXNOMENTREPRISE *-*-*\n");
|
|
|
|
|
int maxLen;
|
|
|
|
|
int len;
|
|
|
|
|
|
|
|
|
@ -142,7 +142,7 @@ int lenMaxNomEntreprise(ListeDevis ldevis)
|
|
|
|
|
// Calcule le nombre de precedences pour un travail donne
|
|
|
|
|
int nombrePred(char travaux[], Precedence prec[], int tlog)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* NOMBREPRED *-*-*");
|
|
|
|
|
printf("\n*-*-* NOMBREPRED *-*-*\n");
|
|
|
|
|
int nbPred = 0, i;
|
|
|
|
|
for (i=0; i<tlog; i++)
|
|
|
|
|
if (strcmp(travaux, prec[i].travauxSucc)==0)
|
|
|
|
@ -155,7 +155,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)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* LSTSUCC *-*-*");
|
|
|
|
|
printf("\n*-*-* LSTSUCC *-*-*\n");
|
|
|
|
|
Liste succ = newListe();
|
|
|
|
|
int i;
|
|
|
|
|
for (i=0; i<tlog; i++)
|
|
|
|
@ -169,7 +169,7 @@ Liste lstSucc(char travaux[], Precedence prec[], int tlog)
|
|
|
|
|
// Affiche les details d'un devis
|
|
|
|
|
void displayDevis(Devis d)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* DISPLAYDEVIS *-*-*\n");
|
|
|
|
|
printf("\n*-*-* DISPLAYDEVIS *-*-*\n");
|
|
|
|
|
printf("%s\t%s\t%d\t%d\t%d\n", d.nomE, d.adresse, d.capital, d.duree, d.prix);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -179,13 +179,12 @@ void displayOffre(Offre *o)
|
|
|
|
|
printf("\n*-*-* DISPLAYOFFRE *-*-*\n");
|
|
|
|
|
printf("\n%s\n\t", o->travaux);
|
|
|
|
|
displayListeDevis(o->ldevis);
|
|
|
|
|
printf("\n *-*-* DISPLAYOFFREOUT *-*-*");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Affiche les details de la liste de devis
|
|
|
|
|
void displayListeDevis(ListeDevis l)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* DISPLAYLISTEDEVIS *-*-*");
|
|
|
|
|
printf("\n*-*-* DISPLAYLISTEDEVIS *-*-*\n");
|
|
|
|
|
while(l != NULL)
|
|
|
|
|
{
|
|
|
|
|
displayDevis(l->dev);
|
|
|
|
@ -196,7 +195,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)
|
|
|
|
|
{
|
|
|
|
|
printf("*-*-* AFFICHERDEVISENTREPRISE *-*-*");
|
|
|
|
|
printf("\n*-*-* AFFICHERDEVISENTREPRISE *-*-*\n");
|
|
|
|
|
int indiceTravaux;
|
|
|
|
|
int maxlen;
|
|
|
|
|
char typeTravaux[30];
|
|
|
|
|