#include <iostream>
#include <string>

using namespace std;

class Tier // Klasse Tier
{
private:
	// Tiereigenschaften
	int Tiernummer;
	string Art;
	float Gewicht;
	static float Gesamteinnahme;
	float Tagespreis;
	bool Bestand;

public:
	// Methoden der Klasse
	void TierAnlegen(void);
	void TierAnzeigen(void);
	void TierVerkaufen(void);
	
	//getter
	int get_Nr() { return Tiernummer; }
	bool get_Bestand() { return Bestand; }
	
	//setter
	void set_Nr(int nr) { Tiernummer = nr; }

};

// Funktion zum Anlegen

void Tier::TierAnlegen(void)
{
	cout << "Bitte geben Sie die Tierart ein: ";
	cin >> Art;
	cout << "Bitte geben Sie das Gewicht des Tieres an: ";
	cin >> Gewicht;
	Bestand = true; //Tier ist im Bestand 
} ;

// Funktion um Daten anzuzeigen

void Tier::TierAnzeigen(void)
{
		cout << "Tiernummer: " << Tiernummer << endl;
		cout << "Tierart: " << Art << endl;
		cout << "Gewicht: " << Gewicht << endl;
		cout << "Noch im Bestand? (1 = ja, 0 = nein): " << Bestand << endl;
};

void Tier::TierVerkaufen()
{
		cout << "Wie steht der Tagespreis?"<< endl;
		cin >> Tagespreis;
		Gesamteinnahme += Gesamteinnahme + (Gewicht*Tagespreis);
		cout << "Gesamteinnahmen: " << Gesamteinnahme << endl;
		Bestand = false;
		cout << endl << endl;
};

float Tier::Gesamteinnahme = 0;

int main(void)
{
int s=0, eing, nr; // deklariert integer s auf null, wird für das menü werwendet
int i = 0;
Tier tiere[100] = Tier();

cout << "Herzlich willkommen bei der Bauernhofverwaltung" << endl << endl << "Bitte treffen Sie Ihre Auswahl im Menue..." << endl << endl << endl;

// While - Schleife die das Menü und Untermenüs enthält

while (s == 0) {
	
	system("cls");
	
	//Das Menue
	cout << "[1] Tier anlegen" << endl;
	cout << "[2] Tier anzeigen" << endl;
	cout << "[3] Tier verkaufen" << endl;
	cout << "[0] Beende" << endl<<endl;
	cout << "Treffen Sie Ihre Auswahl: ";
	
	cin >> eing;

	//switch Abfrage lädt in die einzelnen Menüpunkte
	
	switch(eing) {
	
		case 1 : {
			system("cls");
			tiere[i].TierAnlegen(); // Funktion um ein Tier anzulegen
			tiere[i].set_Nr(i);
			cout << "Tier wurde angelegt: " << endl;
			i++;
			break;
		}
		
		case 2 : { //Funktion um alle Tiere auszugeben
			system("cls");
			for(int j = 0; j < i; j++)
				tiere[j].TierAnzeigen();
			break;
		}
		
		case 3 : { //Funktion um Tier zu verkaufen
			system("cls");
			cout << "Tiernummer eingeben: " << endl;
			cin >> nr;
			bool tmp = false;
			for(int j = 0; j < i; j++)
			{
				if(tiere[j].get_Nr() == nr && tiere[j].get_Bestand() == 1)
				{
					tiere[j].TierVerkaufen();
					tmp = true;
					break;
				}
				else if (tiere[j].get_Nr() == nr && tiere[j].get_Bestand() == 0)
				{
					cout << "Tier mit der Nummer " << tiere[j].get_Nr() << " nicht im Bestand." << endl;
					tmp = true;
					break;
				}
			}
			if(!tmp) //falls keine Tier gefunden wurde
				cout << "Tier mit der Nummer " << nr << " nicht vorhanden." << endl;
				
			break;
		}
		
		/* case 0 bricht Programm ab
		da s gleich 1 gesetzt wird*/
		
		case 0:
		{
			s = 1 ;
			break;
		}
		
		/* default
		bei anderen Eingaben bleibt Menü erhalten*/
		
		default:
		{
			s = 0 ;
		}
	}	
system(" pause");
};
};

