SAE 1.02 1.0
Comparaison d'approches algorithmiques
Loading...
Searching...
No Matches
specification1.h
Go to the documentation of this file.
1
8#include <stdio.h>
9#include <stdlib.h>
10#include <string.h>
11#include <stdbool.h>
12
13#define MAX_LENGTH 30
14
15//~~~~~~~~~~~~~~~~~~~~~~~~~~~STRUCTURES~~~~~~~~~~~~~~~~~~~~~~~~~~~
16
17typedef struct
18{
19 int numero;
20 char rue[30];
21 int codePostal;
22 char ville[30];
23} Adresse;
24
25typedef struct
26{
27 char entreprise[MAX_LENGTH];
28 Adresse adresse;
29 int capital;
30 int duree;
31 int cout;
32} Devis;
33
34typedef struct maillonDevis
35{
36 Devis devis;
37 struct maillonDevis *suiv;
39
40typedef struct
41{
42 char travaux[MAX_LENGTH];
43 ListeDevis ldevis;
45
46// = Structure pour les tâches =
47
48typedef struct maillonsucc
49{
50 char nomSucc[20];
51 struct maillonsucc *suiv;
53
54typedef struct
55{
56 char tache[20];
57 int duree;
58 int nbPred;
59 Liste succ;
60 int dateDebut;
61 bool traite;
62} Tache;
63
64// = Structure pour la File d'attente =
65
66typedef struct maillonfile
67{
68 Tache *tache;
69 struct maillonfile *suiv;
71
72typedef struct
73{
74 MaillonFile *debut;
75 MaillonFile *fin;
77
78//~~~~~~~~~~~~~~~~~~~~~~~~~~~FONCTIONS~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79
80// == Affichage ==
81
82void afficherDevis(Devis devis);
83void afficherListeDevis(ListeDevis l);
84void afficherDevisEntreprise(TabTravaux tabTravaux, int tLog, char entreprise[], char typeTravaux[]);
85void afficherDevisTravaux(ListeDevis l, char travaux[]);
87void afficherEntreprisesRetenues(TabTravaux tab, int tLog);
88
89// == Chargement ==
90
91int chargement(TabTravaux *tab, int *tLog, char fichier[]);
92void lireDevis(FILE *flot, Devis *devis, char *typeTravaux);
93void insererDevis(Devis d, TabTravaux *tab, int *tLog, char typeTravaux[]);
94
95// == Precedences ==
96
97Tache* initialiserTache(char *nom, int duree);
98Tache** chargementTaches(TabTravaux *tab, int tLog, int *nbTaches, char fichier[]);
99int recupererDuree(TabTravaux tabTravaux, int tLog, char typeTravaux[]);
100void ajouterSuccesseur(Tache *tache, char nomSucc[]);
101
102// == Recherche dichotomique ==
103
104int rechercheDichotomique(TabTravaux tab, int tLog, char typeTravaux[]);
105int rechercheDichotomiqueTaches(Tache **tabTaches, int nbTaches, char nomTache[]);
106
107// == Tris ==
108
109void trierListeDevis(ListeDevis *ldevis);
110void insererDevisTriee(ListeDevis *ldevis, MaillonDevis *maillon);
111void triEchange(ListeDevis *ldevis);
112int comparer(const Devis* d1, const Devis* d2);
113void inverser(Devis* d1, Devis* d2);
114
115// == Free ==
116
117void libererTabTravaux(TabTravaux *tab, int tLog);
118void libererOffre(Offre *offre);
119void libererListeDevis(ListeDevis liste);
120void libererListeSucc(Liste succ);
121void libererTache(Tache *tache);
122void libererTabTaches(Tache **tabTaches, int nbTaches);
123
124// == Sauvegarde ==
125
126void sauvegardeTaches(Tache **tabTaches, int nbTaches, char fichier[]);
127void sauvegardeDevis(TabTravaux tab, int tLog, char fichier[]);
128void ecrireDevis(FILE *flot, char typeTravaux[], Devis devis);
129void sauvegardeDevisBinaire(TabTravaux tab, int tLog, char fichier[]);
130void sauvegardeTachesBinaire(Tache **tabTaches, int nbTaches, char fichier[]);
131
132// == File ==
133
135bool estVide(FileAttente *file);
136void enfiler(FileAttente *file, Tache *tache);
137Tache* tete(FileAttente *file);
138void defiler(FileAttente *file);
139int longueur(FileAttente *file);
140void afficherFile(FileAttente *file);
141void detruireFile(FileAttente *file);
void defiler(FileAttente *file)
Retire un élément de la file.
Definition: file.c:82
bool estVide(FileAttente *file)
Vérifie si la file est vide.
Definition: file.c:28
void enfiler(FileAttente *file, Tache *tache)
Ajoute un élément à la file.
Definition: file.c:38
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
Tache * tete(FileAttente *file)
Retourne la tête de la file.
Definition: file.c:67
void selectionEntreprisesRetenues(ListeDevis *ldevis)
Sélectionne l'entreprise retenue pour un type de travaux.
Definition: affichage.c:103
void afficherEntreprisesRetenues(TabTravaux tab, int tLog)
Affiche les entreprises retenues pour chaque type de travaux.
Definition: affichage.c:126
int comparer(const Devis *d1, const Devis *d2)
Compare deux devis en fonction du coût et du capital.
Definition: tris.c:103
int longueur(FileAttente *file)
Retourne la longueur de la file.
Definition: file.c:100
void afficherFile(FileAttente *file)
Affiche la file.
Definition: file.c:118
Tache * initialiserTache(char *nom, int duree)
Initialiser les taches.
Definition: precedences.c:17
void inverser(Devis *d1, Devis *d2)
Inverse les positions de deux devis.
Definition: tris.c:120
void detruireFile(FileAttente *file)
Détruit la file.
Definition: file.c:140
FileAttente initialiserFileAttente()
Initialiser la file d'attente.
Definition: file.c:14
Definition: specification1.h:18
Definition: specification1.h:26
Definition: specification1.h:73
Definition: specification1.h:41
Definition: specification1.h:55
Definition: specification1.h:35
Definition: specification1.h:67
Definition: specification1.h:49