Cesse14 Geschrieben 2. Dezember 2010 Teilen Geschrieben 2. Dezember 2010 Hallo Leute, da ich mich noch nicht so gut mit C# auskenne habe ich mal ne Frage, und zwar: Ich wollte mal aus Spaß ein Menü erstellen mit Untermenü und kauf Funktion. Es sieht momentan so aus: Console.WriteLine("<1> Shop"); Ich weis das ist jetzt garnichts aber jetzt muss ich es erstmal Fertig erklären. Also wenn ich jetzt die Taste "1" drücke sollte ein Untermenü aufgehen wie folgt: <1>Apfel 50Cent, <2>Banane 50Cent, <3>Wasser 25Cent, So ich wollte es dan so machen. if(eingabe == 1) { Anweisung. } Dan bin ich aber auf die Idee gekommen es mit Klassen zu machen. Würde das Theoretisch gehen? Kann man bei diesem Part: <1> Shop -> <1> Apfel die 1 2 mal für die jeweilige Aufgabe benutzen? Wie könnte so etwas aussehen. MFG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TigerTubby Geschrieben 2. Dezember 2010 Teilen Geschrieben 2. Dezember 2010 Ok, ich weiß nicht ob ich dich richtig verstanden habe, aber ich versuch's mal: 1. vll wäre es sinnvoll statt if switch-case zu verwenden, falls dein Menü mehr als 2 Kategorien haben soll, aber jeder wie er mag 2. zu den Klassen: Du könntest eine Klasse "Shop" erstellen und eine Klasse "Ware" oder sowas. Ware könnte die Attribute Name (zb Apfel) und Preis haben und evtl eine überschriebene toString- bzw Ausgabe-Methode, welche als String den Namen und den Preis zurückliefern Shop enthält eine Liste vom Typ Ware, in der verschiedene Ware-Objekte gespeichert werden (Apfel, Birne, Handschuh, etc.) und eine Methode "Ausgabe", welche einen string zurückliefert, zusammengesetzt aus den Waren-Ausgaben. Oder du sche*** auf Kapselung und rufst dann gleich von der Main-Methode die Liste von Shop auf, gehst dort jedes Element von da durch und gibst deren Ausgabe in der Konsole wider. Hoffe ich hab verstanden was du willst, und du kannst mit oben Genanntem etwas anfangen (ich seh's schon kommen, dass es wieder eine viel leichtere Lösung gibt...) Good luck Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cesse14 Geschrieben 3. Dezember 2010 Autor Teilen Geschrieben 3. Dezember 2010 Hey danke für die Antwort=D. Also erstmal ich finde das diese Methode gut zum üben mit dem Umgang von Klassen ist. Also wenn ich es richtig verstanden habe soll ich Methoden erstellen. Die erste heißt dan z.B Ware/ware wo dan Apfel,Birne, usw mit Preis steht. Die zweite ist dan z.B Kaufen/buy das man diese Sachen auch kaufen kann?. MFG Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TigerTubby Geschrieben 3. Dezember 2010 Teilen Geschrieben 3. Dezember 2010 Nein, so meinte ich das eigentlich nicht. Du hast gesagt du wolltest es mit Klassen machen, nicht mit Methoden, vielleicht habe ich falsch verstanden wie du das meinst. Ich dachte an Objektorientierung... (bist du schon so weit?) So habe ich mir das vorgestellt: Klasse Ware - privaten string name - privaten double preis - public Konstruktor, an denen der gewünschte Name und Preis übergeben und in den privaten variablen gespeichert werden - public methode Ausgabe gibt den string zusammengesetzt aus Name und Preis zurück (z.B. Apfel: 0.50 Euro) Klasse Shop - private Liste vom Typ Ware - public Konstruktor, in dem neue Ware-Objekte zur Liste hinzugefügt werden (z.B. Liste.Add(new Ware("Apfel", 0.50)); ) - public Methode Ausgabe gibt einen string zurück: dabei am besten in einer For-Schleife jedes Objekt in der Liste durchgehen und zum string hinzufügen: ausgabestring += "<" + (i + 1) + "> " + ware.Ausgabe() + Environment.NewLine (sorgt für neue Zeile in der Konsole) Wenn alle Objekte in der Liste durchgegangen wurden, wird der komplette string zurückgegeben - public methode kaufen (int eingegebeneZahl) durch Liste[eingegebene Zahl - 1] kannst du dann die gekaufte Ware bestimmen in der Main-Methode wird dann beispielsweise ein neues Objekt vom Typ shop erstellt und dann über Console.WriteLine(shop.Ausgabe()); alle Waren und Preise angezeigt. Dort könnte dann auch die Eingabe des Nutzers abgefangen und in int-Konvertiert und an die shop.Kaufen-methode weitergeleitet werden Soo, hoffe ich hab nix vergessen und dich nicht verwirrt. Falls du dir was anderes vorgestellt hast, sag das bitte Ich kann leider nicht genau einschätzen auf welchem Level du bist, man kann das auch sicher ein wenig simpler aufbauen. Good luck Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TigerTubby Geschrieben 3. Dezember 2010 Teilen Geschrieben 3. Dezember 2010 Ok (wo ist die edit-funktion hin?), vll hab ich auch deinen zweiten Beitrag falsch verstanden. :upps Ja, in der Shop-Klasse sollte es meiner Meinung nach eine Methode für die Ausgabe geben und eine andere fürs Kaufen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 3. Dezember 2010 Teilen Geschrieben 3. Dezember 2010 (bearbeitet) class Program { public enum Stages:int {Start=0, Warenauswahl, Einkaufskorb, Kasse, Bezahlen, Ende} static void Main(string[] args) { ... while (Einkaufsablauf != Stages.Ende) { Menu.PrintMenu(Einkaufsablauf); char Eingabe = Console.ReadKey().KeyChar; Shop.Bearbeite(Eingabe, Einkaufsablauf); } ... } } [/PHP] Wäre ja quasi das, worauf Du hinaus möchtest? Du hast während des Einkaufens verschiedene Stadien, die mit [i]public enum Stages:int {Start=0, Warenauswahl, Einkaufskorb, Kasse, Bezahlen, Ende}[/i] definiert werden. Solange Dein Einkauf noch nicht beendet ist [PHP]while (Einkaufsablauf != Stages.Ende) soll die Menuklasse die passende Ausgabe (Menu.PrintMenu(Einkaufsablauf)) liefern. Und entsprechend der Eingabe und des derzeitigen Zustandes, wird die Anfrage bearbeitet (Shop.Bearbeite(Eingabe, Einkaufsablauf);) Bearbeitet 3. Dezember 2010 von lilith2k3 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.