master
parent f9bc0aa68a
commit ed6385b2e2

@ -89,4 +89,4 @@ RéussiteFinale
18, Rue de la Réussite 63300 Thiers
120000
25
15000
15000

@ -6,4 +6,5 @@ Electricite Menuiserie
Plomberie Sols
Murs Peinture
Peinture Finitions
Sols Finitions
Sols Finitions

@ -71,7 +71,7 @@ Devis loadDevis(FILE *devisFile, Offre *tabTravaux)
Devis d;
MaillonDevis *nouveauMaillon;
travaux = readFromFile(devisFile); // Meilleur moyen car on perd 8 places de char dans des tab, contre 26 si tab statique
travaux = readFromFile(devisFile);
index = rechTravaux(travaux, tabTravaux);
if (index == -1)
exit(1);
@ -88,10 +88,10 @@ Devis loadDevis(FILE *devisFile, Offre *tabTravaux)
nouveauMaillon->dev = d;
tabTravaux[index].ldevis = insert(tabTravaux[index].ldevis, d);
return d;
return (d);
}
// Chagement des offres depuis le fichier devis.txt
// Chagement des ofrres depuis le fichier devis.txt
Offre *loadOffre(void)
{
Offre *tabTravaux = initTabTravaux();
@ -108,6 +108,8 @@ Offre *loadOffre(void)
return (tabTravaux);
}
//---------------------------------------------------------------------------
/*-----------------precedences----------------------*/
// Chargement des tâches depuis un fichier pour chaque offre

@ -29,42 +29,31 @@ int rechTravaux(char *travauxName, Offre *tabTravaux)
void minTravaux(Offre *tabTravaux[])
{
int i;
MaillonDevis *minDev, *md, *s;
for(i=0; i<TMAXTRAV; i++)
ListeDevis l, minl;
for (i=0; i<TMAXTRAV; i++)
{
md = tabTravaux[i]->ldevis;
minDev=md;
while(minDev->suiv != NULL)
l=tabTravaux[i]->ldevis;
minl=l;
while(l)
{
md=md->suiv;
if ((md->dev).prix < (minDev->dev).prix)
if(l->dev.prix < minl->dev.prix)
{
s=minDev;
minDev=md;
l=delete(minl);
minl=l;
}
else if ((md->dev).prix > (minDev->dev).prix)
{
s=md;
}
else
{
if ((md->dev).capital < (minDev->dev).capital)
{
s=minDev;
minDev=md;
}
else // On met else et pas else if car on ne peut pas garder 2 égaux, il faut qd même en supprimer un
s=md;
}
delete(s);
else
l=delete(l);
l=l->suiv;
}
displayListeDevis(minDev);
displayOffre(tabTravaux[i]);
}
}
/*---------------tri------------------*/
//on la met dans struct.c ?
// Libère la mémoire d'une liste de devis
void freeListeDevis(ListeDevis *ldevis)
{

@ -181,8 +181,6 @@ void afficherDevisEntreprise(Offre *tabTravaux)
fgets(typeTravaux, sizeof(typeTravaux), stdin);
typeTravaux[strlen(typeTravaux) - 1] = '\0';
printf("%s\n", typeTravaux);
indiceTravaux = rechTravaux(typeTravaux, tabTravaux);
if (indiceTravaux == -1)
@ -192,7 +190,7 @@ void afficherDevisEntreprise(Offre *tabTravaux)
}
maxlen = lenMaxNomEntreprise(tabTravaux[indiceTravaux].ldevis);
nomEntreprise = malloc(maxlen * sizeof(char) + 1);
nomEntreprise = malloc((maxlen + 1) * sizeof(char));
printf("Saisir le nom de l'entreprise : ");
fgets(nomEntreprise, maxlen + 1, stdin);
@ -205,14 +203,16 @@ void afficherDevisEntreprise(Offre *tabTravaux)
displayDevis(listeDevis->dev);
return;
}
listeDevis = listeDevis->suiv;
listeDevis = listeDevis->suiv;
}
printf("Devis non trouvé pour l'entreprise %s dans le type de travaux %s.\n", nomEntreprise, typeTravaux);
free(nomEntreprise); // N'oubliez pas de libérer la mémoire allouée
}
// Partie 4 (à trier)

Loading…
Cancel
Save