let me cook
This commit is contained in:
parent
9173dfc39a
commit
dd0c3d6bd5
6 changed files with 35 additions and 21 deletions
21
TODO.md
21
TODO.md
|
@ -27,26 +27,27 @@ TODO avant rendu :
|
||||||
- Méthodes (cf. le PDF du prof)
|
- Méthodes (cf. le PDF du prof)
|
||||||
- [x] `pick_two_random_tasks()`
|
- [x] `pick_two_random_tasks()`
|
||||||
- [x] `contains()`
|
- [x] `contains()`
|
||||||
- [x] Surcharge : afficher toutes les tâches
|
- [x] Surcharge de `<<` : afficher toutes les tâches
|
||||||
- [ ] `consult_tasks()` <!-- faudrait testé si elles sont vraiment pas modifiable avant de cocher cette case -->
|
- [ ] `consult_tasks()` <!-- faudrait testé si elles sont vraiment pas modifiable avant de cocher cette case -->
|
||||||
- [x] `topologicalSort()`
|
- [x] `topologicalSort()`
|
||||||
|
|
||||||
#### ProtoProjet
|
#### ProtoProjet
|
||||||
|
|
||||||
- [ ] Permet de pouvoir ajouter de nouvelles tâches
|
- Permet de pouvoir ajouter de nouvelles tâches
|
||||||
- [ ] Ne peut pas progresser (a.k.a ne peut pas lancer les tâches)
|
- Ne peut pas progresser (a.k.a ne peut pas lancer les tâches)
|
||||||
- Champs
|
- Champs
|
||||||
- [ ] Tâche `début`
|
- [x] Tâche `début`
|
||||||
- [ ] Tâche `fin`
|
- [x] Tâche `fin`
|
||||||
- Méthodes (cf. le PDF du prof) **⇒ Tout ça avec l'ordre topologique**
|
- Méthodes (cf. le PDF du prof) **⇒ Tout ça avec l'ordre topologique**
|
||||||
- [ ] Pas de méthode d'ajout d'un objet `Tache`
|
- Pas de méthode d'ajout d'un objet `Tache`
|
||||||
- [ ] `bool ajoute(nom, durée)` : sélectionne au hasard 2 tâches déjà
|
- [ ] `bool ajoute(nom, durée)` : sélectionne au hasard 2 tâches déjà
|
||||||
enregistrer et **ajoute** la nouvelle tâche entres-elles
|
enregistrer et **ajoute** la nouvelle tâche entres-elles
|
||||||
- [ ] `bool ajoute(nom, durée, id)` : **déplace** une tâche quoi doit se réaliser
|
- [ ] `bool ajoute(nom, durée, id)` : **déplace** une tâche qui doit se réaliser
|
||||||
**après** la tâche qui à l'`id` correspondant (et avant la tâche finale)
|
**après** la tâche qui à l'`id` correspondant (et avant la tâche finale)
|
||||||
**⇒ création d'une dépendance**
|
**⇒ création d'une dépendance**
|
||||||
- [ ] `bool ajoute(nom, durée, id1, id2)` : **ajoute** une tâche entre les 2 tâches
|
- [ ] `bool ajoute(nom, durée, id1, id2)` : **ajoute** une tâche entre les 2 tâches
|
||||||
qui ont l'identifiant `id1` et `id2`
|
qui ont l'identifiant `id1` et `id2`
|
||||||
|
- [ ] Surcharge de `<<`
|
||||||
|
|
||||||
#### RunProjet
|
#### RunProjet
|
||||||
|
|
||||||
|
@ -56,6 +57,7 @@ TODO avant rendu :
|
||||||
- Méthodes (cf. le PDF du prof)
|
- Méthodes (cf. le PDF du prof)
|
||||||
- [ ] `run(id)` : Lance une tâche
|
- [ ] `run(id)` : Lance une tâche
|
||||||
- [ ] `run(sequence_taches)` : Exécute une liste de tâches dans l'ordre donnée
|
- [ ] `run(sequence_taches)` : Exécute une liste de tâches dans l'ordre donnée
|
||||||
|
- [ ] Surcharge de `<<`
|
||||||
|
|
||||||
### Gestionnaire / Concepteur
|
### Gestionnaire / Concepteur
|
||||||
|
|
||||||
|
@ -66,7 +68,7 @@ TODO avant rendu :
|
||||||
- [ ] Calcule la durée totale restante d'un projet
|
- [ ] Calcule la durée totale restante d'un projet
|
||||||
- [ ] Demande un salaire pour travailler
|
- [ ] Demande un salaire pour travailler
|
||||||
- Méthodes
|
- Méthodes
|
||||||
- [ ] Surcharge `<<` : Affiche une facturation
|
- [ ] Surcharge de `<<` : Affiche une facturation
|
||||||
- [ ] `pair<vector<int>, int> avis(const RunProjet &)` : renvoie l'ordonnancement
|
- [ ] `pair<vector<int>, int> avis(const RunProjet &)` : renvoie l'ordonnancement
|
||||||
et la durée totale restante
|
et la durée totale restante
|
||||||
|
|
||||||
|
@ -80,6 +82,8 @@ Calcule **avec** parallélisation des tâches
|
||||||
|
|
||||||
### Tâches
|
### Tâches
|
||||||
|
|
||||||
|
Est-ce que l'on ne rendrait pas la classe complètement privée avec comme ami Projet et Gestionnaire ?
|
||||||
|
|
||||||
- [x] Dépendantes, entre-elles
|
- [x] Dépendantes, entre-elles
|
||||||
- [x] Durée exacte, fixe, propre à elle-même
|
- [x] Durée exacte, fixe, propre à elle-même
|
||||||
- [x] Ne peut être lancé que si toutes les dépendances sont réalisées
|
- [x] Ne peut être lancé que si toutes les dépendances sont réalisées
|
||||||
|
@ -97,3 +101,4 @@ Calcule **avec** parallélisation des tâches
|
||||||
- [x] `bool depends_from(Tache & x)`
|
- [x] `bool depends_from(Tache & x)`
|
||||||
- [x] `bool ajouteDependance(Tache & x)`
|
- [x] `bool ajouteDependance(Tache & x)`
|
||||||
- [x] `int dureeParal()`
|
- [x] `int dureeParal()`
|
||||||
|
- [x] Surcharge de `<<`
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#ifndef TP5_CONSULTANT_HPP
|
#ifndef TP5_CONSULTANT_HPP
|
||||||
#define TP5_CONSULTANT_HPP 1
|
#define TP5_CONSULTANT_HPP 1
|
||||||
|
|
||||||
#include <iostream>
|
#include "Gestionnaire.hpp"
|
||||||
|
|
||||||
class Consultant {
|
class Consultant final : Gestionnaire {
|
||||||
friend std::ostream &operator<<(std::ostream &, const Consultant &);
|
friend std::ostream &operator<<(std::ostream &, const Consultant &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#ifndef TP5_EXPERT_HPP
|
#ifndef TP5_EXPERT_HPP
|
||||||
#define TP5_EXPERT_HPP 1
|
#define TP5_EXPERT_HPP 1
|
||||||
|
|
||||||
#include <iostream>
|
#include "Gestionnaire.hpp"
|
||||||
|
|
||||||
class Expert {
|
class Expert final : Gestionnaire {
|
||||||
friend std::ostream &operator<<(std::ostream &, const Expert &);
|
friend std::ostream &operator<<(std::ostream &, const Expert &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
#ifndef TP5_PROJET_HPP
|
#ifndef TP5_PROJET_HPP
|
||||||
#define TP5_PROJET_HPP 1
|
#define TP5_PROJET_HPP 1
|
||||||
|
|
||||||
#include "../includes/Tache.hpp"
|
#include "Tache.hpp"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
class Projet {
|
class Projet {
|
||||||
|
|
||||||
|
friend std::ostream &operator<<(std::ostream &, const Projet &);
|
||||||
|
|
||||||
|
protected:
|
||||||
Tache
|
Tache
|
||||||
// Première tâche qui sera exécutée
|
// Première tâche qui sera exécutée
|
||||||
debut,
|
debut,
|
||||||
|
@ -14,9 +17,6 @@ class Projet {
|
||||||
// Source du graphe aka la dernière à être exécutée
|
// Source du graphe aka la dernière à être exécutée
|
||||||
fin;
|
fin;
|
||||||
|
|
||||||
friend std::ostream &operator<<(std::ostream &, const Projet &);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
Projet(); // constructor
|
Projet(); // constructor
|
||||||
virtual ~Projet(); // destructor
|
virtual ~Projet(); // destructor
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@ protected:
|
||||||
const std::pair<const int, const int> pick_two_random_tasks() const;
|
const std::pair<const int, const int> pick_two_random_tasks() const;
|
||||||
|
|
||||||
// Indique pour une tâche si elle fait partie du projet
|
// Indique pour une tâche si elle fait partie du projet
|
||||||
const Tache *contains(const int) const;
|
const Tache *contains(const int id) const;
|
||||||
const Tache *contains(const std::string) const;
|
const Tache *contains(const std::string name) const;
|
||||||
|
|
||||||
// Donne une version du vecteur de tâches non modifiable
|
// Donne une version du vecteur de tâches non modifiable
|
||||||
const std::vector<Tache *> consult_tasks() const;
|
const std::vector<Tache *> consult_tasks() const;
|
||||||
|
|
|
@ -17,8 +17,17 @@ public:
|
||||||
// Remet tous les marquages à leur valeur initiale
|
// Remet tous les marquages à leur valeur initiale
|
||||||
void cleanMarks();
|
void cleanMarks();
|
||||||
|
|
||||||
// Insère une nouvelle tâche en la plaçant entre deux tâches au hasars
|
// Insère une nouvelle tâche en la plaçant entre deux tâches au hasard
|
||||||
/* bool ajoute(std::string nom, int duree); */
|
bool ajoute(const std::string nom, const int duree);
|
||||||
|
|
||||||
|
// Insère une nouvelle tâche en la plaçant après la tâche avec l'ID
|
||||||
|
// renseignée et avant la tâche finale, en créant une dépendance
|
||||||
|
bool ajoute(const std::string nom, const int duree, const int id);
|
||||||
|
|
||||||
|
// Insère une nouvelle tâche en la plaçant entre les deux tâches renseignée
|
||||||
|
// via ID
|
||||||
|
bool ajoute(const std::string nom, const int duree, const int id1,
|
||||||
|
const int id2);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "ProtoProjet.hpp"
|
#include "ProtoProjet.hpp"
|
||||||
|
|
||||||
class RunProjet : public ProtoProjet {
|
class RunProjet final : public ProtoProjet {
|
||||||
friend std::ostream &operator<<(std::ostream &, const RunProjet &);
|
friend std::ostream &operator<<(std::ostream &, const RunProjet &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Reference in a new issue