Untitled
unknown
plain_text
3 years ago
6.5 kB
14
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...