Loading...
Searching...
No Matches
specification1.h
Go to the documentation of this file.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_LENGTH 30
//~~~~~~~~~~~~~~~~~~~~~~~~~~~STRUCTURES~~~~~~~~~~~~~~~~~~~~~~~~~~~
typedef struct
{
int numero;
char rue[30];
int codePostal;
char ville[30];
} Adresse;
typedef struct
{
char entreprise[MAX_LENGTH];
Adresse adresse;
int capital;
int duree;
int cout;
} Devis;
typedef struct maillonDevis
{
Devis devis;
struct maillonDevis *suiv;
} MaillonDevis, *ListeDevis;
typedef struct
{
char travaux[MAX_LENGTH];
ListeDevis ldevis;
} Offre, *TabTravaux;
// = Structure pour les tâches =
typedef struct maillonsucc
{
char nomSucc[20];
struct maillonsucc *suiv;
} MaillonSucc, *Liste;
typedef struct
{
char tache[20];
int duree;
int nbPred;
Liste succ;
int dateDebut;
bool traite;
} Tache;
// = Structure pour la File d'attente =
typedef struct maillonfile
{
Tache *tache;
struct maillonfile *suiv;
} MaillonFile;
typedef struct
{
MaillonFile *debut;
MaillonFile *fin;
} FileAttente;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~FONCTIONS~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// == Affichage ==
void afficherDevis(Devis devis);
void afficherListeDevis(ListeDevis l);
void afficherDevisEntreprise(TabTravaux tabTravaux, int tLog, char entreprise[], char typeTravaux[]);
void afficherDevisTravaux(ListeDevis l, char travaux[]);
void selectionEntreprisesRetenues(ListeDevis* ldevis);
void afficherEntreprisesRetenues(TabTravaux tab, int tLog);
// == Chargement ==
int chargement(TabTravaux *tab, int *tLog, char fichier[]);
void lireDevis(FILE *flot, Devis *devis, char *typeTravaux);
void insererDevis(Devis d, TabTravaux *tab, int *tLog, char typeTravaux[]);
// == Precedences ==
Tache* initialiserTache(char *nom, int duree);
Tache** chargementTaches(TabTravaux *tab, int tLog, int *nbTaches, char fichier[]);
int recupererDuree(TabTravaux tabTravaux, int tLog, char typeTravaux[]);
void ajouterSuccesseur(Tache *tache, char nomSucc[]);
// == Recherche dichotomique ==
int rechercheDichotomique(TabTravaux tab, int tLog, char typeTravaux[]);
int rechercheDichotomiqueTaches(Tache **tabTaches, int nbTaches, char nomTache[]);
// == Tris ==
void trierListeDevis(ListeDevis *ldevis);
void insererDevisTriee(ListeDevis *ldevis, MaillonDevis *maillon);
void triEchange(ListeDevis *ldevis);
int comparer(const Devis* d1, const Devis* d2);
void inverser(Devis* d1, Devis* d2);
// == Free ==
void libererTabTravaux(TabTravaux *tab, int tLog);
void libererOffre(Offre *offre);
void libererListeDevis(ListeDevis liste);
void libererListeSucc(Liste succ);
void libererTache(Tache *tache);
void libererTabTaches(Tache **tabTaches, int nbTaches);
// == Sauvegarde ==
void sauvegardeTaches(Tache **tabTaches, int nbTaches, char fichier[]);
void sauvegardeDevis(TabTravaux tab, int tLog, char fichier[]);
void ecrireDevis(FILE *flot, char typeTravaux[], Devis devis);
void sauvegardeDevisBinaire(TabTravaux tab, int tLog, char fichier[]);
void sauvegardeTachesBinaire(Tache **tabTaches, int nbTaches, char fichier[]);
// == File ==
FileAttente initialiserFileAttente();
bool estVide(FileAttente *file);
void enfiler(FileAttente *file, Tache *tache);
Tache* tete(FileAttente *file);
void defiler(FileAttente *file);
int longueur(FileAttente *file);
void afficherFile(FileAttente *file);
void detruireFile(FileAttente *file);
defiler
void defiler(FileAttente *file)
Retire un élément de la file.
Definition: file.c:82
estVide
bool estVide(FileAttente *file)
Vérifie si la file est vide.
Definition: file.c:28
enfiler
void enfiler(FileAttente *file, Tache *tache)
Ajoute un élément à la file.
Definition: file.c:38
triEchange
void triEchange(ListeDevis *ldevis)
Trie la liste de devis par ordre croissant du coût, puis par ordre décroissant du capital.
Definition: tris.c:71
tete
Tache * tete(FileAttente *file)
Retourne la tête de la file.
Definition: file.c:67
selectionEntreprisesRetenues
void selectionEntreprisesRetenues(ListeDevis *ldevis)
Sélectionne l'entreprise retenue pour un type de travaux.
Definition: affichage.c:103
afficherEntreprisesRetenues
void afficherEntreprisesRetenues(TabTravaux tab, int tLog)
Affiche les entreprises retenues pour chaque type de travaux.
Definition: affichage.c:126
comparer
int comparer(const Devis *d1, const Devis *d2)
Compare deux devis en fonction du coût et du capital.
Definition: tris.c:103
longueur
int longueur(FileAttente *file)
Retourne la longueur de la file.
Definition: file.c:100
afficherFile
void afficherFile(FileAttente *file)
Affiche la file.
Definition: file.c:118
initialiserTache
Tache * initialiserTache(char *nom, int duree)
Initialiser les taches.
Definition: precedences.c:17
inverser
void inverser(Devis *d1, Devis *d2)
Inverse les positions de deux devis.
Definition: tris.c:120
detruireFile
void detruireFile(FileAttente *file)
Détruit la file.
Definition: file.c:140
initialiserFileAttente
FileAttente initialiserFileAttente()
Initialiser la file d'attente.
Definition: file.c:14
Adresse
Definition: specification1.h:18
Devis
Definition: specification1.h:26
FileAttente
Definition: specification1.h:73
Offre
Definition: specification1.h:41
Tache
Definition: specification1.h:55
maillonDevis
Definition: specification1.h:35
maillonfile
Definition: specification1.h:67
maillonsucc
Definition: specification1.h:49