je ne pense pas que ce type de developpment merite que d'être publié sur les sources DVP C++. Si quelq'un pense que je devrais au contraire le publier je leferai alors.
Voici le main.cpp pour que tout le monde comprenne ce que peut faire ce panier basique :
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include "Panier.h" int main(int argc, char* argv[]) { Panier * panier = new Panier(); panier->ajouterArticle(1, 2, 50); panier->ajouterArticle(2, 2, 100); panier->ajouterArticle(3, 1, 150); panier->ajouterArticle(1, 3, 50); cout << panier->calculerPanier() << endl; cout << panier->supprimerArticle(2) << endl;; cout << panier->calculerPanier() << endl; return 0; } |
LignePanier.h
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #pragma once class LignePanier { private: int codeArticle; int qteArticle; int prixArticle; public: LignePanier(int code, int qte, int prix); int getCode(void); int ajouterQte(int qte); int calculerLigne(void); LignePanier(const LignePanier &ligne); public: ~LignePanier(void); }; |
Code c++ : | Sélectionner tout |
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 | #include "LignePanier.h" LignePanier::LignePanier(int code, int qte, int prix) { this->codeArticle = code; this->qteArticle = qte; this->prixArticle = prix; } LignePanier::~LignePanier(void) { } int LignePanier::calculerLigne(void) { return (this->qteArticle * this->prixArticle); } LignePanier::LignePanier(const LignePanier &ligne) { this->codeArticle = ligne.codeArticle; this->prixArticle = ligne.prixArticle; this->qteArticle = ligne.qteArticle; } int LignePanier::ajouterQte(int qte) { this->qteArticle += qte; return 0; } int LignePanier::getCode(void) { return this->codeArticle; } |
Code c++ : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #pragma once #include "LignePanier.h" #include <list> #include <iostream> #include <string> using namespace std ; class Panier { private: list<LignePanier> listeArticles; public: Panier(void); int ajouterArticle(int code, int qte, int prix); LignePanier getArticle(int code); int supprimerArticle(int code); int calculerPanier(void); public: ~Panier(void); }; |
Code c++ : | Sélectionner tout |
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 | #include "Panier.h" Panier::Panier(void) { } Panier::~Panier(void) { } int Panier::ajouterArticle(int code, int qte, int prix) { LignePanier ligne = this->getArticle(code); if (ligne.getCode() == code) { ligne.ajouterQte(qte); this->supprimerArticle(code); } else ligne = LignePanier(code, qte, prix); this->listeArticles.push_back(ligne); return 0; } LignePanier Panier::getArticle(int code) { for(list<LignePanier>::iterator iter = listeArticles.begin(); iter != listeArticles.end(); ++iter) { if (code == iter->getCode()) return (*iter); } LignePanier li = LignePanier(0, 0, 0); return li; } int Panier::calculerPanier(void) { int total = 0; for(list<LignePanier>::iterator iter = listeArticles.begin(); iter != listeArticles.end(); ++iter) { total += iter->calculerLigne(); } return total; } int Panier::supprimerArticle(int code) { for(list<LignePanier>::iterator iter = listeArticles.begin(); iter != listeArticles.end(); ++iter) { if (code == iter->getCode()) { this->listeArticles.erase(iter); return 0; } } return 0; } |