Vous êtes sur la page 1sur 2

#include <iostream>

#include <string>
#include <vector>
#include <algorithm>

struct Article {
std::string name;
bool is_bought;

Article(std::string n) : name(n), is_bought(false) {}


};

class ShoppingList {
public:
void addArticle(std::string name) {
ListeArticles.push_back(Article(name));
}

void removeArticle(int index) {


if (index < 0 || index >= ListeArticles.size()) {
std::cout << "Index invalide." << std::endl;
return;
}
ListeArticles.erase(ListeArticles.begin() + index);
}

void markAsBought(int index) {


if (index < 0 || index >= ListeArticles.size()) {
std::cout << "Index invalide." << std::endl;
return;
}
ListeArticles[index].is_bought = true;
}

void displayList() {
int count = 1;
for (auto& article : ListeArticles) {
std::cout << count++ << ". " << (article.is_bought ? "[\u2713] " : "[ ]
") << article.name << std::endl;
}
}

private:
std::vector<Article> ListeArticles;
};

int main() {
ShoppingList listeCourses;
int choix;
std::string nomArticle;

while (true) {
std::cout << "\nListe de courses :" << std::endl;
listeCourses.displayList();
std::cout << "\nQue voulez-vous faire?" << std::endl;
std::cout << "1. Ajouter un article" << std::endl;
std::cout << "2. Supprimer un article" << std::endl;
std::cout << "3. Marquer un article comme achete" << std::endl;
std::cout << "4. Quitter" << std::endl;
std::cin >> choix;

switch (choix) {
case 1:
std::cout << "Nom de l'article : ";
std::cin.ignore();
std::getline(std::cin, nomArticle);
listeCourses.addArticle(nomArticle);
break;
case 2:
std::cout << "Index de l'article a supprimer : ";
std::cin >> choix;
listeCourses.removeArticle(choix - 1);
break;
case 3:
std::cout << "Index de l'article a marquer comme achete : ";
std::cin >> choix;
listeCourses.markAsBought(choix - 1);
break;
case 4:
return 0;
default:
std::cout << "Choix invalide." << std::endl;
}
}

return 0;
}

Vous aimerez peut-être aussi