modif du tp3 de Cpp

master
antoine.perederii 2 years ago
parent 6d7420d343
commit 1d61c7b67c

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -1,4 +1,5 @@
#include "passager.hpp" #include "passager.hpp"
#include "wagon.hpp"
#include <iostream> #include <iostream>
#include <string> #include <string>
@ -12,5 +13,8 @@ Wagon Passager::getWagonActuel() const {
return *wagonActuel; return *wagonActuel;
} }
ostream &operator<<(ostream &s, const Passager &p) {
s << "Passager : " << p.nom << p.prenom << endl;
return s;
}

@ -2,7 +2,8 @@
#define PASSAGER_HPP #define PASSAGER_HPP
#include <string> #include <string>
#include "wagon.hpp"
class Wagon;
class Passager { class Passager {
private : private :
@ -20,6 +21,7 @@ public :
friend std::ostream &operator<<(std::ostream &s, const Passager &p); friend std::ostream &operator<<(std::ostream &s, const Passager &p);
~Passager(); ~Passager();
}; };

@ -8,19 +8,19 @@
using namespace std; using namespace std;
void testPassager(void) { void testPassager(void) {
Passager lePassager("Passager 1", "Prenom 1"); Passager lePassager("Nom", "Prenom");
cout << lePassager.getNom() << endl; cout << lePassager << endl;
} }
void testWagon(void) { void testWagon(void) {
Wagon leWagon("Wagon 1"); Wagon leWagon(1);
cout << leWagon.getNom() << endl; cout << leWagon << endl;
} }
void testTrain(void) { // void testTrain(void) {
Train leTrain("Train 1"); // Train leTrain("Train 1");
cout << leTrain.getNom() << endl; // cout << leTrain.getNom() << endl;
} // }
int main() { int main() {
testPassager(); testPassager();

@ -1,29 +1,33 @@
#include "wagon.hpp" #include "wagon.hpp"
#include "passager.hpp"
#include <iostream> #include <iostream>
#include <string> #include <string>
using namespace std;
Wagon::Wagon(int numero) Wagon::Wagon(int numero)
:numero{numero} :numero{numero}
{} {}
int Wagon::ajouter(Passager lePassager) { int Wagon::ajouter(Passager& lePassager) {
if(lesPassagers->size() == capacite) { if(lesPassagers.size() == capacite) {
return -1; return -1;
} }
lesPassagers->push_back(lePassager); lesPassagers.push_back(&lePassager);
return 0; return 0;
} }
int Wagon::enlever(Passager lePassager) { int Wagon::enlever(Passager& lePassager) {
if(lesPassagers->size() == 0) { list<Passager*>::iterator it = find(lesPassagers.begin(), lesPassagers.end(), &lePassager);
return -1; if(it == lesPassagers.end()) return 0;
}
lesPassagers->remove(lePassager); lesPassagers.erase(it);
return 0; return 1;
} }
ostream &operator<<(ostream &s, const Passager &p) { ostream &operator<<(ostream &s, const Wagon &w) {
s << "Wagon n° " << w.numero << " : " << w.nbPassagers->size() << " passager(s)." << endl; s << "Wagon n° " << w.numero << " : " << w.lesPassagers->size() << " passager(s)." << endl;
s << "Reste " << w.capacite - w.nbPassagers->size() << " places(s)." << endl; s << "Reste " << w.capacite - w.lesPassagers->size() << " places(s)." << endl;
s << "Liste des passagers :\n" << w. s << "Liste des passagers :\n" << w.lesPassagers << endl;
return s;
} }

@ -3,7 +3,8 @@
#include <string> #include <string>
#include <list> #include <list>
#include "passager.hpp"
class Passager;
class Wagon { class Wagon {
@ -11,7 +12,7 @@ private :
int numero; int numero;
std::list<Passager> *lesPassagers; std::list<Passager*> lesPassagers;
public : public :
@ -19,10 +20,10 @@ public :
Wagon(int numero); Wagon(int numero);
int ajouter(Passager lePassager); int ajouter(Passager& lePassager);
int enlever(Passager lePassager); int enlever(Passager& lePassager);
friend std::ostream &operator<<(std::ostream &s, const Passager &w); friend std::ostream &operator<<(std::ostream &s, const Wagon &w);
~Wagon() = default; //~Wagon(){}; ~Wagon() = default; //~Wagon(){};
}; };

Loading…
Cancel
Save