mirror of
https://inf-git.fh-rosenheim.de/studavrije7683/cplusplus-training.git
synced 2025-04-10 22:29:55 +00:00
Initial commit
This commit is contained in:
commit
d3138a4b13
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*/old/
|
||||
*.ilk
|
||||
*.obj
|
||||
*.pdb
|
29
Teil_1/.vscode/launch.json
vendored
Normal file
29
Teil_1/.vscode/launch.json
vendored
Normal 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
53
Teil_1/.vscode/settings.json
vendored
Normal 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
28
Teil_1/.vscode/tasks.json
vendored
Normal 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"
|
||||
}
|
@ -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;
|
||||
|
||||
};
|
@ -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;
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(){
|
||||
cout<<"Willkommen auf dem Bauerhof von Bauer Max\n";
|
||||
return 0;
|
||||
}
|
Binary file not shown.
@ -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
|
@ -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;
|
||||
}
|
Binary file not shown.
@ -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.
|
@ -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;
|
||||
|
||||
};
|
Binary file not shown.
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
Binary file not shown.
@ -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.
|
@ -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;
|
||||
}
|
Binary file not shown.
@ -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.
|
@ -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;
|
||||
|
||||
}
|
Binary file not shown.
@ -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
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
43
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.cpp
Normal file
43
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.cpp
Normal 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);
|
||||
}
|
BIN
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.exe
Normal file
BIN
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.exe
Normal file
Binary file not shown.
7
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.txt
Normal file
7
Teil_1/3. Funktionen/Uebung 1 - Bauernhof.txt
Normal 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.
|
76
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.cpp
Normal file
76
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.cpp
Normal 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";
|
||||
}
|
BIN
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.exe
Normal file
BIN
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.exe
Normal file
Binary file not shown.
13
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.txt
Normal file
13
Teil_1/3. Funktionen/Uebung 2 - Quadrieren und Flaeche.txt
Normal 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.
|
@ -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;
|
||||
}
|
56
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.cpp
Normal file
56
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.cpp
Normal 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);
|
||||
}
|
BIN
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.exe
Normal file
BIN
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.exe
Normal file
Binary file not shown.
24
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.txt
Normal file
24
Teil_1/4. Kontrollstrukturen/Uebung 1 - Einmaleins.txt
Normal 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.
|
@ -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"
|
38
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.cpp
Normal file
38
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.cpp
Normal 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);
|
||||
}
|
BIN
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.exe
Normal file
BIN
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.exe
Normal file
Binary file not shown.
8
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.txt
Normal file
8
Teil_1/4. Kontrollstrukturen/Uebung 3 - Zahlenraten.txt
Normal 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.
|
35
Teil_1/4. Kontrollstrukturen/Uebung 4 - Taschenrechner.cpp
Normal file
35
Teil_1/4. Kontrollstrukturen/Uebung 4 - Taschenrechner.cpp
Normal 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";
|
||||
}
|
||||
|
||||
}
|
BIN
Teil_1/4. Kontrollstrukturen/Uebung 4 - Taschenrechner.exe
Normal file
BIN
Teil_1/4. Kontrollstrukturen/Uebung 4 - Taschenrechner.exe
Normal file
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.
|
||||
Bei Eingabe eines falschen Operators soll eine Fehlermeldung erscheinen.
|
129
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.cpp
Normal file
129
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.cpp
Normal 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);
|
||||
}
|
BIN
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.exe
Normal file
BIN
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.exe
Normal file
Binary file not shown.
29
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.txt
Normal file
29
Teil_1/4. Kontrollstrukturen/Uebung 5 - Bauernhof.txt
Normal 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
|
@ -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
|
22
Teil_1/5. Felder/Lösungen/Loesung Uebung 1 - Bauernhof.cpp
Normal file
22
Teil_1/5. Felder/Lösungen/Loesung Uebung 1 - Bauernhof.cpp
Normal 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");
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
45
Teil_1/5. Felder/Lösungen/Loesung Uebung 3 - Sortieren.cpp
Normal file
45
Teil_1/5. Felder/Lösungen/Loesung Uebung 3 - Sortieren.cpp
Normal 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;
|
||||
}
|
||||
}
|
46
Teil_1/5. Felder/Lösungen/Loesung Uebung 4 - Bubble Sort.cpp
Normal file
46
Teil_1/5. Felder/Lösungen/Loesung Uebung 4 - Bubble Sort.cpp
Normal 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;
|
||||
}
|
5
Teil_1/5. Felder/Uebung 1 - Bauernhof.txt
Normal file
5
Teil_1/5. Felder/Uebung 1 - Bauernhof.txt
Normal 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.
|
11
Teil_1/5. Felder/Uebung 2 - Fahrenheit in Celsius.txt
Normal file
11
Teil_1/5. Felder/Uebung 2 - Fahrenheit in Celsius.txt
Normal 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.
|
29
Teil_1/5. Felder/Uebung 3 - Sortieren.txt
Normal file
29
Teil_1/5. Felder/Uebung 3 - Sortieren.txt
Normal 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.
|
5
Teil_1/5. Felder/Uebung 4 - Bubble Sort.txt
Normal file
5
Teil_1/5. Felder/Uebung 4 - Bubble Sort.txt
Normal 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.
|
@ -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).
|
@ -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;
|
||||
}
|
@ -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.
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
36
Teil_1/7. Das Klassenkonzept/Uebung 1 - Bauernhof.txt
Normal file
36
Teil_1/7. Das Klassenkonzept/Uebung 1 - Bauernhof.txt
Normal 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;
|
||||
}
|
2
Teil_1/7. Das Klassenkonzept/Uebung 2 - Tiere.txt
Normal file
2
Teil_1/7. Das Klassenkonzept/Uebung 2 - Tiere.txt
Normal 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.
|
19
Teil_1/7. Das Klassenkonzept/Uebung 3 - Artikel.txt
Normal file
19
Teil_1/7. Das Klassenkonzept/Uebung 3 - Artikel.txt
Normal 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.
|
7
Teil_1/7. Das Klassenkonzept/Uebung 4 - Person.txt
Normal file
7
Teil_1/7. Das Klassenkonzept/Uebung 4 - Person.txt
Normal 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.
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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.
|
@ -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.
|
52
Teil_1/9. Vererbung/Lösungen/Loesung Uebung 1 - Tier.cpp
Normal file
52
Teil_1/9. Vererbung/Lösungen/Loesung Uebung 1 - Tier.cpp
Normal 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;
|
||||
}
|
||||
|
107
Teil_1/9. Vererbung/Lösungen/Loesung Uebung 2 - KFZ.cpp
Normal file
107
Teil_1/9. Vererbung/Lösungen/Loesung Uebung 2 - KFZ.cpp
Normal 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;
|
||||
}
|
||||
|
40
Teil_1/9. Vererbung/Uebung 1 - Tier.txt
Normal file
40
Teil_1/9. Vererbung/Uebung 1 - Tier.txt
Normal 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.
|
38
Teil_1/9. Vererbung/Uebung 2 - KFZ.txt
Normal file
38
Teil_1/9. Vererbung/Uebung 2 - KFZ.txt
Normal 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.
|
@ -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");
|
||||
};
|
||||
};
|
||||
|
BIN
VHB_Registration.mp4
Normal file
BIN
VHB_Registration.mp4
Normal file
Binary file not shown.
BIN
skript_cpp1_2019.pdf
Normal file
BIN
skript_cpp1_2019.pdf
Normal file
Binary file not shown.
BIN
skript_cpp2_2019.pdf
Normal file
BIN
skript_cpp2_2019.pdf
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user