it's work ./SAE2./SAE2

master
parent 89fb00f02c
commit 39985421f0

BIN
SAE2

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -108,7 +108,6 @@ Offre **loadOffre(void)
/*--------------precedences--------------*/
// Chargement des précédences depuis un fichier
Precedence *loadPrec(int *tmax, int *tlog)
{
@ -160,8 +159,6 @@ Precedence *loadPrec(int *tmax, int *tlog)
return tabP;
}
//---------------------------------------------------------------------------
// Chargement des tâches depuis un fichier pour chaque offre
Tache **loadTaches(Offre *tabTravaux[])
{

@ -4,6 +4,7 @@ int main()
{
Precedence *tabP;
Offre **tabTravaux;
Tache **tabTaches;
int p_tmax;
int p_tlog;
@ -15,7 +16,9 @@ int main()
displayPrecedences(tabP, p_tlog);
loadTaches(tabTravaux);
tabTaches = loadTaches(tabTravaux);
traiterTaches(tabTaches);
return 0;
}

@ -1,5 +1,32 @@
#include "../includes/main.h"
void afficherDetailsTache(Tache *tache)
{
if (tache != NULL)
{
printf("Nom de la tâche: %s\n", tache->tache);
printf("Durée: %d\n", tache->duree);
printf("Nombre de prédécesseurs: %d\n", tache->nbPred);
printf("Date de début: %d\n", tache->dateDebut);
printf("Traité: %s\n", (tache->traite == true) ? "Oui" : "Non");
// Afficher les successeurs si nécessaire
MaillonSucc *succCourant = tache->succ;
printf("Successeurs: ");
while (succCourant != NULL)
{
printf("%s ", succCourant->tache);
succCourant = succCourant->nxt;
}
printf("\n\n");
}
else
{
printf("La tâche est NULL.\n");
}
}
void traiterTaches(Tache *tabTache[])
{
ListeAttente file;
@ -19,11 +46,19 @@ void traiterTaches(Tache *tabTache[])
while (succCourant)
{
Tache *successeur = trouverTache(tabTache, TMAXTRAV, succCourant->tache);
successeur->dateDebut = max(successeur->dateDebut, tacheActuelle->dateDebut + tacheActuelle->duree);
successeur->nbPred--;
if (successeur->nbPred == 0)
enfiler(&file, successeur);
if (successeur != NULL)
{
successeur->dateDebut = max(successeur->dateDebut, tacheActuelle->dateDebut + tacheActuelle->duree);
successeur->nbPred--;
if (successeur->nbPred == 0)
enfiler(&file, successeur);
}
succCourant = succCourant->nxt;
}
afficherDetailsTache(tacheActuelle);
}
}

@ -253,6 +253,9 @@ Tache* trouverTache(Tache **tabTache, int nbTaches, char *nom)
{
int i;
if (tabTache == NULL || nom == NULL)
return NULL;
for (i = 0; i < nbTaches; i++)
if (strcmp(tabTache[i]->tache, nom) == 0)
return tabTache[i];

Loading…
Cancel
Save