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:
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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.
@@ -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.
|
||||
@@ -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);
|
||||
}
|
||||
Binary file not shown.
@@ -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"
|
||||
@@ -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);
|
||||
}
|
||||
Binary file not shown.
@@ -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.
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
@@ -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.
|
||||
|
||||
@@ -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.
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user