ajout du tp3 de Cpp

master
antoine.perederii 2 years ago
parent f8eaeab343
commit a28a6b96b7

@ -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

@ -0,0 +1,16 @@
#include "passager.hpp"
#include <iostream>
#include <string>
using namespace std;
Passager::Passager(string nom, string prenom)
:nom{nom}, prenom{prenom}
{}
Wagon Passager::getWagonActuel() const {
return *wagonActuel;
}

@ -0,0 +1,25 @@
#ifndef PASSAGER_HPP
#define PASSAGER_HPP
#include <string>
#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

@ -0,0 +1,30 @@
#include "wagon.hpp"
#include "passager.hpp"
#include "train.hpp"
#include <iostream>
#include <string>
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;
}

@ -0,0 +1,25 @@
#include "train.hpp"
#include <iostream>
#include <string>
#include <list>
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;
}

@ -0,0 +1,27 @@
#ifndef TRAIN_HPP
#define TRAIN_HPP
#include <string>
#include "wagon.hpp"
class Train {
private :
std::string nom;
std::list<Wagon> *lesWagons;
public :
Train(std::string nom);
int ajouter(Wagon leWagon);
int enlever(Wagon leWagon);
~Train();
};
#endif // TRAIN_HPP

@ -0,0 +1,27 @@
#include "wagon.hpp"
#include <iostream>
#include <string>
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) {
// }

@ -0,0 +1,30 @@
#ifndef WAGON_HPP
#define WAGON_HPP
#include <string>
#include <list>
#include "passager.hpp"
class Wagon {
private :
int numero;
std::list<Passager> *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
Loading…
Cancel
Save