Zum Inhalt springen

Variablen aus Headerdateien benutzen


LLpresident

Empfohlene Beiträge

Hallo.Ich habe ein Problem.Ich will die Variable "Preis" aus der selbsterstelten Headerdtei "ware.h" in der selbsterstelten Headerdatei "zahlung.h" benutzen.Anbei die beiden Headerdateien.

Danke für eure mühe.

Headerdatei ware.h:

//---------------------------------------------------------------------------

#include <iostream.h>

#include <conio.h>

//---------------------------------------------------------------------------

int ware()

{

int auswahl, z, preis;

int cola, sprit, fanta, sevenupu, cappuchino, kaffee;

randomize();

cola = random(20);

sprit = random(20);

fanta = random(20);

sevenupu = random(20);

cappuchino = random(20);

kaffee = random(20);

cin>>auswahl;

switch(auswahl)

{

case 22:

preis=100;

if(cola==0)

{

cout<<"Artikel leider ausverkauft.";

}

cola--;break;

case 23:

preis=100;

if(sprit==0)

{

cout<<"Artikel leider ausverkauft.";

}

sprit--;break;

case 24:

preis=100;

if(fanta==0)

{

cout<<"Artikel leider ausverkauft.";

}

fanta--;break;

case 25:

preis=100;

if(sevenupu==0)

{

cout<<"Artikel leider ausverkauft.";

}

sevenupu--;break;

case 44:

preis=70;

if(cappuchino==0)

{

cout<<"Artikel leider ausverkauft.";

}

cappuchino--;break;

case 45:

preis=50;

if(kaffee==0)

{

cout<<"Artikel leider ausverkauft.";

}

kaffee--;break;

default:cout<<"Unbekante Auswahl.Bitte waehlen sie neu.";z = 0;break;

}

return (cola);

}

Headerdatei "zahlung.h":

#include <iostream.h>

#include <conio.h>

#include "ware.h"

//---------------------------------------------------------------------------

int zahlung()

{

int zehn, zuenfzig, einz, zwei;

int funktionware;

randomize();

zehn = random(15);

zuenfzig =random(15);

einz =random(15);

zwei =random(15);

if(zehn < 4 || zuenfzig < 4 || einz < 4 || zwei < 4)

{

cout<<"Bitte passend zahlen!"<<"\n"<<"\n";

}

cout<<"Was moechten sie? ";

funktionware=ware();

}

:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Entweder so wie Shadax es sagt. (Beste Lösung)

Oder Du definierst Preis als extern und static (sollte eigentlich auch funktionieren - ähnlicher Effekt wie oben).

Oder Du gibt Referenzen/Pointer von Preis an zahlung() zurück, mit denen Du den Inhalt von Preis verändern kannst, aber auch hier static nicht vergessen.

Wenn Du jedoch vorhast mit mehreren Waren zu arbeiten, dann mußt Du tatsächlich die Pointer-Lösung benutzen und Waren-Structs definieren, die darin eingetragen sind. Oder in C++ Waren-Objekte und die Objekte ins Array eintragen.

Also der Aufbau des Programms ist alles andere als eine gute Lösung, find ich. Du solltest das Ganze anders organisieren.

In C++ würde ich eine Getränke-Klasse machen, diese in verschiedene Getränke ableiten, mehr Fähigkeiten zur Verfügung stellen wie Titel und Name. Von diesen Klassen Objekte erzeugen und in eine Map oder Multi-Map setzten (STL-Template). Hierzu kann man sogar den Getränkenamen oder auch die Nummer als Argument benutzen um das jeweilige Getränk suchen zu lassen. Entfernen und erzeugen neuer Getranke wäre ein Kinderspiel. Getränke könnten sogar auf Wunsch mehrfach vorkommen (Lager1, Lager2, Lager3).

Ich weiß, daß viele C++ verschreien, aber was anderes wollen die aus der Industrie halt einfach nicht und außerdem kann man sich eine Menge Zeit sparen und damit relativ schnell ordentliche Ergenisse erzielen. (Und Fehler werden reduziert und leichter erkannt).

<FONT COLOR="#a62a2a" SIZE="1">[ 22. August 2001 17:35: Beitrag 1 mal editiert, zuletzt von Crush ]</font>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Ideen.Problem ist blos das ich halt sozusagen Neulinng bin und das alles erst mal prozesorientiert mache.Deshalb nutzt mir die sache mit den Objekten leider noch nichts.Der obrige Quelltext enthält nur 2 Funktionen die ich beide in unterschiedliche Headerdatein geschrieben habe.Es sollen insgesamt 3 einzelne Teilfunktionen werden.die dann in einer Funktion Namens "Getränkeautomat" mit ein ander verknüpft werden.Hier die Funktion Getränkeautomat:

//----------------------------------------------------------

#include <iostream.h>

#include <conio.h>

//----------------------------------------------------------

void main()

{

int z;

z = 0;

while(z==0)

{

int funktionzahlung;

z=1;

cout<<"Bitte waehlen sie durch eingabe der Producktnummer ein Produckt aus.";

cout<<"\nSie koennen das Programm jeder Zeit durch eingabe von A beenden.";

cout<<"\n";

cout<<"\n"<<"Cola"<<"\t"<<"\t"<<"22"<<"\t"<<"1,00 DM";

cout<<"\n"<<"Sprite"<<"\t"<<"\t"<<"23"<<"\t"<<"1,00 DM";

cout<<"\n"<<"Fanta"<<"\t"<<"\t"<<"24"<<"\t"<<"1,00 DM";

cout<<"\n"<<"Seven Up"<<"\t"<<"25"<<"\t"<<"1,00 DM";

cout<<"\n"<<"Cappucino"<<"\t"<<"44"<<"\t"<<"0,70 DM";

cout<<"\n"<<"Kaffee"<<"\t"<<"\t"<<"45"<<"\t"<<"0,50 DM";

cout<<"\n"<<"\n";

//cout<<"Was moechten sie?";

funktionzahlung=zahlung();

}

getch();

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...