Getrankeautomat Instantzen setzen
-
Ich lerne es gerade über eine Fernschule.
Kannst du mir sagen wie ich die Klassen schreiben soll.
Wäre lieb
-
RealFeejay schrieb:
Ich lerne es gerade über eine Fernschule.
Falls du es nicht an dem anderen Kommentar erkannt haben solltest: Das ist nicht so gut, was ihr da lernt. Ernsthaft.
Kannst du mir sagen wie ich die Klassen schreiben soll.
Nein. Ich kenne deine Aufgabenstellung nicht.
Wäre lieb

Selbst wenn ich sie kennen würde, würde ich es nicht machen. Ich bin nicht der Hausaufgabenservice.
-
Natrülcih bist du kein Hausaufgabenservice, aber ich bruache halt ein kleinen Anstoß weil ich nicht weiter weiß.
Hab ich mir schon gedacht, dass es ein experte eng sieht mit dem was ich da lerne

-
RealFeejay schrieb:
Natrülcih bist du kein Hausaufgabenservice, aber ich bruache halt ein kleinen Anstoß weil ich nicht weiter weiß.
Hab ich mir schon gedacht, dass es ein experte eng sieht mit dem was ich da lerne

nein das tut hier keiner.wir freuen uns wenn es neue junge leute gibt die sich mit C++ befassen
aber es gibt halt gute lehrmittel(stroustrop bücher) und schlechte(wolff und co). und wenn man es von anfang schlecht lernt, dann kommt nachher nix dabei rum.
ich persönlich will auch eher das niveau höher haben, sonst kommen fachfremde leute an und werfen einem vor, dass alle informatiker schlecht sind, weil sie eine flasche kennen.
aber SeppJ wird dir deine übungen nicht machen, weil es ist ja für DICH zum üben. der kann das, das verspreche ich dir. und wahrscheinlich wird er auch dem autor deines lehrmittels den boden unter den füßen wegcoden. aber dadrum gehts nicht.
merke bei programmieren lernen, nachdenken und auch sehr viel probieren und experimentieren
-
Anstöße gebe ich gerne, aber erfahrungsgemäß ist die Aussage
RealFeejay schrieb:
Kannst du mir sagen wie ich die Klassen schreiben soll.
Wäre lieb
identisch mit "Mach es für mich". Falls das so nicht gemeint war, sondern wirklich Anstöße gesucht werden: Gerne.
-
Nein für mich war des eher der Anstoß, weil ich keine Ahnung habe wie ich die Klassen schreiben soll. Tut mir leid

-
Dann fangen wir doch mal an... bevor es an den Code geht, musst du dir erstmal überlegen, was ein "Getraenk" überhaupt ist.
* Hat es einen Namen?
* Hat es vielleicht auch einen Preis?
* Muss das Getränk wissen, zu welchem Automaten es gehört?
* Muss das Getränk wissen, wie viele Einheiten noch im Automaten sind?
* ...Mit den Antworten auf diese Frage kannst du dann schonmal das Grundgerüst der Klasse bauen. Das kannst du hier vorstellen, dann helfen wir dir bei den Syntaxfehlern

-
Also muss ich die Klasse für jedes Getränk sepperat schreiben?
Nehmen wir mal an ich habe:
*Als den Namen : Limonade
*Der Preis: 50
*Die Anzahl der Flaschen: 10wie soll ich das in eine Klasse umwandeln?
-
ok, du hast also überhaupt gar keine Ahnung von C++?
-
Erstmal beantworte die Fragen direkt. Mit ja/nein.
Wenn du das hast, erstelle eine Klasse (oder in dem Fall vielleicht eine struktur) mit den entsprechenden Attributen. Attribute, bei denen du dachtest du brauchst sie, sind dann Teil der Klasse. Du solltest übrigens nicht alle Fragen von daddy_felix mit ja beantworten:class /*oder struct*/ Getränk { int volume; //in millileter //... andere attribute hier };Dann überlegst du dir, was du mit der Klasse tun musst, und schreibst entsprechende Methoden.
-
Nein, du machst eine Klasse für alle Getränke mit allen Angaben darin (Name, Preis, Anzahl, ...) und den gewünschten Zugriffsmöglichkeiten. Für jedes Getränk (Limonade, Cola, Whiskey, ...) bildest du eine Instanz dieser Klasse und arbeitest damit separat, eben mit den Instanzen.
Mehr zu erklären macht wenig Sinn. Dir fehlen die wesentlichen Kenntnisse, was eine Klasse ist und wie man sie einsetzt. Genau dies ist aber der Lernzweck der gestellten Aufgabe. Wir sind hier keine Hausaufgabenlöser und keine Ablieferer fertig programmierter Lösungen dafür!
-
Also das mit den Instanzen hat jetzt geklappt.
Hat mir vielleicht jemand eine Idee wie ich das mit dem Rueckgeld schaffen könnte?
-
RealFeejay schrieb:
Hat mir vielleicht jemand eine Idee wie ich das mit dem Rueckgeld schaffen könnte?
Wenn ich ein Getränk am Automaten kaufe, sieht das etwas so aus:
* Ich entscheide, welches Getränk ich haben möchte
* Der Automat zeigt mir den zu zahlenden Betrag an
* Ich werfe eine Münze ein
* Der Automat zeigt mir den Restbetrag an
* Ich werfe noch eine Münze ein
* Der Automat zeigt mir den Restbetrag an
* Das geht dann solange, bis ich genug Münzen eingeworfen habe.
* Dann zeigt mir der Automat das Rückgeld an
* Das Rückgeld wird ausgeworfen
* Das Getränk wird ausgeworfenSo in etwa müsste das dann ja auch in deinem Code aussehen...
-
Deine Unterteilung stimmt, aber halt leider nur nicht mit dem Listing überein.
Hier wird erst das Geld eingeworfen bevor man überhaupt ein getränk gewählt hat.
Wäre es möglich dass ich die Klasse muenzeinheit am Anfang vom Listing Zeile 6 auf Zeile 130 ablege. Dann wird erst die Getränkeauswahl vonstatten gehen und danach die Münzen einwerfen.
edit...
Neine geht leider nicht und würde auch nichts bringen
-
RealFeejay schrieb:
Wäre es möglich dass ich die Klasse muenzeinheit am Anfang vom Listing Zeile 6 auf Zeile 130 ablege.
Nein, das ist absoluter Blödsinn. Es ist völlig wurscht, wo du die Klasse "muenzeinheit" definierst.
So, wie ich das sehe, fehlt lediglich dder Aufruf der Methode "rueckgeldgeben"
-
Die Klassenmethoden gehören in die Klasse und sind im Aufruf (also der Benutzung der Klasse) unabhängig voneinander. Die Reihenfolge darf keine Rolle spielen. Die Vorbesetzung der Daten machst du zweckmässig über den Konstruktor oder die Konstruktoren. Für die Veränderungen des Getränkeautomaten durch den Aufsteller (Getränkebestand, Münzen nach Sorten) machst du neue Methoden.
Dringender Rat: Buch oder Tutorial mit Beispiel lesen und verstehen.