From a28a6b96b7f650a223d5b5ff59020b8d768344d8 Mon Sep 17 00:00:00 2001 From: "antoine.perederii" Date: Wed, 8 Feb 2023 11:46:07 +0100 Subject: [PATCH] ajout du tp3 de Cpp --- Algo/tp/Cpp/3_tp/Makefile | 26 ++++++++++++++++++ Algo/tp/Cpp/3_tp/src/passager.cpp | 16 +++++++++++ Algo/tp/Cpp/3_tp/src/passager.hpp | 25 +++++++++++++++++ Algo/tp/Cpp/3_tp/src/test.cpp | 30 +++++++++++++++++++++ Algo/tp/Cpp/3_tp/src/train.cpp | 25 +++++++++++++++++ Algo/tp/Cpp/3_tp/src/train.hpp | 27 +++++++++++++++++++ Algo/tp/Cpp/3_tp/src/wagon.cpp | 27 +++++++++++++++++++ Algo/tp/Cpp/3_tp/src/wagon.hpp | 30 +++++++++++++++++++++ Algo/tp/Cpp/3_tp/tp3_list_vector_train.pdf | Bin 0 -> 27104 bytes 9 files changed, 206 insertions(+) create mode 100644 Algo/tp/Cpp/3_tp/Makefile create mode 100644 Algo/tp/Cpp/3_tp/src/passager.cpp create mode 100644 Algo/tp/Cpp/3_tp/src/passager.hpp create mode 100644 Algo/tp/Cpp/3_tp/src/test.cpp create mode 100644 Algo/tp/Cpp/3_tp/src/train.cpp create mode 100644 Algo/tp/Cpp/3_tp/src/train.hpp create mode 100644 Algo/tp/Cpp/3_tp/src/wagon.cpp create mode 100644 Algo/tp/Cpp/3_tp/src/wagon.hpp create mode 100644 Algo/tp/Cpp/3_tp/tp3_list_vector_train.pdf diff --git a/Algo/tp/Cpp/3_tp/Makefile b/Algo/tp/Cpp/3_tp/Makefile new file mode 100644 index 0000000..88f4002 --- /dev/null +++ b/Algo/tp/Cpp/3_tp/Makefile @@ -0,0 +1,26 @@ +#CC : le compilateur à utiliser +CC=g++ + +#CFLAGS : les options de compilation +CFLAGS= -std=c++17 -Wall + +# les fichiers sources : tous les fichiers présents dans src/ +SRC=$(wildcard src/*.cpp) + +# les fichiers objets (.o) +OBJ=$(patsubst src/%.cpp,obj/%.o,$(SRC)) + + +#edition des liens : génération de l'exécutable à partir des .o +bin/exe: $(OBJ) + $(CC) $(OBJ) -o $@ + +# génération des .o à partir des .cpp et .hpp crrespondants : +obj/%.o: src/%.cpp + $(CC) $(CFLAGS) -c $< -o $@ + +#nettoyage : destruction des .o et de l'exécutable +clean: + rm obj/*.o bin/exe + + diff --git a/Algo/tp/Cpp/3_tp/src/passager.cpp b/Algo/tp/Cpp/3_tp/src/passager.cpp new file mode 100644 index 0000000..c4582f0 --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/passager.cpp @@ -0,0 +1,16 @@ +#include "passager.hpp" +#include +#include + +using namespace std; + +Passager::Passager(string nom, string prenom) + :nom{nom}, prenom{prenom} +{} + +Wagon Passager::getWagonActuel() const { + return *wagonActuel; +} + + + diff --git a/Algo/tp/Cpp/3_tp/src/passager.hpp b/Algo/tp/Cpp/3_tp/src/passager.hpp new file mode 100644 index 0000000..ac0dd1f --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/passager.hpp @@ -0,0 +1,25 @@ +#ifndef PASSAGER_HPP +#define PASSAGER_HPP + +#include +#include "wagon.hpp" + +class Passager { +private : + + std::string nom; + std::string prenom; + + Wagon *wagonActuel; + +public : + + Passager(std::string nom, std::string prenom); + + Wagon getWagonActuel() const; + + ~Passager(); +}; + + +#endif // PASSAGER_HPP \ No newline at end of file diff --git a/Algo/tp/Cpp/3_tp/src/test.cpp b/Algo/tp/Cpp/3_tp/src/test.cpp new file mode 100644 index 0000000..eea10aa --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/test.cpp @@ -0,0 +1,30 @@ +#include "wagon.hpp" +#include "passager.hpp" +#include "train.hpp" +#include +#include + + +using namespace std; + +void testPassager(void) { + Passager lePassager("Passager 1", "Prenom 1"); + cout << lePassager.getNom() << endl; +} + +void testWagon(void) { + Wagon leWagon("Wagon 1"); + cout << leWagon.getNom() << endl; +} + +void testTrain(void) { + Train leTrain("Train 1"); + cout << leTrain.getNom() << endl; +} + +int main() { + testPassager(); + testWagon(); + testTrain(); + return 0; +} \ No newline at end of file diff --git a/Algo/tp/Cpp/3_tp/src/train.cpp b/Algo/tp/Cpp/3_tp/src/train.cpp new file mode 100644 index 0000000..a20d33e --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/train.cpp @@ -0,0 +1,25 @@ +#include "train.hpp" +#include +#include +#include + +using namespace std; + +Train::Train(string nom) + :nom{nom} +{} + +int Train::ajouter(Wagon leWagon) { + lesWagons->push_back(leWagon); + return 0; +} + +int Train::enlever(Wagon leWagon) { + lesWagons->remove(leWagon); + return 0; +} + +Train::~Train() { + delete lesWagons; +} + diff --git a/Algo/tp/Cpp/3_tp/src/train.hpp b/Algo/tp/Cpp/3_tp/src/train.hpp new file mode 100644 index 0000000..7132b37 --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/train.hpp @@ -0,0 +1,27 @@ +#ifndef TRAIN_HPP +#define TRAIN_HPP + +#include + +#include "wagon.hpp" + +class Train { +private : + + std::string nom; + std::list *lesWagons; + +public : + + Train(std::string nom); + + int ajouter(Wagon leWagon); + int enlever(Wagon leWagon); + + ~Train(); + }; + + + + +#endif // TRAIN_HPP \ No newline at end of file diff --git a/Algo/tp/Cpp/3_tp/src/wagon.cpp b/Algo/tp/Cpp/3_tp/src/wagon.cpp new file mode 100644 index 0000000..035e18d --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/wagon.cpp @@ -0,0 +1,27 @@ +#include "wagon.hpp" +#include +#include + +Wagon::Wagon(int numero) + :numero{numero} +{} + +int Wagon::ajouter(Passager lePassager) { + if(lesPassagers->size() == capacite) { + return -1; + } + lesPassagers->push_back(lePassager); + return 0; +} + +int Wagon::enlever(Passager lePassager) { + if(lesPassagers->size() == 0) { + return -1; + } + lesPassagers->remove(lePassager); + return 0; +} + +// ostream &operator<<(ostream &s, const Passager &p) { + +// } \ No newline at end of file diff --git a/Algo/tp/Cpp/3_tp/src/wagon.hpp b/Algo/tp/Cpp/3_tp/src/wagon.hpp new file mode 100644 index 0000000..7d62cc4 --- /dev/null +++ b/Algo/tp/Cpp/3_tp/src/wagon.hpp @@ -0,0 +1,30 @@ +#ifndef WAGON_HPP +#define WAGON_HPP + +#include +#include +#include "passager.hpp" + +class Wagon { + +private : + + int numero; + + std::list *lesPassagers; + +public : + + static const int capacite = 20; + + Wagon(int numero); + + int ajouter(Passager lePassager); + int enlever(Passager lePassager); + + ~Wagon() = default; //~Wagon(){}; +}; + +std::ostream &operator<<(std::ostream &s, const Passager &p); + +#endif // WAGON_HPP \ No newline at end of file diff --git a/Algo/tp/Cpp/3_tp/tp3_list_vector_train.pdf b/Algo/tp/Cpp/3_tp/tp3_list_vector_train.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f888748c1f612a637677d0eede3561acc09d31b GIT binary patch literal 27104 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 literal 0 HcmV?d00001