Übung: Hinzufügen vorgeschlagener Spendendaten

Abgeschlossen

In diesem Schritt des Entwicklungsprozesses ändern Sie den im Projektordner „Starter“ bereitgestellten Code und fügen der Anwendung Suggested Donation-Features hinzu. Die Starterdatei „project.cs“ sollte in Visual Studio Code geöffnet sein. Kehren Sie zur vorherigen vorbereitenden Lerneinheit zurück, wenn Sie Anweisungen für die ersten Schritte benötigen.

Erstellen der Suggested Donation-Features

Die hinzugefügten Features für Spenden erfordern, dass Sie eine suggestedDonation-Variable erstellen und das ourAnimals-Array erweitern, um die neuen Spendendaten zu berücksichtigen. Außerdem müssen Sie die vorgeschlagenen Spendenbeträge für jedes Tier hinzufügen und einen Standardbetrag implementieren, wenn die vorgeschlagenen Spendeninformationen fehlen.

Hinzufügen der Unterstützung für suggestedDonation-Daten

Sie müssen eine neue Variable erstellen, um die vorgeschlagenen Spenden einzuschließen. Zudem müssen Sie das ourAnimals-Array erweitern, damit die neuen Daten berücksichtigt werden können.

  1. Beachten Sie den Code unter dem Kommentar „#1“, der Variablen deklariert, die zum Auffüllen des ourAnimals-Arrays für jedes Tier verwendet werden.

    Sie müssen ein weiteres string-Element für die vorgeschlagenen Spendendaten deklarieren.

    // #1 the ourAnimals array will store the following: 
    string animalSpecies = "";
    string animalID = "";
    string animalAge = "";
    string animalPhysicalDescription = "";
    string animalPersonalityDescription = "";
    string animalNickname = "";
    
  2. Erstellen Sie die suggestedDonation-Variable unterhalb der Deklaration für animalNickname.

    Die Deklaration für suggestedDonation wird mit dem folgenden Code hinzugefügt:

    string suggestedDonation = "";
    
  3. Suchen Sie den Code zum Erstellen des ourAnimals-Arrays nach dem Kommentar „#3“.

    Mit der folgenden Codezeile wird das Array erstellt:

    string[,] ourAnimals = new string[maxPets, 6];

    Die Größen, die die beiden Dimensionen des Arrays definieren, sind die maximale Anzahl von Haustieren (maxPets) und die Anzahl (6) der ursprünglich definierten sechs Zeichenfolgen, jedoch ohne Platz für die neuen suggestedDonation-Daten.

  4. Aktualisieren Sie das ourAnimals-Array, um anstelle von 6 „Spalten“ jetzt für jedes Haustier 7 Spalten zu berücksichtigen.

    Die folgende Zeile zeigt den geänderten Code:

    string[,] ourAnimals = new string[maxPets, 7];

    Sie haben das ourAnimals Array erweitert, um die hinzugefügten suggestedDonation Daten zu unterstützen.

Hinzufügen von suggestedDonation-Werten zu den Beispieldaten

  1. Nehmen Sie sich kurz Zeit, um case 0: in der switch-Anweisung nach Kommentar „#4“ zu überprüfen.

    Der folgende Code definiert Beispieldaten für das erste Haustier, bevor die suggestedDonation-Daten erstellt werden. Er würde perfekt unter die animalNickname-Zeile passen.

        case 0:
            animalSpecies = "dog";
            animalID = "d1";
            animalAge = "2";
            animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
            animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
            animalNickname = "lola";
            break;
    
  2. Fügen Sie einen suggestedDonation-Wert über der break-Anweisung für case 0; bis default: mit den folgenden Werten ein:

    • case 0: suggestedDonation = "85.00";
    • case 1: suggestedDonation = "49.99";
    • case 2: suggestedDonation = "40.00";
    • case 3: suggestedDonation = "";
    • Standard: suggestedDonation = "";

    Der folgende Code zeigt case 0:-Code mit dem Zusatz „suggestedDonation“:

        case 0:
            animalSpecies = "dog";
            animalID = "d1";
            animalAge = "2";
            animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
            animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
            animalNickname = "lola";
            suggestedDonation = "85.00";
            break;
    
  3. Suchen Sie in der project.cs-Datei nach dem folgenden Array, das mit den Haustierdaten aus case-Anweisungen aufgefüllt ist (kurz vor Kommentar „#5“):

        ourAnimals[i, 0] = "ID #: " + animalID;
        ourAnimals[i, 1] = "Species: " + animalSpecies;
        ourAnimals[i, 2] = "Age: " + animalAge;
        ourAnimals[i, 3] = "Nickname: " + animalNickname;
        ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription;
        ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;
    
  4. Beachten Sie, dass suggestedDonation-Daten nicht als Teil des Beispieldaten-Startercodes zum Auffüllen des Arrays enthalten sind.

    Es ist sinnvoll, das Array mit einer Anweisung wie der folgenden aufzufüllen:

    ourAnimals[i, 6] = "Suggested Donation: "  + suggestedDonation;
    

    Sie fügen diesen Code jedoch nicht hinzu. Im nächsten Abschnitt verwenden Sie einen anderen Ansatz.

Datenüberprüfung mit TryParse()

Die Variable suggestedDonation soll ein numerischer Wert sein, wird jedoch als string-Element erfasst und gespeichert. Berücksichtigen Sie zukünftige Fälle, in denen Sie überprüfen müssen, dass sie suggestedDonation eine Dezimalzahl darstellt, und dass Sie sie in eine Dezimalzahl konvertieren können, damit sie für Abrechnungsberechnungen verwendet werden kann. Um Fehler zu vermeiden, wenn Benutzer Zahlen im Textformat, wie twenty, eingeben, müssen Sie die Validierung TryParse verwenden.

Hinweis

Die Codebeispiele in dieser Übung basieren auf den Einstellungen für die Kultur „en-US“ und verwenden einen Punkt (.) als Dezimaltrennzeichen. Beim Erstellen und Ausführen des Codes mit einer Kultureinstellung, die ein anderes Dezimaltrennzeichen (z. B. ein Komma ,) verwendet, werden häufig unerwartete Ergebnisse oder Fehler zurückgegeben. Um dieses Problem zu beheben, ersetzen Sie die Punkt-Dezimaltrennzeichen in den Codebeispielen durch das lokale Dezimaltrennzeichen (z. B. ,). Wenn Sie ein Programm auch mit der Kultureinstellung en-US ausführen möchten, fügen Sie Folgendes am Anfang Ihres Programms hinzu: using System.Globalization;. Und fügen Sie using nach anderen CultureInfo.CurrentCulture = new CultureInfo("en-US");-Anweisungen hinzu.

  1. Fügen Sie vor Kommentar „#5“ am Ende des Codeblocks den Code hinzu, um zu überprüfen, ob suggestedDonation in einen Dezimalwert umgewandelt werden kann.

    Sie fügen den folgenden Code hinzu:

    if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
        decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
    }
    

    Wenn die suggestedDonation Variable nicht als eine decimalUmwandlung erfolgen kann, weist der Code einen Standardwert decimalDonation = 45.00m;zu. Wenn die Umwandlung erfolgreich ist, wird decimalDonation von TryParse aufgefüllt. In beiden Fällen stellt decimalDonation eine endliche Dezimalzahl dar.

  2. Stellen Sie sicher, dass sich Ihr Validierungscode an der richtigen Stelle befindet.

    Die beiden hinzugefügten Zeilen sollten im folgenden Code als die ersten beiden Zeilen angezeigt werden:

        if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
            decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
        }
    }
    
    // #5 display the top-level menu options
    

    Beachten Sie, dass die Validierung immer noch nicht funktioniert. decimalDonation muss für die Verwendung im Code deklariert werden.

  3. Nun müssen Sie decimalDonation nach string menuSelection = ""; unter dem Kommentar „#2“ deklarieren:

    decimal decimalDonation = 0.00m;
    

    Schließlich können Sie suggestedDonation-Daten für jedes Haustier auffüllen.

  4. Fügen Sie über dem fünften Kommentar direkt nach der eckigen Klammer rechts (TryParse) für } den folgenden Code hinzu:

    ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";
    

    Sie haben die decimalDonation-Version der vorgeschlagenen Spendendaten verwendet. Außerdem haben Sie in der Ausgabe die Zeichenfolgeninterpolation und Währungsformatierung verwendet.

  5. Nehmen Sie sich kurz Zeit, um zu überprüfen, wie die vorgeschlagenen Spendendaten schließlich in das ourAnimals-Array gelangen.

    Mit dem folgenden Code wird das ourAnimals-Array im Kontext von TryParse() aufgefüllt:

    if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
        decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
        }
    ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";
    }
    
    // #5 display the top-level menu options
    

    Beachten Sie, dass mithilfe des Codes {decimalDonation:C2} die vorgeschlagene Spende von decimalDonation mit dem lokalen Währungssymbol und zwei Dezimalstellen angezeigt wird, wie durch die Währungsformatierung :C2 angegeben.

Überprüfen und Aktualisieren der Position des ourAnimals-Arrays

Das Hinzufügen der erstellten suggestedDonation-Daten erfordert weitere Änderungen. In der Menüoption "1. List all of our current pet information" fehlen die hinzugefügten Daten.

  1. Sehen Sie sich den Code unter Kommentar „#5“ für die Menüschleife in case 1 an.

    Die innere Schleife for (int j = 0; j < 6; j++), die die Merkmale der Haustiere ausgibt, muss die hinzugefügten suggestedDonation-Daten enthalten.

  2. Aktualisieren Sie die Beendigungsbedingung für den Code für die innere Schleife. Erhöht die Ausgangsbedingung um "1", so dass es wird j <7. Überprüfen Sie, ob Ihr Code dem folgenden Code entspricht:

    case "1":
    // list all pet info
    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine();
            for (int j = 0; j < 7; j++) // increased exit condition
            {
                Console.WriteLine(ourAnimals[i, j]);
            }
        }
    }
    

Übersicht über Tests

Nachdem Sie Ihrem Code einige Elemente hinzugefügt haben, müssen Sie überprüfen, ob der Code wie erwartet funktioniert. Die beiden wichtigen Testbereiche lauten wie folgt:

  1. Der Code wird ohne Fehler kompiliert.

  2. Beim Auswählen von Menüoption 1 werden alle Haustierinformationen angezeigt:

    • Die Ausgabe enthält alle Beispielinformationen für Haustiere (einschließlich ID, Art, Alter, Spitzname sowie Beschreibung der körperlichen Verfassung und des Charakters).
    • Für jedes Haustier wird die vorgeschlagene Spende mit einem Währungssymbol und zwei Dezimalstellen angezeigt.

Überprüfen Ihrer Arbeit

Kompilieren Sie den Code, und führen Sie ihn aus, um ihn zu testen. Führen Sie diese Schritte jedes Mal aus, wenn Sie Ihren Code testen müssen.

  1. Wählen Sie im Menü "Visual Studio Code-Datei " die Option "Speichern" aus.

  2. Klicken Sie in der EXPLORER-Ansicht mit der rechten Maustaste auf "Starter", und wählen Sie dann "In integriertem Terminal öffnen" aus.

    Unterhalb des Code-Editor-Bereichs sollte ein TERMINAL-Bereich geöffnet werden.

    Es gibt mehrere Möglichkeiten, das integrierte Terminal von Visual Studio Code zu öffnen. Beispielsweise bietet das obere Menü Zugriff auf den TERMINAL-Bereich sowohl über das Menü "Ansicht " als auch über das Terminalmenü . Außerdem sind Tastenkombinationen, die das TERMINAL-Panel öffnen, eine wertvolle Option, um ihre Codierungseffizienz zu erhöhen. Jede Methode kann verwendet werden.

  3. Beachten Sie, dass der TERMINAL-Bereich eine Befehlszeilen-Eingabeaufforderung enthält und diese Eingabeaufforderung den aktuellen Ordnerpfad anzeigt. Beispiel:

    C:\Users\someuser\Desktop\GuidedProject\Starter>
    

    Sie können den TERMINAL-Bereich verwenden, um Befehle der Befehlszeilenschnittstelle (CLI) auszuführen (z. B. dotnet build und dotnet run). Der Befehl dotnet build kompiliert Ihren Code und zeigt Fehler- und Warnmeldungen im Zusammenhang mit der Codesyntax an.

    Wichtig

    Sie müssen sicherstellen, dass die Terminal-Eingabeaufforderung im Stammverzeichnis Ihres Projektarbeitsbereichs geöffnet ist. In diesem Fall ist das Stammverzeichnis des Projektarbeitsbereichs der Ordner „Starter“, in dem sich die Dateien „Starter.csproj“ und „Program.cs“ befinden. Wenn Sie Befehle im Terminal ausführen, versuchen die Befehle, Aktionen mithilfe des aktuellen Ordnerspeicherorts auszuführen. Wenn Sie versuchen, die dotnet builddotnet run Befehle an einem Ordnerspeicherort auszuführen, der die Dateien nicht enthält, generieren die Befehle Fehlermeldungen.

  4. Geben Sie in der TERMINAL-Eingabeaufforderung den folgenden Befehl ein, um Ihren Projektcode zu kompilieren: dotnet build.

    Nach einigen Sekunden sollte eine Meldung angezeigt werden, dass Ihr Build erfolgreich war mit 0 Warnings and 0 Errors.

    Determining projects to restore...
    All projects are up-to-date for restore.
    Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net10.0\Starter.dll
    
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    

    Hinweis

    Verwenden Sie die vorherigen dotnet build Schritte und dotnet run Schritte, wenn Sie Ihren Code in den Übungen testen müssen, die in diesem Modul ausgeführt werden.

  5. Beheben Sie alle angezeigten Fehler- oder Warnmeldungen, bevor Sie fortfahren.

    Fehler- und Warnmeldungen geben die Codezeile an, in der das Problem gefunden wurde. Die folgende Meldung ist ein Beispiel für eine Build FAILED-Fehlermeldung:

    C:\Users\someuser\Desktop\GuidedProject\Starter\Program.cs(53,18): error CS1002: ; expected [C:\Users\someuser\Desktop\GuidedProject\Starter\Starter.csproj]

    Diese Meldung enthält Informationen zur Art des ermittelten Fehlers und dazu, wo dieser aufgetreten ist. In diesem Fall wird Ihnen mitgeteilt, dass die Datei „Program.cs“ den Fehler error CS1002: ; expected enthält. ; expected weist Sie darauf hin, dass Sie vergessen haben, am Ende einer Anweisung ein ; einzufügen. Der Teil Program.cs(53,18) der Meldung informiert Sie über die Stelle, an der der Fehler aufgetreten ist (Codezeile 53, von links aus 18 Zeichen nach rechts).

    Ein Syntaxfehler wie dieser verhindert, dass der Buildvorgang erfolgreich ausgeführt wird („Build FAILED“). Einige Buildnachrichten stellen eine "Warnung" anstelle eines "Fehlers" bereit, was bedeutet, dass es etwas zu bedenken gibt, aber Sie können versuchen, das Programm trotzdem auszuführen (Build erfolgreich).

    Nachdem Sie die Probleme behoben und Ihre Updates gespeichert haben, können Sie den dotnet build Befehl erneut ausführen. Fahren Sie fort, bis 0 Warning(s) and 0 Error(s) angezeigt wird.

    Wenn sie probleme mit der Lösung eines Problems alleine haben, überprüfen Sie den Program.cs Code im endgültigen Ordner, der im Download während des Setups enthalten ist. Der Program.cs Code im Endgültigen Ordner stellt den Abschluss aller Übungen in diesem Modul dar, sodass er Code enthält, den Sie noch nicht erstellt haben.

    Der Lösungscode sieht häufig anders aus als der Program.cs Code, den Sie zu diesem Zeitpunkt im Geführten Projekt entwickelt haben. Sie können jedoch den Program.cs Code im endgültigen Code untersuchen, um ein Problem in Ihrem Code zu isolieren und zu beheben.

    Verlassen Sie sich nicht auf den Lösungscode, während Sie Ihre eigene Lösung entwickeln. Denken Sie daran, dass Sie aus Fehlern lernen und alle Entwickler*innen Zeit dafür aufwenden müssen, Fehler zu finden und zu beheben.

  6. Testen Sie die aktualisierte Konsolen-App. Hierfür müssen Sie Ihren Projektcode mit einem Befehl an der TERMINAL-Eingabeaufforderung kompilieren und ausführen, indem Sie Folgendes eingeben: dotnet run. Wenn der Code ausgeführt wird, werden zwei Menüelemente angezeigt.

    • Geben Sie 1 ein, um die Ausgabe zum Anzeigen aller Haustiere zu testen.
    • Geben Sie 2 ein, um die Platzhaltermeldung „UNDER CONSTRUCTION“ zu testen.

    Die Ausgabe für Menüelement 1 sollte dem folgenden Beispiel weitestgehend entsprechen:

    ID #: d1
    Species: dog
    Age: 2
    Nickname: lola
    Physical description: medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.
    Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.
    Suggested Donation: $85.00
    
    ID #: d2
    Species: dog
    Age: 9
    Nickname: gus
    Physical description: large reddish-brown male golden retriever weighing about 85 pounds. housebroken.
    Personality: loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.
    Suggested Donation: $49.99
    
    ID #: c3
    Species: cat
    Age: 1
    Nickname: snow
    Physical description: small white female weighing about 8 pounds. litter box trained.
    Personality: friendly
    Suggested Donation: $40.00
    
    ID #: c4
    Species: cat
    Age:
    Nickname: lion
    Physical description:
    Personality:
    Suggested Donation: $45.00
    

    Wenn alles wie erwartet funktioniert hat: Glückwunsch! Suchen Sie andernfalls nach dem Fehler, indem Sie die entsprechenden Codeanweisungsschritte überprüfen. Beginnen Sie bei Bedarf mit einer neuen Project.cs-Starterdatei, und wenn weiterhin Probleme auftreten, überprüfen Sie den Lösungscode im Ordner für diese Übung.

  7. Geben Sie exit im App-Menü ein, um das Programm zu beenden, und schließen Sie dann das TERMINAL-Panel.