mirror of
https://inf-git.fh-rosenheim.de/studavrije7683/cplusplus-training.git
synced 2025-04-18 13:09:56 +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