mirror of
https://inf-git.fh-rosenheim.de/studavrije7683/cplusplus-training.git
synced 2026-06-29 01:23:21 +00:00
Initial commit
This commit is contained in:
+302
@@ -0,0 +1,302 @@
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Person {
|
||||
private:
|
||||
string vorname;
|
||||
string name;
|
||||
string strasse;
|
||||
unsigned int hausnr;
|
||||
string ort;
|
||||
unsigned int plz;
|
||||
public:
|
||||
Person() {};
|
||||
void datenErfassen();
|
||||
void datenAusgeben();
|
||||
};
|
||||
|
||||
void Person::datenErfassen()
|
||||
{
|
||||
cout << "--Datenerfassung--" << endl;
|
||||
cout << "Vorname: ";
|
||||
cin >> vorname;
|
||||
cout << "Nachname: ";
|
||||
cin >> name;
|
||||
cout << "Strasse: ";
|
||||
cin >> strasse;
|
||||
cout << "Hausnummer: ";
|
||||
cin >> hausnr;
|
||||
cout << "PLZ: ";
|
||||
cin >> plz;
|
||||
cout << "Ort: ";
|
||||
cin >> ort;
|
||||
cout << endl << "Person erfasst." << endl;
|
||||
}
|
||||
|
||||
void Person::datenAusgeben()
|
||||
{
|
||||
cout << vorname << " " << name << endl;
|
||||
cout << strasse << " " << hausnr << endl;
|
||||
cout << plz << " " << ort << endl;
|
||||
}
|
||||
|
||||
class Buch{
|
||||
private:
|
||||
string titel;
|
||||
string autor;
|
||||
public:
|
||||
Buch() {};
|
||||
Buch(string t,string a) : titel(t), autor(a) {};
|
||||
void datenAusgeben();
|
||||
};
|
||||
|
||||
void Buch::datenAusgeben()
|
||||
{
|
||||
cout << titel << " (von " << autor << ")";
|
||||
}
|
||||
|
||||
class Datum{
|
||||
private:
|
||||
short tag;
|
||||
short monat;
|
||||
unsigned int jahr;
|
||||
public:
|
||||
void datumErfassen();
|
||||
void datenAusgeben();
|
||||
void umEinenMonatErhoehen();
|
||||
};
|
||||
|
||||
void Datum::datumErfassen()
|
||||
{
|
||||
cout << "Tag: ";
|
||||
cin >> tag;
|
||||
cout << "Monat: ";
|
||||
cin >> monat;
|
||||
cout << "Jahr: ";
|
||||
cin >> jahr;
|
||||
}
|
||||
|
||||
void Datum::datenAusgeben()
|
||||
{
|
||||
cout << tag << "." << monat << "." << jahr << endl;
|
||||
}
|
||||
|
||||
void Datum::umEinenMonatErhoehen()
|
||||
{
|
||||
if(monat == 12)
|
||||
{
|
||||
jahr = jahr+1;
|
||||
monat=(monat%12)+1;
|
||||
}
|
||||
else if(tag == 28 && monat == 2)
|
||||
{
|
||||
tag = 31;
|
||||
monat+=1;
|
||||
}
|
||||
else if(tag <= 28)
|
||||
{
|
||||
monat+=1;
|
||||
}
|
||||
else if(tag > 28 && tag <= 31 && monat == 1)
|
||||
{
|
||||
tag = 28;
|
||||
monat+=1;
|
||||
}
|
||||
else if(tag==31 && monat != 7)
|
||||
{
|
||||
switch (monat)
|
||||
{
|
||||
case 3:
|
||||
case 5:
|
||||
case 8:
|
||||
case 10:
|
||||
{
|
||||
tag=30;
|
||||
monat+=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(tag==30)
|
||||
{
|
||||
switch (monat)
|
||||
{
|
||||
case 4:
|
||||
case 6:
|
||||
case 9:
|
||||
case 11:
|
||||
{
|
||||
tag=31;
|
||||
monat+=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
monat+=1;
|
||||
}
|
||||
|
||||
class Ausleihe {
|
||||
private:
|
||||
Person ausleiher;
|
||||
Buch ausgeliehenesBuch;
|
||||
Datum rueckgabe;
|
||||
bool hat_buch;
|
||||
public:
|
||||
Ausleihe() { hat_buch = false; };
|
||||
void datenErfassen(Person,Buch,Datum);
|
||||
void datenAusgeben();
|
||||
void verlaengere();
|
||||
void zurueckgeben();
|
||||
bool get_hat_buch();
|
||||
};
|
||||
|
||||
void Ausleihe::datenErfassen(Person p, Buch b, Datum d)
|
||||
{
|
||||
ausleiher = p;
|
||||
ausgeliehenesBuch = b;
|
||||
rueckgabe = d;
|
||||
hat_buch = true;
|
||||
}
|
||||
|
||||
void Ausleihe::datenAusgeben()
|
||||
{
|
||||
ausleiher.datenAusgeben();
|
||||
cout << endl << "Ausgeliehenes Buch: ";
|
||||
ausgeliehenesBuch.datenAusgeben();
|
||||
cout << endl << "Rueckgabe bis: ";
|
||||
rueckgabe.datenAusgeben();
|
||||
}
|
||||
|
||||
void Ausleihe::verlaengere()
|
||||
{
|
||||
rueckgabe.umEinenMonatErhoehen();
|
||||
cout << "Ausleihe um 1 Monat verlaengert." << endl;
|
||||
}
|
||||
|
||||
void Ausleihe::zurueckgeben()
|
||||
{
|
||||
cout << "Buch ";
|
||||
ausgeliehenesBuch.datenAusgeben();
|
||||
cout << " wurde zuruckgegeben." << endl;
|
||||
hat_buch = false;
|
||||
}
|
||||
|
||||
bool Ausleihe::get_hat_buch()
|
||||
{
|
||||
return hat_buch;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
Person p;
|
||||
int auswahl;
|
||||
Buch b[3] = {{"Titel 1", "Autor a"},{"Titel 2", "Autor b"},{"Titel 2", "Autor c"}};
|
||||
Ausleihe a;
|
||||
Datum d;
|
||||
|
||||
p.datenErfassen();
|
||||
system("pause");
|
||||
|
||||
do
|
||||
{
|
||||
system("cls");
|
||||
cout << "--MENUE--" << endl;
|
||||
cout << "[1] Personendaten erfassen" << endl;
|
||||
cout << "[2] Buch ausleihen" << endl;
|
||||
cout << "[3] Ausleihe verlaengern" << endl;
|
||||
cout << "[4] Daten ausgeben" << endl;
|
||||
cout << "[5] Buch zurueckgeben" << endl;
|
||||
cout << "[0] Beenden" << endl;
|
||||
cout << endl << "Auswahl: ";
|
||||
cin >> auswahl;
|
||||
switch(auswahl)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
system("cls");
|
||||
p.datenErfassen();
|
||||
system("pause");
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
system("cls");
|
||||
if(a.get_hat_buch() == true)
|
||||
{
|
||||
cout << "Ausleihe nicht moeglich. Person hat bereits ein Buch ausgeliehen" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "Welches Buch soll ausgeliehen werden?" << endl;
|
||||
for(int i=0;i<3;i++)
|
||||
{
|
||||
cout << "[" << i+1 << "] ";
|
||||
b[i].datenAusgeben();
|
||||
cout << endl;
|
||||
}
|
||||
cout << endl << "Auswahl: ";
|
||||
cin >> auswahl;
|
||||
|
||||
system("cls");
|
||||
cout << "Bis wann soll das Buch zurueckgegeben werden?" << endl;
|
||||
d.datumErfassen();
|
||||
|
||||
a.datenErfassen(p,b[auswahl-1],d);
|
||||
}
|
||||
|
||||
system("pause");
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
system("cls");
|
||||
if(a.get_hat_buch() == true)
|
||||
a.verlaengere();
|
||||
else
|
||||
cout << "Person hat kein Buch ausgeliehen." << endl;
|
||||
system("pause");
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
system("cls");
|
||||
if(a.get_hat_buch() == true)
|
||||
a.datenAusgeben();
|
||||
else
|
||||
cout << "Person hat kein Buch ausgeliehen." << endl;
|
||||
system("pause");
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
system("cls");
|
||||
if(a.get_hat_buch() == true)
|
||||
a.zurueckgeben();
|
||||
else
|
||||
cout << "Person hat kein Buch ausgeliehen." << endl;
|
||||
system("pause");
|
||||
system("cls");
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
cout << endl << "Auf Wiedersehen" << endl;
|
||||
return 0;
|
||||
}
|
||||
default:
|
||||
{
|
||||
cout << endl << "Falsche Eingabe!" << endl;
|
||||
system("pause");
|
||||
}
|
||||
}
|
||||
}while(auswahl!=0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
#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");
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user