-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbillet.cpp
84 lines (76 loc) · 1.63 KB
/
billet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*Turikumwe Fabrice E.
Allan Tarcy*/
#include "billet.hpp"
using namespace std;
Billet::Billet(int i, Passager *p, Trajet *trajet)
{
id = i;
passager = p;
trajets.push_back(trajet);
compagnie = trajet->getCompagnie();
compagnie->AjoutBillets(this);
trajet->ajoutPassager(passager, this);
prix = trajet->getPrixInitial() * p->getReduction();
compagnie->AjoutBillets(this);
}
Billet::Billet(int i, Passager *p, Trajet *trajet, Compagnie *com){
id = i;
passager = p;
trajets.push_back(trajet);
compagnie = trajet->getCompagnie();
compagnie->AjoutBillets(this);
trajet->ajoutPassager(passager, this);
prix = trajet->getPrixInitial() * p->getReduction();
compagnie->AjoutBillets(this);
}
Billet::~Billet() {
trajets.clear();
}
int Billet::getId()const
{
return id;
}
void Billet::setId(int i)
{
id = i;
}
int Billet::getPrixInitial()
{
return prix;
}
void Billet::setPrixInitial(int p)
{
prix = p;
}
void Billet::Affiche()
{
cout << "Voyageur: " << passager->getNom() << " " << passager->getPrenom() << " Prix: " << getPrixInitial() << "$" << endl;
}
Passager *Billet::getPassager()
{
return passager;
}
/*bool Billet::triTrajets(Trajet *t1, Trajet *t2)
{
return t1 < t2;
}
class TriTrajets
{
public:
bool operator()(const Trajet *t1,const Trajet *t2)
{
return t1 < t2;
}
};*/
void Billet::setCompagnie(Compagnie *com){
compagnie = com;
}
vector<Trajet *> Billet::getTrajets()
{
sort(trajets.begin(), trajets.end(), TriTrajets());
return trajets;
}
void Billet::ajoutTrajet(Trajet *trajet)
{
trajet->ajoutPassager(passager, this);
}