Hallo zusammen,
hab folgendes Programm:
lottoziehung.cpp
Ich muss jetzt 2 Klassen erstellen indem ich die auf eine Headerdatei "lotto.hpp" und eine Implementierungsdatei "lotto.cpp" aufteile.
Zur Klasse "Ziehung":
- ein Array von 6 unsigned int-Zahlen, ein unsigned int für die Zusatzzahl und ein unsigned int für die Superzahl
- einen Konstruktor welcher eine Ziehung ausführt und die Datenelemente mit zufällig ausgewählten Zahlen zwischen 1 und 49 bzw. 0 und 9 für die Superzahl füllt. - Die Zahlen sollen nicht doppelt vorkommen und das Array soll mit einem Sortieralgorithmus versehen werden.
- ein Ausgabeoperator als friend-Funktion der Klasse, welcher die gezogenen Zahlen in einer Reihe ausgibt, wobei die Zusatzzahl und die Superzahl von den anderen zahlen zu unterscheiden sind.
- eine Methode gewinnklasse_bestimmen, welche ein Array mit den 6 Zahlen eines Tipps sowie die Superzahl übergeben bekommt und die Gewinnklasse für diesen Tipp bei der jeweiligen Ziehung bestimmt und zurückgibt. Es gibt folgende Gewinnklassen:
- Gewinnklasse 1: 6 Richtige + SZ
- Gewinnklasse 2: 6 Richtige
- Gewinnklasse 3: 5 Richtige + ZZ
- Gewinnklasse 4: 5 Richtige
- Gewinnklasse 5: 4 Richtige + ZZ
- Gewinnklasse 6: 4 Richtige
- Gewinnklasse 7: 3 Richtige + ZZ
- Gewinnklasse 8: 3 Richtige
Wurde keine der genannten Gewinnklassen erreicht, so soll 0 zurückgegeben werden.
Die andere Klasse "Ziehungsverwaltung" soll folgendes beinhalten:
- Ein unsigned int-Datenelement fur die Anzahl der durchgefuhrten Ziehungen
sowie ein Datenelement vom Typ Zeiger auf Ziehung, welches auf ein Array von
Ziehungen zeigt, das dynamisch entsprechend der geforderten Anzahl an Ziehungen
angelegt wird. Beide Datenelemente sollen private sein.
- Einen Konstruktor mit einem unsigned int-Parameter fur die Anzahl der durchzuf
uhrenden Ziehungen (verwenden Sie eine Initialisierungsliste zur Belegung des
entsprechenden Datenelements). Der Konstruktor soll die entsprechende Anzahl
an Ziehungen dynamisch mit new erzeugen.
- Einen Copy-Konstruktor, welcher eine Ziehungsverwaltung aus einer anderen
erzeugt. Achten Sie darauf, dass Sie eine richtige ("tiefe\) Kopie machen.
- Einen Destruktor, welcher den angeforderten Speicher wieder freigibt.
- Einen operator= als Elementfunktion der Klasse, welcher ein Objekt vom Typ
Ziehungsverwaltung einem anderen zuweist (ebenfalls "tiefe\ Kopie). Beachten
Sie hier auch den Fall, dass ein Objekt sich selbst zugewiesen werden kann.
- Einen operator+= als Elementfunktion der Klasse, welcher die Ziehungen einer
Ziehungsverwaltung zu denen einer anderen hinzufugt (es muss dann entsprechend neuer Speicher angefordert und die bisherigen Werte mussen kopiert werden).
- Einen Ausgabeoperator als friend-Funktion der Klasse, welcher alle Ziehungen
unter Benutzung des Ausgabeoperators von Ziehung untereinander ausgibt.
- Eine Funktion gewinn, welche einen Tipp in Form eines entsprechenden Arrays
und einer Superzahl ubergeben bekommt und fur alle durchgefuhrten Ziehungen
die Gewinnklasse fur diesen Tipp bestimmt. Dabei soll festgehalten werden, wie oft
die jweilige Gewinnklasse erreicht wurde und es soll eine entsprechende Ubersicht
auf cout ausgegeben werden.
Ich bin auf jede Hilfe zugewiesen denn ich hab überhaupt keinen Schimmer wie ich das alleine schaffen soll!
Ich danke allen für ihre Hilfe!
Einen schönen Abend noch
Gruß Justin
hab folgendes Programm:
lottoziehung.cpp
Code:
#include "lotto.hpp"
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
srand(time(NULL));
Ziehungsverwaltung z1(3), z2(2);
cout << "Ziehungsverwaltung z1:" << endl << z1;
cout << "Ziehungsverwaltung z2:" << endl << z2;
cout << "Setze z1=z2" << endl << endl;
z1 = z2;
cout << "Ziehungsverwaltung z1:" << endl;
cout << z1;
cout << "Erstelle Ziehungsverwaltung z3 aus z1 mit Copy-Konstruktor" << endl << endl;
Ziehungsverwaltung z3(z1);
cout << "Ziehungsverwaltung z3:" << endl << z3;
Ziehungsverwaltung z4(2);
cout << "Ziehungsverwaltung z4:" << endl << z4;
cout << "Setze z1+=z4" << endl << endl;
z1 += z4;
cout << "Ziehungsverwaltung z1:" << endl << z1 << endl;
cout << endl;
Ziehungsverwaltung z5(1000000);
unsigned int tipp[] = {2,5,23,31,34,44};
z5.gewinn(tipp,5);
return 0;
}
Ich muss jetzt 2 Klassen erstellen indem ich die auf eine Headerdatei "lotto.hpp" und eine Implementierungsdatei "lotto.cpp" aufteile.
Zur Klasse "Ziehung":
- ein Array von 6 unsigned int-Zahlen, ein unsigned int für die Zusatzzahl und ein unsigned int für die Superzahl
- einen Konstruktor welcher eine Ziehung ausführt und die Datenelemente mit zufällig ausgewählten Zahlen zwischen 1 und 49 bzw. 0 und 9 für die Superzahl füllt. - Die Zahlen sollen nicht doppelt vorkommen und das Array soll mit einem Sortieralgorithmus versehen werden.
- ein Ausgabeoperator als friend-Funktion der Klasse, welcher die gezogenen Zahlen in einer Reihe ausgibt, wobei die Zusatzzahl und die Superzahl von den anderen zahlen zu unterscheiden sind.
- eine Methode gewinnklasse_bestimmen, welche ein Array mit den 6 Zahlen eines Tipps sowie die Superzahl übergeben bekommt und die Gewinnklasse für diesen Tipp bei der jeweiligen Ziehung bestimmt und zurückgibt. Es gibt folgende Gewinnklassen:
- Gewinnklasse 1: 6 Richtige + SZ
- Gewinnklasse 2: 6 Richtige
- Gewinnklasse 3: 5 Richtige + ZZ
- Gewinnklasse 4: 5 Richtige
- Gewinnklasse 5: 4 Richtige + ZZ
- Gewinnklasse 6: 4 Richtige
- Gewinnklasse 7: 3 Richtige + ZZ
- Gewinnklasse 8: 3 Richtige
Wurde keine der genannten Gewinnklassen erreicht, so soll 0 zurückgegeben werden.
Die andere Klasse "Ziehungsverwaltung" soll folgendes beinhalten:
- Ein unsigned int-Datenelement fur die Anzahl der durchgefuhrten Ziehungen
sowie ein Datenelement vom Typ Zeiger auf Ziehung, welches auf ein Array von
Ziehungen zeigt, das dynamisch entsprechend der geforderten Anzahl an Ziehungen
angelegt wird. Beide Datenelemente sollen private sein.
- Einen Konstruktor mit einem unsigned int-Parameter fur die Anzahl der durchzuf
uhrenden Ziehungen (verwenden Sie eine Initialisierungsliste zur Belegung des
entsprechenden Datenelements). Der Konstruktor soll die entsprechende Anzahl
an Ziehungen dynamisch mit new erzeugen.
- Einen Copy-Konstruktor, welcher eine Ziehungsverwaltung aus einer anderen
erzeugt. Achten Sie darauf, dass Sie eine richtige ("tiefe\) Kopie machen.
- Einen Destruktor, welcher den angeforderten Speicher wieder freigibt.
- Einen operator= als Elementfunktion der Klasse, welcher ein Objekt vom Typ
Ziehungsverwaltung einem anderen zuweist (ebenfalls "tiefe\ Kopie). Beachten
Sie hier auch den Fall, dass ein Objekt sich selbst zugewiesen werden kann.
- Einen operator+= als Elementfunktion der Klasse, welcher die Ziehungen einer
Ziehungsverwaltung zu denen einer anderen hinzufugt (es muss dann entsprechend neuer Speicher angefordert und die bisherigen Werte mussen kopiert werden).
- Einen Ausgabeoperator als friend-Funktion der Klasse, welcher alle Ziehungen
unter Benutzung des Ausgabeoperators von Ziehung untereinander ausgibt.
- Eine Funktion gewinn, welche einen Tipp in Form eines entsprechenden Arrays
und einer Superzahl ubergeben bekommt und fur alle durchgefuhrten Ziehungen
die Gewinnklasse fur diesen Tipp bestimmt. Dabei soll festgehalten werden, wie oft
die jweilige Gewinnklasse erreicht wurde und es soll eine entsprechende Ubersicht
auf cout ausgegeben werden.
Ich bin auf jede Hilfe zugewiesen denn ich hab überhaupt keinen Schimmer wie ich das alleine schaffen soll!
Ich danke allen für ihre Hilfe!
Einen schönen Abend noch
Gruß Justin
Zuletzt bearbeitet: