000
07.11.2003, 19:52 Uhr
~startupboy
Gast
|
Hallo !! Ich hofffe hier kann mir jemand weiterhelfen...
Ich habe folgende Aufgabestellung bekommen...
HINWEIS: Ab dieser Übung ist folgendes bei der Erstellung der Aufgabe zu beachten:
1. Klasse Münze Im Euroland kennt man 8 unterschiedliche Münzen: 1,2,5,10,20,50 Cent,1 Euro und 2 Euro. Erstellen Sie eine Klasse class Muenze mit den privaten Datenmember string Art, um die Münzsorte, z.B. 1 CENT oder 50 CENT, abzulegen und int Wert, um den Wert der Münze in Cent zu hinterlegen. Versehen Sie die Klasse mit einer Methode string muenzwurf(int start);. Diese soll zufällig generiert das Wort ?Kopf? oder ?Zahl? zurückgeben. Überladen Sie den Schiebeoperator << zur Ausgabe einer Münze.
2. Klasse Kleingeld Eine Ansammlung von Münzen befindet sich üblicherweise als Kleingeld in einem Portemonnaie. Erstellen Sie zur Verwaltung dieser Münzen eine Klasse Kleingeld
C++: |
class Kleingeld{ private: Muenze *M[100]; <=========<===<===<===<====<===Zugriff auf... *** int Anzahl; //Anzahl der Muenzen public: // Elementfunktionen //. . . };
|
Ein Objekt dieser Klasse kann bis zu 100 Münzen aufnehmen. Programmieren Sie geeignete Konstruktoren, Destruktoren und eine passende Ausgabefunktion. Die Münzen sollen Objekte im Freispeicher sein. Schreiben Sie ein kleines Testprogramm.
Weiterhin sind folgende Funktionen zu programmieren:
a. Erstellen sie eine Elementfunktion bool empty(), die überprüft, ob Kleingeld vorhanden ist. Eine Methode double wert()const soll den Gesamtwert der Münzen in Cent zurückgeben.
b. Erstellen Sie eine Methode Kleingeld &pop(int i), die die i-te Münze aus der Kleingeldbörse eliminiert.
c. Erstellen Sie folgende Operatorüberladungen
i. Kleingeld &operator>>(Muenze &Muenze), um die oberste Münze herauszunehmen.
ii. Kleingeld &operator<<(const Muenze &neu), um eine neue Münze aufzunehmen.
iii. Kleingeld &operator=(const Kleingeld &K) für Kleingeld- Zuweisungen
***das Problem liegt jetzt in dieser Zeile wie benutze ich die Zeiger oder weise ich ihnen was zu...
C++: |
//__________________________________________________________________________ //Mainprogramm :
#include "muenze.h" #include "kleing.h"
using namespace std;
// Zeit für die Zufallsfunktion... time_t time(), zp; struct tm *localtime(), *tp;
int main() { int auswahl,empt,zufall;
Kleingeld boerse;
do{ cout << endl << endl; empt=boerse.empty(); if (empt == 0) cout << "Es sind keine Muenzen in der Geldboerse !" << endl; if (empt == 1) cout << "Es es sind " << boerse.anzahle() << " Muenzen in der Geldboerse !" << endl; cout << "\nWelche Aktion soll ausgefuehrt werden ?" << endl; cout << "(1)Neue Muenze (2)Muenze entfernen (3)Inhalt anzeigen " << endl; cout << "(4)Muenze werfen (5)Summe des Geldes (6)Inhalt sortieren " << endl; cout << "(0)Beenden : "; cin >> auswahl; if (auswahl == 1) { cout << "\n\nNeue Muenze wird hinzufuegen :" << endl; //cin << boerse.*M[0]; } if (auswahl == 2) { cout << "\n\nMuenze entfernen :" << endl; } if (auswahl == 3) { cout << "\n\nInhalt anzeigen :" << endl; } if (auswahl == 4) { cout << "\n\nMuenze werfen :" << endl; // Zeit holen zp=time(0); tp=localtime(&zp); //cout << "In Sekunde " << tp->tm_sec << " wurde " << Kleingeld::muenzwurf(tp->tm_sec) << " geworfen !"; } if (auswahl == 5) { cout << "\n\nSumme des Geldes :" << endl; cout << endl; } if (auswahl == 6) { cout << "\n\nInhalt sortieren :" << endl; } }while(auswahl);
cout << "\n\nProgramm wurde beendet!" << endl; return 1; }
//_________________________________________________________________________ //kleing.h
class Kleingeld { friend ostream &operator<<(ostream &o, Muenze &Muenze); private: class Muenze *M[100]; int Anzahl; //Anzahl der Muenzen public: Kleingeld(){ Anzahl = 0; for (int i=0; i<=99 ; i++){ } cout << "K-Konstrukt"; } ~Kleingeld(){ cout << "K-Destrukt"; } int anzahle() { return Anzahl; } bool empty() { if (Anzahl >= 1) return 1; else return 0; } Kleingeld &operator=(const Kleingeld &K) { //Anzahl=K; return *this; } Kleingeld &operator<<(const Muenze &neu) { cout << "\nBitte geben Sie den Wert der Muenze ein :"; cin >> Anzahl; cout << "\nBitte geben Sie die Art der Muenze ein :"; //cin >> *M[0]; // Muenz Anzahl erhoehen Anzahl++; }
};
// ausgabe als friend ostream &operator<<(ostream &o, const Muenze &Muenze) { o << Muenze << " wurde geworfen! " << endl; return o; }
//___________________________________________________________________________ //Muenze.h
class Muenze { friend istream &operator>>(istream &i, class Muenze &neu); private: string art; int wert;
public: //Standardkonstruktor: Wert=0, Art="" Muenze(){ art =""; wert =0; cout << "M-Konstrukt"; }
~Muenze(){ cout << "\nM-Destrukt"; } };
istream &operator>>(istream &i1, Muenze &neu){
cout << "\nBitte den Wert der Muenze in Cent eingeben :"; cin >> neu.wert; if (neu.wert >= 99 ) neu.art="Euro"; else neu.art="Cent"; return i1; }
|
Wäre schön wenn mir da jemand weiter helfen kann... Danke schon mal...
--edit: Pablo. [ cpp ] tags gesetzt -- Dieser Post wurde am 07.11.2003 um 19:59 Uhr von Pablo Yanez Trujillo editiert. |