Programm zur Pizzabestellung



  • Hi!

    ich muss als C#-Anfänger den folgenden Beleg anfertigen:

    Programm zur Pizzabestellung

    mit 5Pizzen zur Auswahl und Unterscheidung zwischen Großer und kleiner Variante.

    Ausserdem soll am Anfang des Programmes die Telefonnummer des Kunden eingegeben werden können und das Programm sol sich aus einer externen Datei die Adresse selbst raussuchen. Am Ende der Bestellung (nämlich wenn das Eingabefeld leer bleibt) soll der Gesamtpreis berechnet werden und eine Druckmöglichkeit der Rechnung angeboten werden...

    Ich hab aus lauter Verzweiflung mal angefangen zu programmieren, aber ich komm jetzt einfach nicht weiter...

    ich hoffe, ihr könnt mir da weiterhelfen!!!!!

    Bitte, Bitte, Bitte

    Hier mein Bisher programmierter Teil der Bestellfunktion:

    --------------------------------------------------------------------------

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Console_probe
    {
    class Program
    {
    static void Main(string[] args)
    {

    int befehl2, i, anzahl, piz, Pizza;
    double[] Preis ={ 12.9, 6.7, 11.2, 6.0, 11.0, 5.9, 10.7, 5.6, 9.1, 5.1 }; /* Preisliste*/
    double bestellnummer;

    Console.WriteLine("Bestellmöglichkeiten: Preis: Klein Groß\n---------------------\n Pizza Kentucky (Salami), (011) 5,10 (012) 9,10\n Pizza Tonno (Thunfisch,Zwiebeln), (021) 5,60 (022) 10,70\n Pizza Hawai (Hinterschinken,Ananas), (031) 5,90 (032) 11,00\n Pizza Fungi (Hinterschinken,Pilze), (041) 6,00 (042) 11,20\n Pizza Long Beach (Meeresfrüchte), (051) 6,70 (052) 12,90");

    Console.Write("\n\nGeben Sie die Anzahl der Pizzen ein : ");
    anzahl = Convert.ToInt32(Console.ReadLine());
    for (i = 1; i <= anzahl; i++)
    {

    Console.Write("\n\nGeben Sie bitte Ihre Bestellung ein : ");
    bestellnummer = Convert.ToDouble(Console.ReadLine());

    if (bestellnummer == 011)
    piz = 10;
    else if (bestellnummer == 012)
    piz = 9;
    else if (bestellnummer == 021)
    piz = 8;
    else if (bestellnummer == 022)
    piz = 7;
    else if (bestellnummer == 031)
    piz = 6;
    else if (bestellnummer == 032)
    piz = 5;
    else if (bestellnummer == 041)
    piz = 4;
    else if (bestellnummer == 042)
    piz = 3;
    else if (bestellnummer == 051)
    piz = 2;
    else if (bestellnummer == 052)
    piz = 1;
    else Console.WriteLine("Diese Nummer existiert nicht in der Menükarte /nBitte gebn Sie ihre Bestellung erneut auf.../n");

    Console.WriteLine("Der Gesamtpreis lautet:");

    }
    Console.ReadLine();
    }

    }
    }

    ------------------------------------------------------------

    mein Problem ist auch, dass wenn ich ne falsche Nummer eingebe, entweder das Programm abbricht oder abstürzt oder zwar die Fehlermeldung erscheint, aber die Bestellung nicht fortgesetzt werden kann...

    Wo liegt mein verdammter Fehler und welche Funktion fehlt mir...

    wenn ihr irgendwelche ähnlichen Beispiele Rumliegen habt, dann schickt die mir bitte....bin für jeden Rat dankbar... Vielen Dank

    Masupilamhi



  • Alle Sequenz wie

    Convert.To .....

    werfen eine Exception wenn Sie es nicht schaffen eine übergebene Zeichenkette
    unzuwandeln in einen numerischen Typ!

    d.h.

    Um die Converts eine Try/Catch in Verbindung mit einer Schlefie drumrumbauen.
    Und das überall wo Du die Consoleneigaben des User entgegennehme willst per
    Coonsole.ReadLine();

    bool Fehler = false;
    do
    {
    
       try
       {
    
          Bestellnummer = Convert.ToInt(.....);
          Fehler = false;
       }
       catch(SystemException ex)
       {
           Fehler = true;
       }
    
    }while(Fehler == true);
    


  • Seid wann ist sowas 012 einem Double-Objekt zuweissbar.

    Befasse Dich bitte mal mit den Grundlagen, damit die Frustration Dir nicht komplette den Nerv
    für Programmierung nimmt! Und zwar mit Grundlagen über:

    Datentypen und Fehlerbehandlung

    zu C#

    Gruss sclearscreen



  • Schau Dir mal int.TryParse(...) an.



  • Hey, erstmal vielen Dank euch beiden für eure schnellen Antworten zu meinem Thread.
    Das mit dem Double was die Preisliste betrifft ist doch aber richtig. ich hatte ein beispielprogramm wo es ebenso gemacht wurde.

    das double vor der "bestellnummer" ist nur ein überbleibsel von mehreren Versuchen...

    Wenn ich das richtig gesehen habe, hast du in deiner ersten Antwort beschreiben, wie man den Abbruch bei Fehlereingabe korigiert und das Programm solange "warten" lässt, bis eine Gültige eingabe erfolgt ist?!?´

    Mein größtes Problem ist aber noch immer, dass ich nicht weiß, wie ich solange Bestellnummern eingebe und der Rechner solange weiter zur Bestellnummerneingabe auffordert bis das Feld leer bleibt...ich steck total fest....

    und das wichtigste kommt ja danach erst: Er muss, nachdem das Eingabefeld leer geblieben ist, die komplette Bestellung wieder auflisten und den Gesamtpreis berechnen, sowie der zuvor eingegebenen Kundennummer zuweisen...

    Ich beschäftige mich bereits seit circa 6 Wochen damit und ich mach auch kleine aber feine Fortschritte, jedoch reichen meine kleinen Schritte nicht aus, um ein solches Programm entwerfen zu können...

    ich hoffe, jemand hat ein Beispiel für mich!!!!

    Vielen Dank @ all und an diejenigen ganz besonders, die bisher geschrieben haben...

    masu



  • masu schrieb:

    Wenn ich das richtig gesehen habe, hast du in deiner ersten Antwort beschreiben, wie man den Abbruch bei Fehlereingabe korigiert und das Programm solange "warten" lässt, bis eine Gültige eingabe erfolgt ist?!?
    ich hoffe, jemand hat ein Beispiel für mich!!!!
    masu

    Richtig

    masu schrieb:

    Mein größtes Problem ist aber noch immer, dass ich nicht weiß, wie ich solange Bestellnummern eingebe und der Rechner solange weiter zur Bestellnummerneingabe auffordert bis das Feld leer bleibt...ich steck total fest....

    Dann baut man noch eine Schleife um Alles! Und vor dem Einstige in diese Schleife fragt man ab wieviele Bestellungen gebraucht werden.
    Diese äusserre Schleife dient dann dazu solange zu laufen wieviele Bestellungen gebracht werden.

    Gruss sclearscreen



  • Achja wenn die Bestellung abgrbrochen werden soll und angezeigt werden soll was alles bestellt wurde,
    geht sowas nicht:

    Bestellnummer = Convert.ToInt(.....);
    

    weil die Variable niemals leer ist bzw. Du brauchst ja eine leere Zeichenkette eine leere Zeichenkette als Abbruch.

    Was macht man da man geht über eine Zwichenvariable vom Typ String!

    Über diese Variable kannst Du dann abprüfen ob man fertig ist mit der Eingabe

    if(best == "") // Mit Bestellungen fertig Bestell-Schleife abbrechen um alle 
                   // Bestellungen in einer Ausgabeschleife anzuzeigen
    

Anmelden zum Antworten