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

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*/old/
*.ilk
*.obj
*.pdb

29
Teil_1/.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,29 @@
{
// Verwendet IntelliSense zum Ermitteln möglicher Attribute.
// Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
// Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Aktive Datei erstellen und debuggen",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Automatische Strukturierung und Einrückung für \"gdb\" aktivieren",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe Aktive Datei kompilieren"
}
]
}

53
Teil_1/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,53 @@
{
"files.associations": {
"ostream": "cpp",
"iostream": "cpp",
"xiosbase": "cpp",
"memory": "cpp",
"system_error": "cpp",
"type_traits": "cpp",
"xmemory": "cpp",
"xstddef": "cpp",
"xstring": "cpp",
"cmath": "cpp",
"istream": "cpp",
"ios": "cpp",
"functional": "cpp",
"string": "cpp",
"atomic": "cpp",
"bit": "cpp",
"cctype": "cpp",
"clocale": "cpp",
"compare": "cpp",
"concepts": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"exception": "cpp",
"initializer_list": "cpp",
"iosfwd": "cpp",
"iterator": "cpp",
"limits": "cpp",
"list": "cpp",
"new": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"tuple": "cpp",
"typeinfo": "cpp",
"unordered_map": "cpp",
"utility": "cpp",
"vector": "cpp",
"xfacet": "cpp",
"xhash": "cpp",
"xlocale": "cpp",
"xlocinfo": "cpp",
"xlocnum": "cpp",
"xtr1common": "cpp",
"xutility": "cpp",
"xtree": "cpp"
}
}

28
Teil_1/.vscode/tasks.json vendored Normal file
View File

@ -0,0 +1,28 @@
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe Aktive Datei kompilieren",
"command": "C:\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Vom Debugger generierte Aufgabe."
}
],
"version": "2.0.0"
}

View File

@ -0,0 +1,13 @@
#include<iostream>
using namespace std;
int main()
{
cout << "Willkommen bei der Bauernhofverwaltung" << endl;
system("PAUSE"); /*Compilerabhängig, evtl. auch getchar(); oder es kann entfallen */
return 0;
};

View File

@ -0,0 +1,17 @@
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
cout << "Vorname: Max" << endl;
cout << "Nachname: Mustermann" << endl;
cout << "Alter: 21" << endl;
cout << "Vorname: Erika" << endl << "Nachname: Engel " << endl << "Alter: 18" << endl;
system("pause");
return 0;
}

View File

@ -0,0 +1,8 @@
#include <iostream>
using namespace std;
int main(){
cout<<"Willkommen auf dem Bauerhof von Bauer Max\n";
return 0;
}

View File

@ -0,0 +1,15 @@
Liebe Kursteilnehmer,
parallel zum Kurs möchte ich mit Ihnen gemeinsam in
wöchentlichen Schritten ein kleines Programm entwickeln.
Sie können so den erlernten Stoff gleich einüben.
Ich werde am Ende der Woche meinen Lösungsvorschlag ins LMS stellen.
Hier die erste Aufgabe:
Bauer Max hat einen Bauernhof mit Enten und Schweinen. Diese will er verkaufen.
Schreiben Sie ein C++-Programm, das den Nutzer am Bauernhof begrüßt.
Grüße
Monika Eberle

View File

@ -0,0 +1,11 @@
#include <iostream>
using namespace std;
int main(){
cout << "Vorname:\tMax"<<endl;
cout << "Nachname:\tMustermann"<<endl;
cout << "Alter:\t\t21"<<endl<<endl;
cout << "Vorname:\tErika\nNachname:\tEngel\nAlter:\t\t18";
return 0;
}

View File

@ -0,0 +1,15 @@
Erstellen Sie ein Programm, welches folgende Ausgabe erzeuegen soll:
Vorname: Max
Nachname: Mustermann
Alter: 21
Vorname, Nachname und Alter soll jeweils durch eine eigenen Anweisung ausgegeben werden.
Erstellen Sie zusätzlich folgende Ausgabe:
Vorname: Erika
Nachname: Engel
Alter: 18
Diese Ausgabe soll in einer einzigen Anweisung erzeugt werden.

View File

@ -0,0 +1,23 @@
#include<iostream>
using namespace std;
int main()
{
int zahl = 21;
float kommazahl = 3.14;
string zeichenkette = "Hallo Welt";
char zeichen = 'A';
bool wahl = true;
cout << zahl << endl;
cout << kommazahl << endl;
cout << zeichenkette << endl;
cout << zeichen << endl;
cout << wahl << endl;
system("pause");
return 0;
};

View File

@ -0,0 +1,25 @@
#include<iostream>
using namespace std;
int main()
{
int Gewicht=0;
float Tagespreis=0;
float Einnahme=0;
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
Einnahme = Gewicht*Tagespreis;
cout << "Einnahme: " << Einnahme << endl;
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,23 @@
#include <iostream>
using namespace std;
int main()
{
float fahrenheit;
float celsius;
const int wert = 32;
cout << "Hallo. Bitte Wert eingeben: ";
cin >> fahrenheit;
cout << endl << "Eingabe war: " << fahrenheit;
celsius = ((fahrenheit - wert) * 5) / 9;
cout << endl;
cout << "Wert in Celsius: " << celsius;
system("pause");
return 0;
}

View File

@ -0,0 +1,20 @@
#include <iostream>
using namespace std;
int main()
{
uint8_t pos_ganzzahl = 54;
long double lange_dezimalzahl = 12312341312341.1231;
const char *zeichen_kette = "Hallo Welt";
char einzelnes_zeichen = 'X';
bool wahrheits_wert = true;
cout << "Ganzzahl: \t" << pos_ganzzahl << endl;
cout << "Dezimalzahl: \t" << lange_dezimalzahl << endl;
cout << "Zeichenkette bzw. Text: \t" << zeichen_kette << endl;
cout << "Zeichen bzw. Buchstabe: \t" << einzelnes_zeichen << endl;
cout << "Wahrheitswert: \t" << wahrheits_wert << " (" << (wahrheits_wert ? "True)" : "False)") << endl;
return 0;
}

View File

@ -0,0 +1,10 @@
Machen Sie sich mit den einzelnen Datentypen vertraut.
Erstellen Sie für jeden Punkt eine Variable mit dem passenden Datentyp:
- Ganzzahl
- Dezimalzahl
- Zeichenkette bzw. Text
- Zeichen bzw. Buchstabe
- Wahrheitswert
Weisen Sie Ihnen einen Wert zu und geben sie anschließend diese Werte auf dem Bildschirm aus.

View File

@ -0,0 +1,35 @@
#include <iostream>
using namespace std;
const char *fehler_meldung = "\nEs gab einen Fehler bei der Eingabe.\nBitte erneut eingeben.\n";
int main()
{
cout << "Willkommen auf dem Bauerhof von Bauer Max\n";
float tagespreis = 0, einnahmen = 0;
int gewicht = 0;
cout << "Bitte geben Sie den aktuellen Tagespreis udn das Gewicht an. \n\tTagespreis: ";
do
{
if (cin.fail())
{
cout << fehler_meldung << "\tTagespreis:";
cin.clear();
cin.ignore();
}
cin >> tagespreis;
} while (cin.fail());
cout << "Gewicht: ";
do
{
if (cin.fail())
{
cout << fehler_meldung << "\tGewicht:";
cin.clear();
cin.ignore();
}
cin >> gewicht;
} while (cin.fail());
einnahmen = tagespreis * gewicht;
cout << "Die heutigen Einnahmen belaufen sich auf: " << einnahmen <<" € ("<< tagespreis<<" x " << gewicht<<")\n";
return 0;
}

View File

@ -0,0 +1,13 @@
Bauer Max will ein Schwein verkaufen.
Ergänzen Sie Ihr Programm aus Kapitel 1 "Uebung 1 - Bauernhof" um folgende Variablen:
- Gewicht
- Tagespreis
- Einnahme
In der Variablen Gewicht (Ganzzahl) soll das Gewicht des zu verkaufenden Schweins gespeichert werden.
In der Variable Tagespreis (Dezimalzahl) soll der Tagespreis für das Schwein gespeichert werden.
Beide Variablen werden im Dialog vom Nutzer über die Konsole eingegeben.
Die Einnahme errechnet sich dann aus Gewicht * Tagespreis.
Geben Sie die Höhe der Einnahme auf dem Bildschirm aus.

View File

@ -0,0 +1,19 @@
#include <iostream>
using namespace std;
const int kEauationVal = 32;
int main(){
float user_input=0, result=0;
cout<<"Fahrenheit zu Celsius Rechener\n Bitte Temperatrur in Fahrenheit angeben: ";
cin>>user_input;
if(cin.fail()){
cout<<"\n Fehler bei der Eingabe. Bitte Programm neu starten\n";
return -1;
}
result = ((user_input-kEauationVal)*5)/9;
cout << "Die Temperatur "<<user_input<<" °F entspricht "<<result<<" °C";
return 0;
}

View File

@ -0,0 +1,11 @@
Wir planen eine Amerikareise. Jedoch sind dort Temperatur, Entfernung und Währung anders als in Deutschland.
Um uns die Planung zu erleichtern, wollen wir ein Programm schreiben, welches uns die Temperatur von Fahrenheit in Celsius umrechnet.
Die Formel für die Umrechnung lautet: Celsius = ((temperatur_fahrenheit - 32)*5)/9
Es gilt folgende Anforderungen umzusetzen:
1. Begrüßung und Eingabe der Temperatur in Fahrenheit
2. Ausgabe der eingegebenen Temperatur in Fahrenheit
3. Umrechnung, wobei die 32 aus der Formel als Konstante deklariert wird und mit dieser Konstanten die Umrechnung erfolgen soll.
5/9 soll in der Formel stehen bleiben.
4. Ausgabe der Temperatur in Celsius

View File

@ -0,0 +1,33 @@
#include<iostream>
using namespace std;
int Gewicht=0; // 3 globale Variablenen deklarieren und initialisieren
float Tagespreis=0;
float Einnahme=0;
void Daten_abfragen() //Deklaration und Definition der Methode Daten_abfragen
{
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
}
void Einnahme_berechnen() //Deklaration und Definition der Methode Einnahme_berechnen
{
Einnahme = Gewicht * Tagespreis;
cout << "Einnahme: " << Einnahme<<endl;
}
int main()
{
//Methodenaufrufe
Daten_abfragen();
Einnahme_berechnen();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,34 @@
#include <iostream>
using namespace std;
float quadrieren(float); //Deklaration der Funktion quadrieren. Übergabe ist eine Dezimalzahl, Rückgabe ist das Quadrat der übergebenen Zahl
void kreisflaeche(float radius); //Deklaration der Funktion kreisflaeche. Übergabe ist eine Dezimalzahl (Radius), keine Rückgabe, gibt Kreisfläche aus
int main(int argc, char** argv) {
float quad_zahl;
float radius;
cout << "Bitte geben Sie eine Zahl zum Quadrieren ein: ";
cin >> quad_zahl;
cout << endl << "Ergebnis Quadratzahl: " << quadrieren(quad_zahl) << endl << endl;
cout << "Bitte geben Sie einen Radius ein: ";
cin >> radius;
kreisflaeche(radius);
return 0;
}
float quadrieren(float zahl)
{
return zahl * zahl; //Zahl quadrieren
}
void kreisflaeche(float r)
{
const float pi = 3.14;
cout << endl << "Ergebnis Kreisfl\204che: " << quadrieren(r)*pi; //Kreisfläche berechnen und ausgeben
}

View File

@ -0,0 +1,43 @@
#include <iostream>
using namespace std;
// Prototypen
template <class T>
T DatenErfassen(T *result, const char message[]);
float EinnahmenBerechnen(float *tagespreis, int *gewicht);
const char *fehler_meldung = "\nEs gab einen Fehler bei der Eingabe.\nBitte erneut eingeben.\n";
int main()
{
cout << "Willkommen auf dem Bauerhof von Bauer Max\n";
float tagespreis = 0, einnahmen = 0;
int gewicht = 0;
cout << "Bitte geben Sie den aktuellen Tagespreis und das Gewicht an.\n ";
DatenErfassen(&tagespreis, "Tagespreis:");
DatenErfassen(&gewicht, "Gewicht:");
einnahmen = tagespreis * gewicht;
cout << "Die heutigen Einnahmen belaufen sich auf: " << EinnahmenBerechnen(&tagespreis, &gewicht) << " € (" << tagespreis << " x " << gewicht << ")\n";
return 0;
}
template <class T>
T DatenErfassen(T *result, const char message[])
{
do
{
if (cin.fail())
{
cout << fehler_meldung;
cin.clear();
cin.ignore();
}
cout << message << "\t";
cin >> *result;
} while (cin.fail());
return *result;
}
float EinnahmenBerechnen(float *tagespreis, int *gewicht)
{
return (*tagespreis) * (*gewicht);
}

Binary file not shown.

View File

@ -0,0 +1,7 @@
Ergänzen Sie Ihr Bauernhof-Programm aus Kapitel 2 "Uebung 2 - Bauernhof" um folgende zwei Funktionen:
- Daten_erfassen() -> Für die Eingabe des Gewichts und des Preises
- Einnahme_berechnen() -> Berechnet die Einnahme und gibt diese aus
Die Variablen können global definiert werden.
Rufen Sie die beiden Funktionen auf.

View File

@ -0,0 +1,76 @@
#include <iostream>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
float SquareArea();
void CircleArea();
template <class T, typename F>
void GetInput(T *result, const char message[], F &&constraint);
int main()
{
int option = 0;
cout << "Willkommen im Flaechenrechner\n Tippen sie \n\t\"1\" für die Flaechenberechengung eines Rechtecks oder \n\t\"2\" für die Berechnung eines Kreises\n";
GetInput(&option, "Option: ", [](int val)
{ return (val > 0 && val < 3); });
switch (option)
{
case 1:
{
float result = SquareArea();
cout << "Die Flaeche betraegt " << result << " Einheiten\n";
break;
}
case 2:
CircleArea();
break;
default:
break;
}
}
template <class T, typename F>
void GetInput(T *result, const char message[], F &&constraint)
{
while (true)
{
cout << message;
cin >> *result;
if (cin.fail())
{
cout << "\nFehler bei der Eingabe, bitte veruschen Sie es noch einmal\n";
cin.clear();
cin.ignore();
}
else if (!constraint(*result))
{
cout << "\nDer eingegebene Wert entspricht nicht den Anforderungen\n";
}
else
break;
}
}
float SquareArea()
{
float width = 0, height = 0;
cout << "Rechteck berechnen. Bitte Daten eingeben. \n";
GetInput(&width, "Breite: ", [](float val)
{ return val>0; });
GetInput(&height, "Hoehe: ", [](float val)
{ return val>0; });
return (width * height);
}
void CircleArea()
{
float rad = 0;
cout << "Kreis berechnen. Bitte Daten eingeben. \n";
GetInput(&rad, "Radius: ", [](float val)
{ return val>0; });
cout << "Die Flaeche betraegt " << (M_PI * pow(rad, 2)) << " Einheiten\n";
}

View File

@ -0,0 +1,13 @@
Es soll folgendes Programm erstellt werden:
- Ausgabe eines Willkommensbildschirms
- Eingabeaufforderungen und Eingabe einer Dezimalzahl
- Quadrieren der Dezimalzahl (in einer Funktion, Rückgabe ist das Ergebnis
[produkt = zahl * zahl]) und Ausgabe des Ergebnisses in der Main-Funktion
- Eingabeaufforderungen und Eingabe eines Radius
- Berechnung der Kreisfläche (in einer Funktion, keine Rückgabe.
Das Ergebnis der Berechnung [flaeche = radius * radius * konstante_pi])
soll in dieser Funktion ausgegeben werden.)
Die Variable konstante_pi soll als Konstante deklariert und mit dem Wert
3.14 initialisiert werden.
Verwenden Sie für die Berechnung [radius * radius] die vorher erstellte Funktion.

View File

@ -0,0 +1,64 @@
#include <iostream>
using namespace std;
void printTableFor();
void printTableWhile();
void printTableDoWhile();
int main(int argc, char** argv)
{
printTableFor();
cout << endl;
printTableWhile();
cout << endl;
printTableDoWhile();
return 0;
}
void printTableFor()
{
int max = 10;
for(int i = 1; i <= max; i++)
{
for(int j = 1; j <= max; j++)
{
cout << (i*j) << "\t";
}
cout << endl;
}
}
void printTableWhile()
{
int max = 10;
int i = 1, j = 1;
while(i <= 10)
{
while(j <= 10)
{
cout << (i*j) << "\t";
j++;
}
j = 1;
cout << endl;
i++;
};
}
void printTableDoWhile()
{
int max = 10;
int i = 1, j = 1;
do
{
do
{
cout << (i*j) << "\t";
j++;
}while(j <= 10);
j = 1;
cout << endl;
i++;
} while(i <= 10);
}

View File

@ -0,0 +1,56 @@
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
float fahrenheit;
float tmp;
float celsius;
int schrittweite = 20;
int maximum = 300;
do
{
cout << "Fahrenheit: ";
cin >> fahrenheit;
}while(fahrenheit<=0);
tmp = fahrenheit;
cout << "Schrittweite: ";
cin >> schrittweite;
cout << "Maximum: ";
cin >> maximum;
cout << endl;
for(fahrenheit=tmp; fahrenheit <= maximum; fahrenheit+=schrittweite)
{
celsius = ((fahrenheit - 32) * 5) / 9;
cout << "Fahrenheit: " << fahrenheit << "\t| Celsius: " << celsius << endl;
}
cout << endl;
fahrenheit = tmp;
while(fahrenheit <= maximum)
{
celsius = (((fahrenheit - 32) * 5) / 9);
if( celsius <= 10)
{
cout << "Es hat " << celsius << " \tGrad und es ist kalt" << endl;
}
else if(celsius <= 20)
{
cout << "Es hat " << celsius << " \tGrad und es ist angenehm" << endl;
}
else
{
cout << "Es hat " << celsius << " \tGrad und es wird heiss" << endl;
}
fahrenheit += schrittweite;
}
return 0;
}

View File

@ -0,0 +1,34 @@
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main ()
{
int zahl, eingabe, versuche=0;
srand (time(NULL));
zahl = rand()%100 + 1; //Zufallszahl zwischen 0 und 99 wird generiert, daher +1, damit die Zahl zwischen 1 und 100 ist
do
{
cout << "Zahl eingeben: ";
cin >> eingabe;
if(eingabe > zahl)
cout << "Zu gross!" << endl;
if(eingabe < zahl)
cout << "Zu klein!" << endl;
versuche ++;
}
while(eingabe != zahl && versuche < 6);
if (eingabe == zahl)
cout << "Erraten!" << endl;
else
cout << "Verloren! Die gesuchte Zahl war " << zahl << endl;
system("pause");
return 0;
}

View File

@ -0,0 +1,37 @@
#include <cstdlib>
#include <iostream>
using namespace std ;
int main ()
{
float z1, z2, erg;
char op;
cout << "2 Zahlen mit Operator dazwischen [+ - * / ]: ";
cin >> z1 >> op >> z2 ;
cout << z1 << op << z2 << "=";
switch (op)
{
case '+':
erg = z1 + z2;
cout << erg << endl;
break ;
case '-':
cout << z1 - z2 << endl;
break ;
case '*':
cout << z1 * z2 << endl;
break ;
case '/':
if ( z2 ==0)
cout << " Division durch 0 geht nicht" << endl;
else
cout << z1 / z2 << endl;
break ;
default :
cout << " Den Operator kenne ich nicht." << endl;
}
system("pause");
return 0;
}

View File

@ -0,0 +1,123 @@
#include <iostream>
#include <cstdlib>
using namespace std;
int Tiernummer;
string Art;
float Gewicht;
float Einnahme;
float Tagespreis;
bool Bestand;
//Prototypen
void TierAnlegen(void);
void TierAnzeigen(void);
void TierVerkaufen(int);
// Funktion zum Anlegen
void TierAnlegen(void)
{
cout << "Bitte geben Sie die Tiernummer ein: ";
cin >> Tiernummer;
cout << endl;
cout << "Bitte geben Sie die Tierart ein: ";
cin >> Art;
cout << endl;
cout << "Bitte geben Sie das Gewicht des Tieres an: ";
cin >> Gewicht;
cout << endl;
Bestand = true; //Tier ist im Bestand
} ;
// Funktion um Daten anzuzeigen
void 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 TierVerkaufen(int nr)
{
if(Tiernummer == nr && Bestand == 1)
{
cout << "Wie steht der Tagespreis?"<< endl;
cin >> Tagespreis;
Einnahme = Einnahme + (Gewicht*Tagespreis);
cout << "Gesamteinnahmen: " << Einnahme << endl;
Bestand = false;
cout << endl << endl;
}
else if (Tiernummer == nr && Bestand == 0)
{
cout << "Tier mit der Nummer " << nr << " nicht im Bestand." << endl;
}
else
{
cout << "Tier mit der Nummer " << nr << " nicht vorhanden." << endl;
}
} ;
int main(void)
{
int s = 0, eing, nr; // deklariert integer s auf Null, wird für das Menü werwendet
cout << "Herzlich willkommen bei der Bauernhofverwaltung" << endl << endl << "Bitte treffen Sie Ihre Auswahl im Menue..." << endl << endl << endl;
// Do-While-Schleife, die das Menü ausgibt und Untermenüs aufruft
do
{
system("cls");
//Das Menü
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");
TierAnlegen(); // Funktion zur Anlage eines Tieres
cout << "Tier wurde angelegt: " << endl;
system("pause");
break;
}
case 2:
{
system("cls");
TierAnzeigen();
system("pause");
break;
}
case 3:
{
system("cls");
cout << "Tiernummer eingeben: " << endl;
cin >> nr;
TierVerkaufen(nr);
system("pause");
break;
}
}
}while (eing != 0);
cout << endl << "Auf Wiedersehen!" << endl;
system("pause");
return 0;
};

View File

@ -0,0 +1,22 @@
#include <iostream>
using namespace std;
int main()
{
for (int num=0; num<=100; num++)
{
/ * Dies bedeutet, dass wenn der Wert von
        * num nicht durch 2 teilbar ist, dann wird die
        * continue-Anweisung ausgeführt, wodurch die aktuelle Iteration übersprungen
        * wird und und somit die nächste Iteration stattfindet.
        * /
if (num % 2 == 1) // Ist nicht durch die Zahl 2 teilbar
{
continue;
}
cout << num << " ";
}
return 0;
}

View File

@ -0,0 +1,56 @@
#include <iostream>
using namespace std;
void printTableFor();
void printTableWhile();
void printTableDoWhile();
int main()
{
cout << "For Loop\n";
printTableFor();
cout << "While Loop\n";
printTableWhile();
cout << "Do While Loop\n";
printTableDoWhile();
return 0;
}
void printTableFor()
{
for (int i = 1; i < 11; i++)
{
for (int j = 1; j < 11; j++)
cout << (i * j) << "\t";
cout << "\n";
}
}
void printTableWhile()
{
int i = 1;
while (i < 11)
{
int j = 1;
while (j < 11)
{
cout << (i * j) << "\t";
j++;
}
cout << "\n";
i++;
}
}
void printTableDoWhile()
{
int i = 1;
do
{
int j = 1;
do
{
cout << (i * j) << "\t";
j++;
} while (j < 11);
cout << "\n";
i++;
} while (i < 11);
}

Binary file not shown.

View File

@ -0,0 +1,24 @@
Erstellen Sie ein Tableau, welches das kleine „Einmaleins“ ausgibt.
Das Tableu soll in der Funktion void printTable() ausgegeben werden.
Ausgabe:
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
Tipp:
- Rufen Sie die printTableFor()-Methode in der main()-Methode auf
- Für diese Aufgabe benötigt man eine verschachtelte for-Schleife.
- Den Tabulator erzeugt man mit „\t“.
Realisieren Sie anschließend die gleiche Ausgabe mit einer while
und einer do-while Schleife, welche jeweils in einer neuen Methode aufgerufen wird.

View File

@ -0,0 +1,65 @@
#include <iostream>
using namespace std;
const int kEauationVal = 32;
template <class T>
void getVal(const char text[], T *val);
int main()
{
float fahrenheit = 0, schritt_weite = 0, maximal_wert = 0;
cout << "Eingabe\n\n";
getVal("Fahrenheit", &fahrenheit);
getVal("Schrittweite", &schritt_weite);
getVal("Maximalwert", &maximal_wert);
cout << "\nAusgabe\n\n";
for (int i = fahrenheit; i <= maximal_wert; i += schritt_weite)
{
float celsius_wert = ((i - kEauationVal) * 5) / 9;
cout << "Celsius: " << celsius_wert;
if (celsius_wert <= 10)
cout << " es ist kalt";
else if (celsius_wert <= 20)
cout << " es ist angenehm";
else if (celsius_wert > 20)
cout << " es ist heiss";
cout << endl;
}
do
{
cout << "Fahrenheit: " << fahrenheit << " | Celsius: " << ((fahrenheit - kEauationVal) * 5) / 9 << endl;
fahrenheit += schritt_weite;
} while (fahrenheit <= maximal_wert);
for (int i = fahrenheit; i <= maximal_wert; i += schritt_weite)
{
float celsius_wert = ((fahrenheit - kEauationVal) * 5) / 9;
cout << "Celsius: " << celsius_wert;
if (celsius_wert <= 10)
cout << " es ist kalt";
else if (celsius_wert <= 20)
cout << " es ist angenehm";
else if (celsius_wert > 20)
cout << " es ist heiss";
cout << endl;
}
return 0;
}
template <class T>
void getVal(const char text[], T *val)
{
do
{
cout << "\t" << text << " = ";
if (cin.fail())
{
cin.clear();
cin.ignore();
}
cin >> *val;
} while (cin.fail() || *val <= 0);
}

View File

@ -0,0 +1,32 @@
Schreiben Sie ein Programm, dass die Berechnung von Fahrenheit nach Celsius ausgibt.
Hierbei soll der Wert von Fahrenheit eingegeben werden können.
Die Eingabe darf nicht negativ sein und soll solange erfolgen, bis ein Wert größer gleich Null eingegeben wurde.
Legen Sie anschließend eine Schrittweite und einen Maximalwert fest.
Anhand einer Schleife soll der Wert von Fahrenheit und der dazugehörige Celsiuswert ausgegeben werden.
Beispiel
Eingabe:
Fahrenheit = 50
Schrittweite = 5
Maximalwert = 75
Ausgabe:
Fahrenheit: 50 | Celsius: 10
Fahrenheit: 55 | Celsius: 12.7778
Fahrenheit: 60 | Celsius: 15.5556
Fahrenheit: 65 | Celsius: 18.3333
Fahrenheit: 70 | Celsius: 21.1111
Fahrenheit: 75 | Celsius: 23.88889
Erstellen Sie nun eine weitere Schleife (verwenden Sie nun aber aber einen anderen Schleifentyp).
Geben Sie den Celsiuswert und noch folgenden Text aus:
- Wenn es kleiner gleich 10 Grad hat, dann kommt der Text "es ist kalt"
- Wenn es kleiner gleich 20 Grad hat, dann kommt der Text "es ist angenehm"
- Wenn es größer als 20 Grad hat, dann kommt der Text "es wird heiss"

View File

@ -0,0 +1,38 @@
#include <iostream>
using namespace std;
template <class T>
void getInput(T *val);
int main()
{
srand(time(NULL));
int random_number = rand() & 100;
while (true)
{
int input_number;
getInput(&input_number);
input_number -= random_number;
if (input_number < 0)
cout << "Zu klein\n";
else if (input_number > 0)
cout << "Zu groß\n";
else if (input_number == 0)
break;
}
cout << "Du hast es erraten!\n";
return 0;
}
template <class T>
void getInput(T *val)
{
do
{
cout << "Please guess number(0-99): ";
if (cin.fail())
{
cin.clear();
cin.ignore();
}
cin >> *val;
} while (cin.fail() || *val < 0 || *val >= 100);
}

View File

@ -0,0 +1,8 @@
Programmieren Sie das Spiel Zahlenraten: Der Computer generiert eine Zufallszahl
zwischen 1 und 100, die der Spieler erraten muß.
Es wird bei jedem Durchgang mitgeteilt, ob die eingegebene Zahl zu groß oder zu klein war.
Tipp: Zufallszahlen werden wie folgt generiert:
Ein einmaliger Aufruf srand(time(NULL)) initialisiert den Zufallszahlengenerator.
Anschließend liefert jeder Aufruf von rand()%100 eine Zufallszahl zwischen 0 und 99.
Die Funktionen sind in <ctime> und <cstdlib> deklariert.

View File

@ -0,0 +1,35 @@
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
float z1 = 0, z2 = 0;
char op = 0;
cout << "Bitte Ausdruck eingeben: \n";
cin >> z1 >> op >> z2;
switch (op)
{
case '+':
cout<< "Ergebnis: "<<(z1+z2)<<endl;
break;
case '-':
cout<< "Ergebnis: "<<(z1-z2)<<endl;
break;
case '*':
cout<< "Ergebnis: "<<(z1*z2)<<endl;
break;
case '/':
if(z2==0)
cout << "Division durch null!\n";
else
cout<< "Ergebnis: "<<(z1/z2)<<endl;
break;
default:
cout << "Es gab einen Fehler in der Anweisung";
}
}

View File

@ -0,0 +1,7 @@
Programmieren Sie mithilfe der switch-case Anweisung einen Mini-Taschenrechner, der zwei
Zahlen und einen Operator (+, -, *, /) einliest und das Ergebnis ausgibt.
Die Eingabe soll direkt in einer Zeile erfolgen, z.B. 5+4
Tipp: Sie können bei cin mehrere Variablen verwenden, z.B. cin >> var1 << var2;
Eine eventuelle Division durch 0 soll abgefangen werden.
Bei Eingabe eines falschen Operators soll eine Fehlermeldung erscheinen.

View File

@ -0,0 +1,129 @@
#include <iostream>
#include <set>
#include <functional>
#include <string>
#include <algorithm>
using namespace std;
// Prototypen
template <typename T>
using Func = std::function<T(T)>;
template <class T>
T DatenErfassen(T *result, const char message[]);
template <class T, typename K>
T DatenErfassen(T *result, const char message[], K &&constraint);
void addTier();
float EinnahmenBerechnen(float *tagespreis, int *gewicht);
typedef struct Tier
{
string tierart;
int tiernummer;
float gewicht;
bool operator<(const Tier &cmp) const { return tiernummer - cmp.tiernummer; }
bool operator==(const Tier &cmp) const
{
return tiernummer == cmp.tiernummer;
}
string to_string()
{
return ("Tiernummer " + std::to_string(tiernummer) + " ist von der Art " + this->tierart + " und wiegt " + std::to_string(gewicht) + " KG.\n");
}
} tier_frame;
set<Tier> tiere;
const char *fehler_meldung = "\nEs gab einen Fehler bei der Eingabe.\nBitte erneut eingeben.\n";
int main()
{
int menu_state = -1;
cout << "Willkommen auf dem Bauerhof von Bauer Max\n";
while (true)
{
switch (menu_state)
{
case 0:
return 0;
case 1:
{
cout << "Tier anlegen:\n";
Tier tier;
DatenErfassen(&tier.tierart, "Tierart: ");
DatenErfassen(&tier.gewicht, "Gewicht: ");
DatenErfassen(&tier.tiernummer, "Tiernummer: ");
tiere.insert(tier);
menu_state = -1; // Reset
break;
}
case 2:
{
int tierid = 0;
cout << "Tier verkaufen:\n";
DatenErfassen(&tierid, "Tiernummer:");
if (tiere.erase(tier_frame{"", tierid, 0}))
{
cout << "Tier verkauft\n";
}
else
{
cout << "Tier wurde nicht gefunden\n";
}
menu_state = -1; // Reset
break;
}
case 3:
{
cout << "Alle Tiere:\n";
for (Tier tier : tiere)
{
cout << tier.to_string();
}
menu_state = -1; // Reset
break;
}
default:
{
cout << "\t- 1: Tier anlegen ()\n";
cout << "\t- 3: Tier anzeigen ()\n";
cout << "\t- 2: Tier verkaufen (Tiernummer)\n";
cout << "\t- 0: Programm beenden\n";
DatenErfassen(&menu_state, "Programm Modul:", [](int *val)
{ return (bool)(*val >= 0 && *val <= 4); });
}
}
}
float tagespreis = 0, einnahmen = 0;
int gewicht = 0;
cout << "Bitte geben Sie den aktuellen Tagespreis und das Gewicht an.\n ";
DatenErfassen(&tagespreis, "Tagespreis:");
DatenErfassen(&gewicht, "Gewicht:");
einnahmen = tagespreis * gewicht;
cout << "Die heutigen Einnahmen belaufen sich auf: " << EinnahmenBerechnen(&tagespreis, &gewicht) << " € (" << tagespreis << " x " << gewicht << ")\n";
return 0;
}
template <class T>
T DatenErfassen(T *result, const char message[])
{
return DatenErfassen(result, message, [](T *val)
{ return true; });
}
template <class T, typename K>
T DatenErfassen(T *result, const char message[], K &&constraint)
{
do
{
if (cin.fail())
{
cout << fehler_meldung;
cin.clear();
cin.ignore();
}
cout << message << "\t";
cin >> *result;
} while (cin.fail() || !constraint(result));
return *result;
}
float EinnahmenBerechnen(float *tagespreis, int *gewicht)
{
return (*tagespreis) * (*gewicht);
}

Binary file not shown.

View File

@ -0,0 +1,29 @@
Ergänzen Sie Ihr Bauernhof-Programm aus Kapitel 3 "Uebung 1 - Bauernhof" um folgendes:
Erstellen Sie mit Hilfe einer switch-Anweisung ein Benutzermenü,
welches folgende 3 Funktionen aufruft:
- 1: Tier anlegen ()
- 3: Tier anzeigen ()
- 2: Tier verkaufen (Tiernummer)
- 0: Programm beenden
Das Menü soll solange wiedererscheinen, bis der Nutzer die Zahl für „Programm beenden“ eingibt (Do-While-Schleife).
Beim Anlegen sollen folgende Daten gespeichert werden:
- Tierart
- Tiernummer
- Gewicht
Beim Anzeigen sollen folgende Daten angezeigt werden:
- Tierart
- Tiernummer
- 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.
Es soll folgendes funktionieren:
- Eingabe des Tagespreises
- Einnahmen erhöhen sich (Gewicht * Tagespreis)
- Ausgabe der Gesamteinnahmen
- Tier ist anschließend nicht mehr im Bestand

View File

@ -0,0 +1,4 @@
Erstellen Sie eine Schleife, in welcher Sie alle Zahlen von 1 bis 100 ausgeben, welche durch die Zahl 2 teilbar sind.
Verwenden Sie hierfür die continue-Anweisung, um die Zahlen zu überspringen, welche nicht durch die Zahl 2 teilbar sind!
Nähere Informationen zur continue-Anweisung finden Sie im Glossar des VHB-Kurses oder auf folgender Seite: https://en.cppreference.com/w/cpp/language/continue

View File

@ -0,0 +1,22 @@
#include <iostream>
using namespace std;
int main()
{
int Tiernummer[50];
for(int i=0; i<50; i++)
{
Tiernummer[i]=i+1; // im ersten Feldindex Tiernummer[0] wird z.B. dieZahl 1 abgelegt.
}
for(int i=0; i<50; i++)
{
cout << "Tiernummer[" << i << "]: " << Tiernummer[i] << endl; // im ersten Feldindex Tiernummer[0] wird z.B. dieZahl 1 abgelegt.
}
system("Pause");
}

View File

@ -0,0 +1,35 @@
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
float celsius[10];
float fahrenheit;
float tmp;
int schrittweite = 10;
int i = 0;
cout << "Fahrenheit: ";
cin >> fahrenheit;
tmp = fahrenheit;
cout << endl;
for(i = 0; i < 10; i++)
{
celsius[i] = ((fahrenheit - 32) * 5) / 9;
fahrenheit += schrittweite;
}
i = 0;
fahrenheit = tmp;
while(i < 10)
{
cout << "Fahrenheit: " << fahrenheit << "\t| Celsius[" << i << "]: " << celsius[i] << endl;
fahrenheit += schrittweite;
i++;
}
return 0;
}

View File

@ -0,0 +1,45 @@
#include <iostream>
#include <cstdlib>
using namespace std;
void sortiere(string[], int);
int main()
{
int anzahl = 5;
string namen[anzahl];
cout << "Bitte geben Sie 5 Namen ein:" << endl;
int i = 0;
for (i = 0; i < 5; i++)
{
cout << "Name " << i+1 << ": ";
cin >> namen[i];
}
cout << "...... AUSGABE IN ALPHABETISCHER REIHENFOLGE ......" << endl;
sortiere(namen, anzahl);
system("PAUSE");
return 0;
}
void sortiere(string namen[], int size)
{
string tmp_name = "";
for (int i = 0; i < size - 1; i++)
{
for (int j = i+1; j < size; j++)
{
if (namen[i] > namen[j]) {
tmp_name = namen[i];
namen[i] = namen[j];
namen[j] = tmp_name;
}
}
}
for (int k = 0; k < size; k++)
{
cout << namen[k] << endl;
}
}

View File

@ -0,0 +1,46 @@
#include <iostream>
#include <cstdlib>
using namespace std ;
int main ()
{
int a [10] , i , zw , change ;
cout << "unsortiert: ";
for ( i =0; i <10; i ++)
{
a [i] = rand()%100;
cout << a [i] << " ";
}
// sortieren ( und dabei ausgeben ...)
do
{
cout << endl << "Zwischenschritt: ";
change=0; // keine Vertauschung noetig
for (i=0; i<9; i++)
if ( a [i] > a [i+1])
{
zw = a[i];
a[i] = a[i+1];
a[i+1] = zw;
change = 1; // Vertauschung
}
for (i=0; i<10; i++) cout << a [i] << " ";
}
while (change);
cout << endl;
cout << "sortiert: ";
for ( i =0; i <10; i ++)
{
cout << a [i] << " ";
}
cout << endl;
system("pause");
return 0;
}

View File

@ -0,0 +1,5 @@
Auf dem Bauernhof können maximal 50 Tiere leben.
Legen Sie ein Feld an, dass 50 Tiernummern aufnehmen kann und
schreiben Sie eine For-Schleife, welches die Nummern 1-50 im Feld ablegt.
Geben Sie anschließend die eingegeben Nummern und ihre Position im Feld in einer For-Schleife aus.

View File

@ -0,0 +1,11 @@
Verwenden Sie als Vorlage Ihr Programm "Uebung 2 - Fahrenheit in Celsius" aus Kapitel 4
und ändern Sie es wie folgt ab:
Sie möchten nun die Celsiuswerte in einem Feld hinterlegen.
Legen Sie ein Feld an, dass 10 Celsiuswerte aufnehmen kann.
Hierbei wird der eingegebene Fahrenheitswerte jeweils in 10er Schritten erhöht.
Realisieren Sie dies mit einer for-Schleife.
Geben Sie anschließend die berechneten Celsiuswerte mit dem dazugehörigen Fahrenheitswert
und der Position im Feld in einer while-Schleife aus.

View File

@ -0,0 +1,29 @@
Folgendes Programm ist gegeben:
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[])
{
string namen[5];
cout << "Bitte geben Sie 5 Namen ein:" << endl;
for (int i = 0; i < 5; i++)
{
cout << "Name " << i+1 << ": ";
cin >> namen[i];
}
system("PAUSE");
return 0;
}
Bitte erweitern Sie das Programm:
- Deklarieren und definieren Sie die Funktion sortiere mit 2 Übergabeparameter:
Array mit namen und size als integer. Wobei size die Anzahl der Namen repräsentiert.
Diese Funktion hat die Aufgabe, die Namen in alphabetischer Reihenfolge zu sortieren.
- Rufen Sie die Funktion im Programm auf
- Geben Sie die sortierte Liste mit Namen wieder aus.

View File

@ -0,0 +1,5 @@
Sortieren Sie ein mit Zufallszahlen belegtes Array beliebiger Größe mit dem
Bubble-Sort Verfahren.
Es soll zuerst die unsortierte Ausgabe erscheinen.
Geben Sie während dem sortieren immer den Zwischenschritt aus.
Zum Schluss soll die sortierte Ausgabe erscheinen.

View File

@ -0,0 +1,11 @@
Erstellen Sie eine Einkaufsliste für maximal 10 Produkte.
Hierfür soll der Produktname und Preis eingegeben werden und anschließend in einem Feld abgespeichert werden.
Erstellen Sie ein Menü, was folgende Funktionen hat:
- Position erfassen
- Positionen anzeigen
- Positionen sortieren
- Beenden
Im Menü soll außerdem die aktuelle Anzahl an Positionen angezeigt werden.
Die Sortierung erfolgt anhand des Preises (der Name soll dementsprechend mitsortiert werden).

View File

@ -0,0 +1,188 @@
#include <iostream>
#include <cstdlib>
using namespace std;
void ausgabeKaltWarm(string,int);
void jahresDurchschnitt(int[]);
int waermsterMonatImJahr(int[]);
void sortieren(string[], int[]);
int main(int argc, char** argv) {
string monat[] = {"Januar", "Februar", "M\204rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"};
int temperatur[] = {-1, 0, 4, 8, 13, 17, 21, 24, 19, 11, 9, 5};
int eingabe = 1;
int tmp = 0;
while(eingabe != 0)
{
system("cls");
cout << "[1] Temperatur vom Monat ausgeben (Texteingabe)" << endl;
cout << "[2] Temperatur vom Monat ausgeben (Auswahl)" << endl;
cout << "[3] Durchschnittstemperatur ausgeben" << endl;
cout << "[4] W\204rmster Monat ausgeben" << endl;
cout << "[5] Temperatur sortiert ausgeben" << endl;
cout << "[0] Beenden" << endl << endl;
cout << "Treffen Sie Ihre Auswahl: ";
cin >> eingabe;
switch(eingabe)
{
case 1:
{
system("cls");
string eingabe_monat;
tmp = 0;
cout << "Bitte geben Sie einen Monat ein: ";
cin >> eingabe_monat;
for(int i = 0; i < 12; i++)
{
if(eingabe_monat == monat[i])
{
tmp = 1;
ausgabeKaltWarm(monat[i],temperatur[i]);
break;
}
}
if(tmp != 1)
{
cerr << endl << "Monat nicht gefunden" << endl << endl;
}
system("pause");
break;
}
case 2:
{
system("cls");
for(int i = 0; i < 12; i++)
{
cout << "[" << i+1 << "]" << monat[i] << endl;
}
cout << endl << "Treffen Sie Ihre Auswahl: ";
cin >> tmp;
if(tmp > 12 || tmp < 1)
{
cerr << endl << "Monat nicht gefunden" << endl << endl;
}
else
{
ausgabeKaltWarm(monat[tmp-1],temperatur[tmp-1]);
}
system("pause");
break;
}
case 3:
{
system("cls");
jahresDurchschnitt(temperatur);
system("pause");
break;
}
case 4:
{
system("cls");
tmp = waermsterMonatImJahr(temperatur);
cout << "Der w\204mste Monat im Jahr ist " << monat[tmp] << " mit " << temperatur[tmp] <<" Grad" << endl << endl;
system("pause");
break;
}
case 5:
{
system("cls");
sortieren(monat, temperatur);
system("pause");
break;
}
case 0:
{
cout << endl << "Auf Wiedersehen!" << endl;
break;
}
default:
{
cout << endl << "Falsche Eingabe!" << endl << endl;
system("pause");
}
}
}
return 0;
}
void ausgabeKaltWarm(string eingabe_monat, int temperatur)
{
cout << endl << "Im " << eingabe_monat << " war es im Durchschnitt " << temperatur << " Grad";
if(temperatur > 0)
cout << " warm";
else if(temperatur < 0)
cout << " kalt";
cout << endl << endl;
}
void jahresDurchschnitt(int temp[])
{
float summe = 0;
for(int i = 0; i < 12; i++)
{
summe = summe + temp[i]; //summe += temp[i]
}
cout << "Die Durchschnittstemperatur im Jahr betr\204gt " << (summe / 12) << " Grad" << endl << endl;
}
int waermsterMonatImJahr(int temp[])
{
int max = 0;
int z = 0;
for(int i = 0; i < 12; i++)
{
if(temp[i] > max)
{
max = temp[i];
z = i;
}
}
return z;
}
void sortieren(string mon[], int temp[])
{
string tmp_monat;
int tmp_temperatur;
for(int i = 0; i < 12; i++)
{
for(int j = (i+1); j < 12; j++)
{
if(temp[i] > temp[j])
{
tmp_monat = mon[i];
mon[i] = mon[j];
mon[j] = tmp_monat;
tmp_temperatur = temp[i];
temp[i] = temp[j];
temp[j] = tmp_temperatur;
}
}
}
int x = 0;
do
{
cout << temp[x] << " Grad im Monat " << mon[x] << endl;
x++;
}
while(x<12);
cout << endl;
}

View File

@ -0,0 +1,14 @@
Während des Jahres haben Sie die Durchschnittstemperatur der einzelnen Monate erfasst.
Sie wollen nun ein Programm schreiben, dass Ihnen dabei hilft, diese Daten auszugeben.
Erstellen Sie ein Programm, das ein Menü ausgibt. Es soll folgende Auswahlmöglichkeiten geben:
- Bei Eingabe eines Monats soll die dementsprechende Durchschnittstemperatur ausgegeben werden
o Die Eingabe soll einmal als Texteingabe (z.B. Eingabe: „August“)
o und als Auswahl (z.B. Auswahl: 8 --> Temperatur von August) realisiert werden
- Es soll die Durchschnittstemperatur aller Monate berechnet werden
- Es soll der heißeste Monat im Jahr ausgegeben werden
- Es sollen alle Monate aufsteigend sortiert mit deren Temperaturen ausgegeben werden
- Bei Eingabe von 0 soll eine Verabschiedung ausgegeben werden und das Programm wird beendet
- Bei Falscheingabe im Menü soll eine Meldung erscheinen
Sie können für die Temperaturen der einzelnen Monate fiktive Zahlen benutzen.

View File

@ -0,0 +1,38 @@
#include <iostream>
#include <cstdlib>
using namespace std;
class Tier
{
private:
float Einnahme;
float Gewicht;
float Tagespreis;
public:
void Daten_abfragen() //Deklaration und Definition der Methode Daten_abfragen
{
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
}
void Einnahme_berechnen(){ //Deklaration und Definition der Methode Einnahme_berechnen
Einnahme = Gewicht*Tagespreis;
cout << "Einnahme: " << Einnahme << endl;
}
};
int main(){
Tier schwein;
schwein.Daten_abfragen(); //Methodenaufrufe
schwein.Einnahme_berechnen();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,40 @@
#include <iostream>
#include <cstdlib>
using namespace std;
class Tier
{
private:
float Einnahme;
float Gewicht;
float Tagespreis;
public:
void Daten_abfragen() //Deklaration und Definition der Methode Daten_abfragen
{
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
}
void Einnahme_berechnen(){ //Deklaration und Definition der Methode Einnahme_berechnen
Einnahme = Gewicht*Tagespreis;
cout << "Einnahme: " << Einnahme << endl;
}
};
int main(){
Tier tiere[2];
tiere[0].Daten_abfragen();
tiere[0].Einnahme_berechnen();
tiere[1].Daten_abfragen();
tiere[1].Einnahme_berechnen();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,76 @@
#include<iostream>
#include <string>
using namespace std;
class Artikel
{
private:
string Bezeichnung;
float Preis;
public:
//getter
string get_Bezeichnung()
{
return Bezeichnung;
}
float get_Preis()
{
return Preis;
}
//setter
void set_Bezeichnung()
{
cout << "Geben Sie die Artikelbezeichnung ein: ";
cin >> Bezeichnung;
}
void set_Preis()
{
cout << "Geben Sie den Artikelpreis ein: ";
cin >> Preis;
}
//Methoden
void Daten_ausgeben() //Deklaration und Definition der Methode Daten_ausgeben
{
cout << "Der Artikel " << get_Bezeichnung() << " kostet " << get_Preis() << " Euro." << endl;
}
void Daten_erfassen() //Deklaration und Definition der Methode Daten_erfassen
{
set_Bezeichnung();
set_Preis();
}
void Gesamtpreis_berechnen(int az)//Deklaration und Definition der Methode Gesamtpreis_berechnen
{
cout << "Gesamtpreis: " << az*get_Preis() << endl;
}
};
int main()
{
Artikel art;
int anzahl;
art.Daten_erfassen();
art.Daten_ausgeben();
cout << "Geben Sie die Stueckzahl ein: ";
cin >> anzahl;
art.Gesamtpreis_berechnen(anzahl);
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,44 @@
#include <iostream>
#include <cstdlib>
using namespace std ;
class Person
{
private:
string vname, name;
int alter;
public:
void einlesen();
void vergleiche(Person);
};
void Person::einlesen()
{
cout << "Vorname : ";
cin >> vname ;
cout << "Name : ";
cin >> name ;
cout << "Alter : ";
cin >> alter ;
}
void Person::vergleiche(Person p)
{
if (alter > p.alter)
cout << vname << " " << name << " ist der aeltere." << endl ;
else
cout << p.vname << " " << p.name << " koennte der aeltere sein." << endl ;
}
int main ( void )
{
Person p1, p2 ;
p1.einlesen();
cout << endl ;
p2.einlesen();
p1.vergleiche(p2);
}

View File

@ -0,0 +1,36 @@
Wandeln Sie folgenden Quellcode in ein objektorientiertes Programm um.
Erzeugen Sie in main ein Tierobjekt und rufen Sie für dieses Objekt die Methoden auf.
#include <iostream>
#include <cstdlib>
using namespace std;
float Einnahme=0; // 3 globale Variablenen deklarieren und initialisieren
float Gewicht=0;
float Tagespreis=0;
void Daten_abfragen() //Deklaration und Definition der Methode Daten_abfragen
{
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
}
void Einnahme_berechnen() //Deklaration und Definition der Methode Einnahme_berechnen
{
Einnahme = Gewicht*Tagespreis;
cout << "Einnahme: " << Einnahme<<endl;
}
int main()
{
Daten_abfragen(); //Methodenaufrufe
Einnahme_berechnen();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,2 @@
Legen Sie je 2 Instanzen der Klasse Tier (aus "Uebung 1 - Bauernhof") als Array an.
Belegen Sie jede Instanz mit Daten und geben Sie anschließend die Daten von allen Instanzen auf dem Bildschirm aus.

View File

@ -0,0 +1,19 @@
Erstellen Sie eine Klasse namens Artikel. Diese soll folgende Eigenschaften haben:
- Bezeichnung
- Preis
Die Klasse soll folgende Methoden beinhalten:
- get_Bezeichnung() -> gibt die Artikelbezeichnung zurück
- get_Preis() -> gibt den Artikelpreis zurück
- set_Bezeichnung() -> setzt die Bezeichnung für den Artikel
- set_Preis() -> setzt den Preis für den Artikel
- Daten_erfassen() -> setzt die Bezeichnung und den Preis mit Hilfer der Setter-Methoden
- Daten_ausgeben() -> gibt die Bezeichnung und den Preis für den Artikel aus
- Gesamtpreis_berechnen() -> Es wird eine Stückzahl übergeben.
Der Gesamtpreis (Stückzahl*Preis) wird ermittelt und ausgegeben
Erstellen Sie im Hauptprogramm ein Objekt vom Typ Artikel.
Erfassen Sie die Daten und geben sie anschließend diese nochmal aus.
Der Benutzer soll anschließend eine Stückzahl eingeben können, wodurch dann der Gesamtpreis ermittelt wird.

View File

@ -0,0 +1,7 @@
Erstellen Sie ein Programm mit einer Klasse namens Person, die einige Daten (Name,
Vorname, Alter) einer Person speichert. Eine Methode namens einlesen in der Klasse
die Attribute befüllen.
Eine Methode in der Klasse namens vergleich soll erstellt werden.
Eine Person ruft diese Methode auf und zusätzlich soll als Übergabeparameter
eine weitere Person vorhanden sein.
Dort soll überprüft und ausgegeben werden, welcher der beiden Personen älter ist.

View File

@ -0,0 +1,54 @@
#include<iostream>
#include <cstdlib>
using namespace std;
class Tier
{
private:
float Einnahme;
float Gewicht;
float Tagespreis;
void Daten_abfragen() //Deklaration und Definition der Methode Daten_abfragen
{
cout << "Wie steht der Tagespreis? " << endl;
cin >> Tagespreis;
cout << "Wie ist das Gewicht? " << endl;
cin >> Gewicht;
}
public:
//Konstruktor
Tier()
{
Daten_abfragen();
};
Tier(float g, float t):Gewicht(g), Tagespreis(t){ }
//Methode
void Einnahme_berechnen() //Deklaration und Definition der Methode Einnahme_berechnen
{
Einnahme = Gewicht*Tagespreis;
cout << "Einnahme: " << Einnahme << endl;
}
};
int main()
{
Tier schwein(19,2.5);
cout << "Schwein ";
schwein.Einnahme_berechnen();
Tier kuh;
cout << "Kuh ";
kuh.Einnahme_berechnen();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,51 @@
#include<iostream>
#include <cstdlib>
using namespace std;
class Auto
{
private:
string marke;
int kilometerstand;
static int anzahl_fahrten;
public:
Auto(string m, int k) : marke(m), kilometerstand(k) { }
~Auto()
{
cout << endl << "Objekt entfernt. " << endl;
}
void fahren(int gefahren) //Deklaration und Definition der Methode Daten_abfragen
{
kilometerstand += gefahren;
anzahl_fahrten++;
}
void daten_ausgeben()
{
cout << marke << ", aktueller Kilometerstand: " << kilometerstand << endl;
cout << "Anzahl an Fahrten: " << anzahl_fahrten << endl;
}
};
int Auto::anzahl_fahrten = 0;
int main()
{
Auto bmw("BMW",1500);
bmw.fahren(70);
bmw.daten_ausgeben();
bmw.fahren(80);
bmw.daten_ausgeben();
bmw.fahren(250);
bmw.daten_ausgeben();
cout << endl << endl;
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,8 @@
Verwenden Sie als Vorlage Ihr Programm "Uebung 1 - Bauernhof" aus Kapitel 7
und ändern Sie es wie folgt ab:
Verwenden Sie zur Initialisierung der Instanzen einen Konstruktor mit Elementinitialisierungsliste
und einen Standardkonstruktor, welcher die Daten abfragt.
Erstellen Sie dann in der main-Funktion zwei Objekte. Verwenden Sie hier die beiden Konstruktoren.
Rufen Sie anschließend die Methode Einnahme_berechnen auf.

View File

@ -0,0 +1,19 @@
Erstellen Sie eine Klasse Auto, welche folgende Eigenschaften und Methoden hat:
Eigenschaften:
- Marke
- Kilometerstand
Methode:
- fahren() -> Hat als Übergabeparameter eine Ganzzahl, welche den Kilometerstand erhöht
Verwenden Sie zur Initialisierung der Instanzen einen Konstruktor mit Elementinitialisierungsliste, welche die zwei Attribute annimmt.
Zusätzlich soll eine Klassenvariable deklariert werden, welche sich merkt, wie oft man gefahren ist.
Es sollen drei Fahrten erfolgen. Nach jeder Fahrt sollen die Daten ausgegeben werden.
Zuletzt soll ein Destruktor erstellt werden, welcher zum Schluss des Programms aufegrufen wird und ausgibt,
dass das Objekt entfernt wurde.

View File

@ -0,0 +1,52 @@
#include <iostream>
#include <cstdlib>
using namespace std;
class Tier
{
protected:
float anzahl;
public:
Tier(){};//Defaultkonstruktor
Tier (int anz):anzahl(anz){}; //Konstruktor mit Elementinitialisierungsliste
};
class Schlachtvieh: public Tier
{
private:
float gewicht;
public:
Schlachtvieh(int anz, float gew):Tier(anz),gewicht(gew){};
void datenausgeben()
{
cout << "Es sind " << anzahl << " Tiere mit je " << gewicht << " kg vorhanden" << endl;
}
};
class Milchvieh: public Tier
{
private:
float milchleistung;
public:
Milchvieh(int anz, float m_l):Tier(anz), milchleistung(m_l){};
void datenausgeben()
{
cout << "Es sind " << anzahl << " Tiere mit durchschnittlicher Milchleistung von " << milchleistung << " l vorhanden"<<endl;
}
};
int main()
{
Schlachtvieh Schwein(100,50);
Schwein.datenausgeben();
Milchvieh Kuh(25,5);
Kuh.datenausgeben();
system("PAUSE");
return 0;
}

View File

@ -0,0 +1,107 @@
#include<iostream>
using namespace std;
class KFZ
{
protected:
string marke;
int kmstand;
};
class Auto : public KFZ
{
private:
int passagiere;
public:
Auto()
{
cout << "Neues Auto wird erstellt." << endl;
cout << "Marke: ";
cin >> marke;
cout << "Passagiere: ";
cin >> passagiere;
}
void einsteigen(int personen)
{
passagiere += personen;
}
void ausgabe()
{
cout << "Marke: " << marke << endl;
cout << "Passagiere: " << passagiere << endl;
}
};
class LKW : public KFZ
{
private:
float tonnen;
public:
LKW()
{
cout << "Neuer LKW wird erstellt." << endl;
cout << "Marke: ";
cin >> marke;
cout << "Tonnen: ";
cin >> tonnen;
}
void beladen(float gewicht)
{
tonnen += gewicht;
}
void ausgabe()
{
cout << "Marke: " << marke << endl;
cout << "Tonnen: " << tonnen << endl;
}
};
int main()
{
Auto autos[3] = Auto();
LKW lkws[2] = LKW();
int personen;
float gewicht;
cout << endl << endl;
for(int i = 0; i<3; i++)
{
cout << "Auto Nr. " << i+1 << endl;
cout << "Anzahl Personen die einsteigen: ";
cin >> personen;
autos[i].einsteigen(personen);
}
for(int i = 0; i<2; i++)
{
cout << "LKW Nr. " << i+1 << endl;
cout << "Beladen des LKWs. Gewicht in Tonnen angeben: ";
cin >> gewicht;
lkws[i].beladen(gewicht);
}
cout << endl << endl;
for(int i = 0; i <3; i++)
{
cout << "Ausgabe Auto Nr. " << i+1 << endl;
autos[i].ausgabe();
}
for(int i = 0; i <2; i++)
{
cout << "Ausgabe LKW Nr. " << i+1 << endl;
lkws[i].ausgabe();
}
system("pause");
return 0;
}

View File

@ -0,0 +1,40 @@
Gegeben ist folgendes Programm:
#include <iostream>
#include <cstdlib>
using namespace std;
class Tier
{
public:
float Anzahl;
float Gewicht;
void datenausgeben()
{
cout <<"Es sind "<<Anzahl << " Tiere mit je " <<Gewicht <<" kg vorhanden"<<endl;
}
};
int main()
{
Tier Schwein;
Schwein.Anzahl=50;
Schwein.Gewicht=20;
Schwein.datenausgeben();
system("PAUSE");
return 0;
};
Ändern Sie das Programm wie folgt ab:
Im Programm soll es nun 3 Klassen geben:
- Die Oberklasse „Tier“ (hier soll nur noch die Anzahl der Tiere verwaltet werden)
- Die Unterklasse „Schlachtvieh“ (mit dem Attribut Gewicht)
- Die Unterklasse „Milchvieh“ (mit dem Attribut Milchleistung)
Verwenden Sie einen Konstruktor mit Elementinitialisierungsliste, welche die Attribute befüllt.
Erzeugen Sie je eine Instanz der Klasse Schlachtvieh und Milchvieh und geben Sie die Daten auf dem Bildschirm aus.

View File

@ -0,0 +1,38 @@
Erstellen Sie eine Klasse KFZ mit den Attributen
- Marke
Erstellen Sie die beiden abgeleitete Klassen Auto und LKW. Diese erben die Attribute von KFZ.
Auto hat folgende Eigenschaften:
Attribut:
- Anzahl_Passagiere
Konstruktor:
- Standardkonstruktor -> Erfasst die Daten der Basis-/abgeleiteten Klasse
Methode:
- Ausgabe() -> Gibt alle Daten aus
- Einsteigen() -> Erhöht die Anzahl der Passagiere
LKW hat folgende Eigenschaften:
Attribut:
- Tonnen
Konstruktor:
- Standardkonstruktor -> Erfasst die Daten der Basis-/abgeleiteten Klasse
Methode:
- Ausgabe() -> Gibt alle Daten aus
- Beladen() -> Einene Übergabeparameter, erhöht die Tonnen
Erstellen Sie in der Main-Funktion 2 Felder.
Das erste Feld kann 3 Autos aufnehmen, das zweite Feld kann 2 LKWs aufnehmen.
Erstellen Sie jeweils 3 Instanzen der beiden Felder.
Rufen Sie Aanschließend die Methode einsteigen und beladen aller Instanzen auf,
wobei die Eingabe der dafür nötigen Daten in der Main-Funktion abgefragt werden.
Geben Sie zum Schluss nochmal alle Daten aus.

View File

@ -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

View File

@ -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.

View File

@ -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;
}

View File

@ -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");
};
};

BIN
VHB_Registration.mp4 Normal file

Binary file not shown.

BIN
skript_cpp1_2019.pdf Normal file

Binary file not shown.

BIN
skript_cpp2_2019.pdf Normal file

Binary file not shown.