Initial commit

This commit is contained in:
studavrije7683
2021-10-15 08:36:02 +02:00
commit d3138a4b13
89 changed files with 2898 additions and 0 deletions
@@ -0,0 +1,31 @@
Erzeugen Sie in main() ein Feld von 100 Tierobjekten.
Erstellen Sie mit Hilfe einer switch-Anweisung ein Benutzermenü mit 4 Punkten:
- 1: Tier anlegen ()
- 3: Tier anzeigen ()
- 2: Tier verkaufen ()
- 0: Programm beenden
Das Menüs soll solange wieder erscheinen, bis der Nutzer die Zahl für „Programm beenden“ eingibt (while-schleife)
Die Tiernummer ist eine laufende Nummer, welche sich erhöht, wenn der Benutzer ein Tier angelegt hat.
Beim Anlegen sollen folgende Daten für ein Tier gespeichert werden:
- Tiernummer
- Tierart
- Gewicht
Beim Anzeigen sollen alle Tiere mit folgenden Daten angezeigt werden:
- Tiernummer
- Tierart
- Gewicht
- ob das Tier noch im Bestand ist
Beim Verkauf soll geprüft werden, ob das Tier noch im Bestand ist und ob die gespeicherte Tiernummer mit der eingegebenen Tiernummer übereinstimmt.
Falls nicht soll die Meldung kommen, dass die Tiernummer falsch ist oder dass das Tier nicht im Bestand ist.
Es soll folgendes funktionieren:
- Eingabe des Tagespreises
- Gesamteinnahmen erhöhen sich (Gewicht * Tagespreis)
- Ausgabe der Gesamteinnahmen (hier wird die Gesamte Einnahme aller verkauften Tiere ausgegeben)
- Tier ist anschließend nicht mehr im Bestand
@@ -0,0 +1,28 @@
Es soll ein Programm zur Bibliotheksverwaltung geschrieben werden, wo die Daten eines
Benutzers am Anfang des Programmstars abgefragt werden. Anschließend soll ein Menü
erscheinen, wo der Benutzer navigieren kann. Es können folgendes funktionieren:
- Personendaten erfassen
- Buch ausleihen
- Ausleihe verlängern
- Alle Daten ausgeben
- Buch zurückgeben
- Beenden
Die Personendaten werden komplett neu erfasst.
Die nachfolgenden Funktionalitäten können nur genutzt werden, wenn der Ausleiher noch kein
Buch hat, ansonsten erscheint eine Meldung, dass der Ausleiher bereits ein Buch hat.
- Die Person hat die Möglichkeit, maximal eines von 3 Büchern auszuleihen. Bei
den Büchern sind nur der Titel und der Autor hinterlegt. Beim Ausleihen wird ein
Rückgabedatum angegeben, bis wann der Ausleiher das Buch zurückgeben soll
(Falsches Datum wird nicht abgefragt).
- Die Ausleihe kann um 1 Monat verlängert werden. Beginnt die Ausleihe am
Monatsende, so wird das jeweilige Monat ebenfalls auf das Monatsende gesetzt.
• Beispiel 1: Ausleihe ist 31.03.16 ? Verlängerung ? Neues Rückgabedatum: 30.04.16
• Beispiel 2: Ausleihe ist 30.01.16 ? Verlängerung ? Neues Rückgabedatum: 28.02.16
• Beispiel 3: Ausleihe ist 20.12.16 ? Verlängerung ? Neues Datum ist 20.01.17
- Bei der Datenausgabe werden alle Daten von der Ausleihe (Person, Buch, Rückgabedatum) ausgegeben.
- Wenn das Buch zurückgegeben wird, kann der Ausleiher wieder ein neues Buch ausleihen.
Beim Beenden des Programms soll der Benutzer verabschiedet werden.
@@ -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");
};
};