Übung: Hinzufügen vorgeschlagener Spendendaten
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.
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 = "";Erstellen Sie die
suggestedDonation-Variable unterhalb der Deklaration füranimalNickname.Die Deklaration für
suggestedDonationwird mit dem folgenden Code hinzugefügt:string suggestedDonation = "";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 neuensuggestedDonation-Daten.Aktualisieren Sie das
ourAnimals-Array, um anstelle von6„Spalten“ jetzt für jedes Haustier7Spalten zu berücksichtigen.Die folgende Zeile zeigt den geänderten Code:
string[,] ourAnimals = new string[maxPets,7];Sie haben das
ourAnimalsArray erweitert, um die hinzugefügtensuggestedDonationDaten zu unterstützen.
Hinzufügen von suggestedDonation-Werten zu den Beispieldaten
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 dieanimalNickname-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;Fügen Sie einen
suggestedDonation-Wert über derbreak-Anweisung fürcase 0;bisdefault: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;- case 0:
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;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.
Fügen Sie vor Kommentar „#5“ am Ende des Codeblocks den Code hinzu, um zu überprüfen, ob
suggestedDonationin 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
suggestedDonationVariable nicht als einedecimalUmwandlung erfolgen kann, weist der Code einen StandardwertdecimalDonation = 45.00m;zu. Wenn die Umwandlung erfolgreich ist, wirddecimalDonationvonTryParseaufgefüllt. In beiden Fällen stelltdecimalDonationeine endliche Dezimalzahl dar.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 optionsBeachten Sie, dass die Validierung immer noch nicht funktioniert.
decimalDonationmuss für die Verwendung im Code deklariert werden.Nun müssen Sie
decimalDonationnachstring menuSelection = "";unter dem Kommentar „#2“ deklarieren:decimal decimalDonation = 0.00m;Schließlich können Sie
suggestedDonation-Daten für jedes Haustier auffüllen.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.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 vonTryParse()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 optionsBeachten Sie, dass mithilfe des Codes
{decimalDonation:C2}die vorgeschlagene Spende vondecimalDonationmit dem lokalen Währungssymbol und zwei Dezimalstellen angezeigt wird, wie durch die Währungsformatierung:C2angegeben.
Ü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.
Sehen Sie sich den Code unter Kommentar „#5“ für die Menüschleife in
case 1an.Die innere Schleife
for (int j = 0; j <6; j++), die die Merkmale der Haustiere ausgibt, muss die hinzugefügtensuggestedDonation-Daten enthalten.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:
Der Code wird ohne Fehler kompiliert.
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.
Wählen Sie im Menü "Visual Studio Code-Datei " die Option "Speichern" aus.
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.
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 buildunddotnet run). Der Befehldotnet buildkompiliert 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 runBefehle an einem Ordnerspeicherort auszuführen, der die Dateien nicht enthält, generieren die Befehle Fehlermeldungen.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 buildSchritte unddotnet runSchritte, wenn Sie Ihren Code in den Übungen testen müssen, die in diesem Modul ausgeführt werden.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: ; expectedenthält.; expectedweist Sie darauf hin, dass Sie vergessen haben, am Ende einer Anweisung ein;einzufügen. Der TeilProgram.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 buildBefehl erneut ausführen. Fahren Sie fort, bis0 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.
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
1ein, um die Ausgabe zum Anzeigen aller Haustiere zu testen. - Geben Sie
2ein, 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.00Wenn 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.
- Geben Sie
Geben Sie
exitim App-Menü ein, um das Programm zu beenden, und schließen Sie dann das TERMINAL-Panel.