Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
6.5 kB
7
Indexable
Never
#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*/