Untitled
unknown
plain_text
2 years ago
6.5 kB
11
Indexable
#include <iostream> #include <string> #include <vector> using namespace std; class IAnimal { public: virtual ~IAnimal() {} }; class Tigre : public IAnimal { public: Tigre(string nom) { } }; class Aigle : public IAnimal { public: Aigle(string nom) { } }; class Poule : public IAnimal { public: Poule(string nom) { } }; class Coq : public IAnimal { public: Coq(string nom) { } }; class Zoo { vector<IAnimal *> animals; int argent; int nbTigres; // compteur pour les tigres int nbAigles; // compteur pour les aigles int nbPoules; // compteur pour les poules int nbCoqs; // compteur pour les coqs public: Zoo(string nom) { argent = 80000; nbTigres = 0; nbAigles = 0; nbPoules = 0; nbCoqs = 0; }; void ajouterAnimal(IAnimal *animal) { animals.push_back(animal); // Incrémenter le compteur correspondant if (dynamic_cast<Tigre *>(animal)) { nbTigres++; } else if (dynamic_cast<Aigle *>(animal)) { nbAigles++; } else if (dynamic_cast<Poule *>(animal)) { nbPoules++; } else if (dynamic_cast<Coq *>(animal)) { nbCoqs++; } }; int getArgent() const { cout << "Il vous reste " << argent << " euros dans la banque du Zoo!" << endl; return argent; } void acheterAnimal(string typeAnimal, string nomAnimal) { if (argent >= 10000) { // Vérifiez si le zoo a suffisamment d'argent pour acheter un animal if (typeAnimal == "tigre") { ajouterAnimal(new Tigre(nomAnimal)); // Appeler la fonction ajouterAnimal avec un nouvel objet Tigre argent -= 10000; // Retirez le coût d'achat du montant d'argent du zoo cout << nomAnimal << ", le tigre, a ete achete pour 10000 euros !" << endl; } else if (typeAnimal == "aigle") { ajouterAnimal(new Aigle(nomAnimal)); // Appeler la fonction ajouterAnimal avec un nouvel objet Aigle argent -= 5000; // Retirez le coût d'achat du montant d'argent du zoo cout << nomAnimal << ", l'aigle, a ete achete pour 5000 euros !" << endl; } else if (typeAnimal == "poule") { ajouterAnimal(new Poule(nomAnimal)); // Appeler la fonction ajouterAnimal avec un nouvel objet Poule argent -= 1000; // Retirez le coût d'achat du montant d'argent du zoo cout << nomAnimal << ", la poule, a ete achetee pour 1000 euros !" << endl; } else if (typeAnimal == "coq") { ajouterAnimal(new Coq(nomAnimal)); // Appeler la fonction ajouterAnimal avec un nouvel objet Coq argent -= 1500; // Retirez le coût d'achat du montant d'argent du zoo cout << nomAnimal << ", le coq, a ete achete pour 1500 euros !" << endl; } else { cout << "Erreur: le type d'animal demande n'est pas valide !" << endl; } } else { cout << "Erreur: le zoo n'a pas suffisamment d'argent pour acheter " << nomAnimal << endl; } } /*void vendreAnimal(string nomAnimal) { Animal *animalAVendre = getAnimal(nomAnimal); // Récupérer l'objet animal à vendre if (animalAVendre != nullptr) // Vérifier si l'objet animal à vendre existe dans la liste des animaux { int prixVente = animalAVendre->getPrixVente(); // Récupérer le prix de vente de l'animal argent += prixVente; // Ajouter le prix de vente à l'argent du zoo supprimerAnimal(nomAnimal); // Supprimer l'animal de la liste des animaux cout << nomAnimal << " a ete vendu pour " << prixVente << " euros !" << endl; } else { cout << "Erreur: l'animal " << nomAnimal << " n'est pas dans le zoo !" << endl; } }*/ void afficherAnimaux() const { if (nbTigres == 0 && nbAigles == 0 && nbPoules == 0 && nbCoqs == 0) { cout << "Vous n'avez pas encore d'animaux dans votre zoo " << endl; } else { cout << "Les animaux du zoo sont :" << endl; if (nbTigres != 0) { cout << " - " << nbTigres << " tigre(s)" << endl; } if (nbAigles != 0) { cout << " - " << nbAigles << " aigle(s)" << endl; } if (nbPoules != 0) { cout << " - " << nbPoules << " poule(s)" << endl; } if (nbCoqs != 0) { cout << " - " << nbCoqs << " coq(s)" << endl; } } } }; int main() { // Initialiser le zoo Zoo monZoo("Mon zoo"); // Menu interactif int choix = 0; while (choix != 7) { cout << "" << endl; cout << "Que voulez-vous faire ?" << endl; cout << "1. Acheter un tigre" << endl; cout << "2. Acheter un aigle" << endl; cout << "3. Acheter une poule " << endl; cout << "4. Acheter un coq " << endl; cout << "5. Voir son argent " << endl; cout << "6. Voir ses animaux de son zoo " << endl; cout << "" << endl; cout << "Votre choix : "; cin >> choix; cout << "" << endl; switch (choix) { case 1: monZoo.acheterAnimal("tigre", "Tigrou"); break; case 2: monZoo.acheterAnimal("aigle", "Aiglon"); break; case 3: monZoo.acheterAnimal("poule", "Poulette"); break; case 4: monZoo.acheterAnimal("coq", "Poulette"); break; case 5: monZoo.getArgent(); break; case 6: monZoo.afficherAnimaux(); break; default: cout << "Erreur : choix invalide" << endl; } } return 0; } /*Zoo monZoo("Mon zoo"); // créer un objet Zoo //monZoo.acheterAnimal("tigre", "r1"); monZoo.getArgent(); monZoo.afficherAnimaux(); // afficher les animaux du zoo*/
Editor is loading...