Instanzen Einsatz in c++?
-
Hallo und Guten Abend Euch allen,
könnte von Euch jemand sich mal bitte meinen Quelltext ansehen bekomme das mit dem Instanzen Einsatz nicht hin.
Aufgabe war:
Getränke Klasse erstellen und Attribute als Instanz nutzen über Getränkeautomat.
Bei der Ausgabe soll dann der Name, Preis und restliche Flaschen mit ausgegeben werden.Leider habe ich momentan kein Plan wie ich das machen soll. Habe es mit einer Zuweisung versucht. Aber der Compiler mag das nicht :-(.
Bitte um kurze Erläuterung / Erklärung wie ich das Step by Step hin bekomme .

Vielen Dank Euch allen und noch einen schönen Abend.
Gruß
Inforc1
Hier mein Quelltext
/* ##################################
Der Getränkeautomat Version 4
###################################*/
#include<cmath>
#include <iostream>
using namespace std;//die Vereinbarung der Klasse muenzeinheit
class muenzeinheit
{
//die Attribute
int betrag;
int nochZuZahlen;
int rueckgeld;//die Methoden
public:
void init();
void muenzenAnnehmen(int wert);
int rueckgeldGeben();
//zum Setzen des Betrags
void setBetrag(int preis);
//zum Abfragen des noch zu zahlenden Betrags
int getnochZuZahlen();
};void muenzeinheit::init()
{
betrag = 0;
nochZuZahlen = 0;
rueckgeld = 0;
}void muenzeinheit::muenzenAnnehmen(int wert)
{
//den eingeworfenen Betrag abziehen
nochZuZahlen = nochZuZahlen - wert;
}int muenzeinheit::rueckgeldGeben()
{
//den absoluten Betrag von nochZuZahlen als Rückgeld liefern
rueckgeld = abs(nochZuZahlen);
return rueckgeld;
}void muenzeinheit::setBetrag(int preis)
{
betrag = preis;
nochZuZahlen = betrag;
}int muenzeinheit::getnochZuZahlen()
{
return nochZuZahlen;
}// Neue Klasse Getränke
class Getraenke
{
//die Attribute
string getraenkeNamen[3];int restlicheFlaschen [3];
float preisProFlasche [3];
// Die Methoden
public:void init();
int namenWaehlen(int getraenkeNamen[3]);
int uebrigeFlaschen(int restlicheFlaschen[3]);
int kostenFlasche (int preisProFlasche[3]);
};
void Getraenke::init()
{// Die Namen eintragen
getraenkeNamen[0]="Fanta";
getraenkeNamen[1]="Bonaqua";
getraenkeNamen[2]="Bitburger";
// die restlichen Flaschen
//int anzahl;
restlicheFlaschen[0]=10;
//restlicheFlaschen[0]=restlicheFlaschen[0]-anzahl;restlicheFlaschen[1]=10;
//restlicheFlaschen[1]= restlicheFlaschen[1]-anzahl;restlicheFlaschen[2]=10;
//restlicheFlaschen[2]= restlicheFlaschen[2]-anzahl;// Der Preis pro Flasche
preisProFlasche[0]=1.50;"Euro";
preisProFlasche[1]=1.75;"Euro";
preisProFlasche[2]=2.00;"Euro";
}
int Getraenke::namenWaehlen(int getraenkeNamen[3])
{int auswahl;
//Die Auswahl
cout<<"Bitte waehlen Sie einen Namen: "<<endl;
cout<<"Es gibt folgende Auswahl: "<<endl;
for (int index =0;index < 3; index++)
cout<<index+1<<"-"<<getraenkeNamen[index]<<endl;
cout<<"Geben Sie ihre gewuenschte Nummer ein: ";
cin>>auswahl;
}int Getraenke::uebrigeFlaschen(int restlicheFlaschen[3])
{
// restliche Flaschen ausgeben
int auswahl;if(restlicheFlaschen[auswahl-1]!=0)
auswahl =auswahl-1;
else
{
cout<<" Es sind leider nicht mehr genuegend Flaschen im Getraenke-"<<
"automaten vorhanden... bitte anderes Getraenk waehlen"<<endl;auswahl = -1;
}
return auswahl;
}int Getraenke::kostenFlasche( int preisProFlasche[3] )
{
//die Auswahl
int auswahl;float Ausgabe;for(int index = 0;index < 3;index++)
{cout<<index+1<<"="<<preisProFlasche[index]<<endl;
// zuweisung von PreisproFlasche
preisProFlasche[index]=auswahl *preisProFlasche[index];
// Zuweisung des Preises in Ausgabe und damit in Komma
Ausgabe=preisProFlasche[index];// Ausgabe des Preises mit Kommazahl
cout<<"Die ausgegebene Flasche kostet"<<Ausgabe<<"Euro"<<endl;
cin>>auswahl;
}
}//die Vereinbarung der Klasse getraenkeautomat
class getraenkeautomat
{
//die Attribute
string getraenk[3];
int anzahlFlaschen[3];
bool kuehlung;
//jetzt ist die Münzeinheit Teil des Getränkeautomaten
muenzeinheit *zahlomat;// Zeiger auf Getränke Methoden
// Getränke-Namen
Getraenke* get_Namen;
// restliche Flaschen
Getraenke* set_NichtgenutzteFlaschen;
//Kosten Flasche
Getraenke* set_FlaschenPreis;public:
//die Methoden
void init();
int getraenkeWaehlen(Getraenke*get_Namen);
void getraenkAusgeben(int anzahl, int getraenkeIndex);
void kuehlen(bool anaus);
};void getraenkeautomat::init()
{
//die Getränke eintragen
getraenk[0] = "Limonade";
getraenk[1] = "Wasser";
getraenk[2] = "Bier";//die Anzahl der Flaschen
anzahlFlaschen[0] = 10;
anzahlFlaschen[1] = 10;
anzahlFlaschen[2] = 10;//die Kühlung ist aus
kuehlung = false;//eine Instanz der Münzeinheit erzeugen
zahlomat = new muenzeinheit();
//die Instanz initialisieren
zahlomat->init();// Instanzen der Getränke erzeugen
get_Namen = new Getraenke();
set_NichtgenutzteFlaschen = new Getraenke();
set_FlaschenPreis = new Getraenke();// Instanzen initialisieren
get_Namen->init();
set_NichtgenutzteFlaschen->init();
set_FlaschenPreis->init();}
int getraenkeautomat::getraenkeWaehlen(Getraenke * get_Namen)// zeiger auf Instanz Namen
{
int auswahl, anzahl;//die Auswahl
cout << "Bitte waehlen Sie ein Getraenk: " << endl;
cout << "Es gibt folgende Auswahl: " << endl;
for (int index = 0; index < 3; index++)
cout << index+1 << " - " << getraenk[index] << endl;
cout << "Geben Sie die gewuenschte Nummer ein: ";
auswahl= get_Namen*auswahl;// Will hier irgendwie die Instanz "Namen" mit einbauen!!!!!!
cin>> auswahl;
//gibt es noch Flaschen vom gewählten Getränk?
if (anzahlFlaschen[auswahl-1] != 0)
{
//das Getränk ausgeben
cout << "Wie viele Flaschen moechten Sie? ";
cin >> anzahl;//erst muss bezahlt werden
//der Preis 10 ist fest vorgegeben
cout << "Sie muessen " << anzahl * 10 << " Cent bezahlen." << endl;
zahlomat->setBetrag(anzahl * 10);do {
cout << "Es fehlen noch " << zahlomat->getnochZuZahlen() << " Cent." << endl;
zahlomat->muenzenAnnehmen(3);
} while (zahlomat->getnochZuZahlen() >0);//das Getränk ausgeben
auswahl = auswahl - 1;
getraenkAusgeben(anzahl, auswahl);
}else
{
cout << "Das gewaehlte Getraenk ist leider nicht mehr vorhanden." << endl;
auswahl = -1;
}return auswahl;
}void getraenkeautomat::getraenkAusgeben(int anzahl, int getraenkeIndex)
{
//gibt es noch genügend Flaschen?
if (anzahl <= anzahlFlaschen[getraenkeIndex])
{
cout << "Sie erhalten " << anzahl << " Flasche(n) " << getraenk[getraenkeIndex] << endl;
anzahlFlaschen[getraenkeIndex] = anzahlFlaschen[getraenkeIndex] - anzahl;
}
else
{
cout << "Es sind nur noch " << anzahlFlaschen[getraenkeIndex] << " Flasche(n) " << getraenk[getraenkeIndex] << " vorhanden. ";
cout << "Sie erhalten den Rest." << endl;
anzahlFlaschen[getraenkeIndex] = 0;
}
//Geld zurückgeben
cout << "Sie erhalten " << zahlomat->rueckgeldGeben() << " Cent zurueck." << endl;
}void getraenkeautomat::kuehlen(bool anaus)
{
if (anaus == true)
{
kuehlung = true;
cout << "Die Kuehlung ist eingeschaltet. " << endl;
}
else
{
kuehlung = false;
cout << "Die Kuehlung ist ausgeschaltet. " << endl;
}
}int main()
{
int auswahl;
//Instanz erzeugen
//der Zeiger auf die Klassegetraenkeautomat *automat;
automat = new getraenkeautomat();
Getraenke * get_Namen=new Getraenke();
get_Namen->init();
//Instanz initialisieren
automat->init();
//ein Getränk auswählen
do {
auswahl = automat->getraenkeWaehlen (get_Namen);
} while (auswahl == -1);//die Instanzen freigeben
delete(automat);return 0;
}
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum C++ (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Danke, dass du aus deinem letzten Thread absolut nichts gelernt hast. Wieder falsches Forum, wieder absolut unformatiert. Mein persönliches Hilfsbereitschaftslevel ist daher: 0