Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ??zeiger auf Feld von Klassen-elementen??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: