Oefening: code schrijven om nieuwe onzeAnimals-matrixgegevens te lezen en op te slaan
In deze oefening ontwikkelt u de validatielussen voor gegevensinvoer voor elk huisdierkenmerk en slaat u vervolgens de nieuwe ourAnimals matrixgegevens op. De gedetailleerde taken die u tijdens deze oefening hebt voltooid, zijn:
- Soorten lezen en valideren: bouw een lus en de binnenste codestructuur die wordt gebruikt om de diersoorten in te voeren en te valideren.
- Bouw huisdier-id: schrijf de code die gebruikmaakt van petCount en de naam van de soort om de petID-waarde samen te stellen.
- Leeftijd lezen en valideren: bouw een lus en de interne codestructuur die wordt gebruikt om de leeftijd van het huisdier in te voeren en te valideren.
- Fysieke beschrijving lezen en valideren: bouw een lus en de interne codestructuur die wordt gebruikt om een fysieke beschrijving van het huisdier in te voeren.
- Persoonlijkheidsbeschrijving lezen en valideren: bouw een lus en de interne codestructuur om de huisdierpersoonlijkheid in te voeren.
- Bijnaam lezen en valideren: bouw een lus en de interne codestructuur die wordt gebruikt om een bijnaam voor het huisdier in te voeren.
- Verificatietest: voer verificatietests uit voor de code die u in deze oefening ontwikkelt.
Belangrijk
U moet de vorige oefening in deze module voltooien voordat u deze oefening start.
Maak een lus om de diersoorten te lezen en te valideren
In deze taak maakt u een do lus die doorloopt totdat de gebruiker een geldige soortnaam invoert, ofwel hond of kat. U gebruikt de ongeldige tekenreeks readResult opnieuw om de Console.ReadLine() invoer vast te leggen. U gebruikt ook de animalSpecies tekenreeksvariabele die u hebt gebruikt bij het genereren van uw voorbeeldgegevens. U voegt een nieuwe Booleaanse variabele met de naam validEntry toe aan uw app. U gebruikt validEntry in een expressie die wordt geëvalueerd als afsluitcriteria voor uw do lus.
Zorg ervoor dat Visual Studio Code is geopend en dat uw Program.cs-bestand zichtbaar is in de editor.
Zoek de
while (anotherPet == "y" && petCount < maxPets)instructie en voeg vervolgens een lege coderegel toe aan het bovenste codeblok.Op de lege coderegel die u hebt gemaakt, voert u de volgende code in om
validEntryte declareren met een initiële waarde vanfalse.bool validEntry = false;Voer op de regel onder de verklaring van
validEntry, om eendolus te maken voor soortgegevensinvoer de volgende code in:// get species (cat or dog) - string animalSpecies is a required field do { } while (validEntry == false);Voer in het codeblok van uw
doinstructie de volgende code in om een weergaveprompt te maken en de gebruikersinvoer te lezen:Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry"); readResult = Console.ReadLine();Voer de volgende code in om ervoor te zorgen dat de waarde
readResultniet null is voordat u de waarde toewijstreadResultanimalSpecies:if (readResult != null) { animalSpecies = readResult.ToLower(); }Voer op de regel onder de
animalSpecieswaardetoewijzing de volgende code in om ervoor te zorgen dat dezeanimalSpecieseen geldige soortnaam bevat:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }Vergelijk je voltooide invoerlus voor gegevensinvoer van soortnamen met de volgende code:
// get species (cat or dog) - string animalSpecies is a required field do { Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry"); readResult = Console.ReadLine(); if (readResult != null) { animalSpecies = readResult.ToLower(); if (animalSpecies != "dog" && animalSpecies != "cat") { //Console.WriteLine($"You entered: {animalSpecies}."); validEntry = false; } else { validEntry = true; } } } while (validEntry == false);Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
De waarde van de dier-id samenstellen
In deze taak gebruikt u de animalSpecies en petCount variabelen om de waarde te maken waaraan u toewijst animalID.
Voeg een lege regel toe onder het codeblok van uw soortnaamgegevensinvoerlus.
Voer de volgende code in om de
animalIDwaarde te maken en toe te wijzen:// build the animal the ID number - for example C1, C2, D3 (for Cat 1, Cat 2, Dog 3) animalID = animalSpecies.Substring(0, 1) + (petCount + 1).ToString();Selecteer Opslaan in het menu Visual Studio Code File.
Maak een lus om de leeftijd van het huisdier te lezen en te valideren.
In deze taak maakt u een do lus die doorloopt totdat de gebruiker een ? of een geldig geheel getal invoert dat de leeftijd van het huisdier in jaren aangeeft. U gebruikt de ongeldige tekenreeks readResult opnieuw om de Console.ReadLine() invoer vast te leggen. U gebruikt ook de animalAge tekenreeksvariabele die u hebt gebruikt bij het genereren van de voorbeeldgegevens. Als u wilt testen of de animalAge tekenreeks een geldig geheel getal vertegenwoordigt, gebruikt u de validEntry Booleaanse waarde. U declareert een nieuwe geheel getalvariabele met de naam petAge om de numerieke waarde op te slaan. Opnieuw wordt de validEntry Booleaanse waarde gebruikt in de expressie die wordt geëvalueerd als afsluitcriteria voor onze do lus.
Voeg een lege coderegel toe onder de regel die wordt gebruikt om een waarde toe te wijzen aan onze
animalIDvariabele.Voer de volgende code in om een
dolus te maken voor leeftijdsgegevensinvoer:// get the pet's age. can be ? at initial entry. do { } while (validEntry == false);Voer in het codeblok van uw
doinstructie de volgende code in om een geheel getalvariabele met de naampetAgete declareren:int petAge;Voer de volgende code in op de regel onder de declaratie van
petAgeom een berichtprompt weer te geven en de invoer van de gebruiker te lezen.Console.WriteLine("Enter the pet's age or enter ? if unknown"); readResult = Console.ReadLine();Voer de volgende code in om ervoor te zorgen dat de waarde van
readResultniet null is voordat u de waarde toewijstreadResultanimalAge:if (readResult != null) { animalAge = readResult; }Voer op de regel onder de
animalAgewaardetoewijzing de volgende code in?om te controleren of de gebruiker vóór het testen van een geldig geheel getal de volgende code invoert:if (animalAge != "?") { validEntry = int.TryParse(animalAge, out petAge); } else { validEntry = true; }Vergelijk uw voltooide leeftijdsgegevensinvoerlus met de volgende code.
// get the pet's age. can be ? at initial entry. do { int petAge; Console.WriteLine("Enter the pet's age or enter ? if unknown"); readResult = Console.ReadLine(); if (readResult != null) { animalAge = readResult; if (animalAge != "?") { validEntry = int.TryParse(animalAge, out petAge); } else { validEntry = true; } } } while (validEntry == false);Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
Maak een loop om de fysieke beschrijving van het huisdier te lezen en te valideren
In deze taak maakt u een do lus die doorloopt totdat de gebruiker een tekenreekswaarde invoert die een fysieke beschrijving van een huisdier vertegenwoordigt. U gebruikt de ongeldige tekenreeks readResult opnieuw om de Console.ReadLine() invoer vast te leggen. U gebruikt ook de animalPhysicalDescription tekenreeksvariabele die u hebt gebruikt bij het genereren van de voorbeeldgegevens. U gebruikt de waarde die is toegewezen aan animalPhysicalDescription in de uitdrukking die wordt geëvalueerd als beëindigingscriteria voor de do-lus.
Voeg een lege coderegel toe onder het codeblok van je leeftijd-invoerlus.
Voer de volgende code in om een
dolus te maken voor het invoeren van fysieke beschrijvingsgegevens:// get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank. do { } while (animalPhysicalDescription == "");Voer in het codeblok van uw
doinstructie de volgende code in om een weergaveprompt te maken en de gebruikersinvoer te lezen:Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)"); readResult = Console.ReadLine();Voer de volgende code in om ervoor te zorgen dat de waarde van
readResultniet null is voordat u de waarde toewijstreadResultanimalPhysicalDescription:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }Als u een waarde wilt toewijzen aan
"tbd"animalPhysicalDescriptionwanneer de ingevoerde waarde is"", voert u de volgende code in:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }Vergelijk de voltooide fysieke data-invoerloop met de volgende code:
// get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank. do { Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)"); readResult = Console.ReadLine(); if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; } } } while (animalPhysicalDescription == "");Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
Maak een lus om de persoonlijkheidsbeschrijving van het huisdier te lezen en te valideren.
In deze taak maakt u een do lus die doorloopt totdat de gebruiker een tekenreekswaarde invoert die een beschrijving van de persoonlijkheid van een huisdier vertegenwoordigt. U gebruikt de ongeldige tekenreeks readResult opnieuw om de Console.ReadLine() invoer vast te leggen. U gebruikt ook de animalPersonalityDescription tekenreeksvariabele die u hebt gebruikt bij het genereren van de voorbeeldgegevens. U gebruikt de waarde die is toegewezen aan animalPersonalityDescription in de uitdrukking die wordt geëvalueerd als beëindigingscriteria voor de do-lus.
Voeg een lege coderegel toe onder het codeblok van de gegevensinvoerlus van uw fysieke beschrijving.
Voer de volgende code in om een
dolus te maken voor de gegevensinvoer van de persoonlijkheidsbeschrijving:// get a description of the pet's personality - animalPersonalityDescription can be blank. do { } while (animalPersonalityDescription == "");Voer in het codeblok van uw
doinstructie de volgende code in om een weergaveprompt te maken en de gebruikersinvoer te lezen:Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)"); readResult = Console.ReadLine();Voer de volgende code in om ervoor te zorgen dat de waarde van
readResultniet null is voordat u de waarde toewijstreadResultanimalPersonalityDescription:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }Als u een waarde wilt toewijzen aan
"tbd"animalPersonalityDescriptionwanneer de ingevoerde waarde is"", voert u de volgende code in:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }Vergelijk de gegevensinvoerlus van uw voltooide persoonlijkheidsbeschrijving met de volgende code:
// get a description of the pet's personality - animalPersonalityDescription can be blank. do { Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)"); readResult = Console.ReadLine(); if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; } } } while (animalPersonalityDescription == "");Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
Bouw een lus om de bijnaam van het huisdier te lezen en te valideren.
In deze taak maakt u een do lus die doorloopt totdat de gebruiker een tekenreekswaarde invoert die een bijnaam voor een huisdier vertegenwoordigt. U gebruikt de ongeldige tekenreeks readResult opnieuw om de Console.ReadLine() invoer vast te leggen. U gebruikt ook de animalNickname tekenreeksvariabele die u hebt gebruikt bij het genereren van de voorbeeldgegevens. U gebruikt de waarde die is toegewezen aan animalNickname in de uitdrukking die wordt geëvalueerd als beëindigingscriteria voor de do-lus.
Voeg een lege coderegel toe onder het codeblok van de gegevensinvoerlus van uw persoonlijkheidsbeschrijving.
Voer de volgende code in om een
dolus te maken voor de gegevensinvoer van de persoonlijkheidsbeschrijving:// get the pet's nickname. animalNickname can be blank. do { } while (animalNickname == "");Voer in het codeblok van uw
doinstructie de volgende code in om een weergaveprompt te maken en de gebruikersinvoer te lezen:Console.WriteLine("Enter a nickname for the pet"); readResult = Console.ReadLine();Voer de volgende code in om ervoor te zorgen dat de waarde van
readResultniet null is voordat u de waarde toewijstreadResultanimalNickname:if (readResult != null) { animalNickname = readResult.ToLower(); }Als u een waarde wilt toewijzen aan
"tbd"animalNicknamewanneer de ingevoerde waarde is"", voert u de volgende code in:if (animalNickname == "") { animalNickname = "tbd"; }Vergelijk uw voltooide bijnaamgegevensinvoerlus met de volgende code:
// get the pet's nickname. animalNickname can be blank. do { Console.WriteLine("Enter a nickname for the pet"); readResult = Console.ReadLine(); if (readResult != null) { animalNickname = readResult.ToLower(); if (animalNickname == "") { animalNickname = "tbd"; } } } while (animalNickname == "");Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
De nieuwe huisdiergegevens opslaan
In deze taak slaat u de waarden op die zijn ingevoerd voor de kenmerken van huisdieren in de ourAnimals matrix.
Voeg een lege coderegel toe onder het codeblok van uw bijnaamgegevensinvoerlus.
Voer de volgende code in om de gegevenswaarden op te slaan die door de gebruiker zijn opgegeven:
// store the pet information in the ourAnimals array (zero based) ourAnimals[petCount, 0] = "ID #: " + animalID; ourAnimals[petCount, 1] = "Species: " + animalSpecies; ourAnimals[petCount, 2] = "Age: " + animalAge; ourAnimals[petCount, 3] = "Nickname: " + animalNickname; ourAnimals[petCount, 4] = "Physical description: " + animalPhysicalDescription; ourAnimals[petCount, 5] = "Personality: " + animalPersonalityDescription;Selecteer Opslaan in het menu Visual Studio Code File.
Open het deelvenster Integrated Terminal in Visual Studio Code en voer de opdracht in om uw programma te bouwen.
Als er buildfouten of waarschuwingen zijn gerapporteerd, lost u de problemen op voordat u doorgaat.
Controleer uw werk
In deze taak voert u uw toepassing uit vanuit de Integrated Terminal en controleert u of de invoer van huisdiergegevens correct werkt.
Open zo nodig het geïntegreerde terminalpaneel van Visual Studio Code.
Voer bij de Terminal-opdrachtprompt dotnet run in.
Voer bij de Terminal-opdrachtprompt 2 in
Controleer of het deelvenster Terminal is bijgewerkt om de volgende uitvoer weer te geven:
We currently have 4 pets that need homes. We can manage 4 more. Enter 'dog' or 'cat' to begin a new entryVoer de volgende waarden in bij de Terminal-opdrachtprompts en controleer of elke volgende prompt wordt weergegeven:
- Voer bij de
Enter 'dog' or 'cat' to begin a new entryprompt een hond in - Voer
Enter the pet's age or enter ? if unknownin op de -prompt. - Druk bij de
Enter a physical description of the pet (size, color, gender, weight, housebroken)prompt op Enter. - Druk bij de
Enter a description of the pet's personality (likes or dislikes, tricks, energy level)prompt op Enter. - Druk bij de
Enter a nickname for the petprompt op Enter.
Het terminalpaneel moet als volgt worden bijgewerkt:
Enter 'dog' or 'cat' to begin a new entry dog Enter the pet's age or enter ? if unknown ? Enter a physical description of the pet (size, color, gender, weight, housebroken) Enter a description of the pet's personality (likes or dislikes, tricks, energy level) Enter a nickname for the pet Do you want to enter info for another pet (y/n)- Voer bij de
Voer n in bij de terminalopdrachtprompt
Controleer of het terminalvenster is bijgewerkt om de opties in het hoofdmenu weer te geven.
Voer bij de terminalopdrachtprompt 1 in
Controleer of het deelvenster Terminal is bijgewerkt om de volgende uitvoer weer te geven:
ID #: d1 Species: dog Age: 2 Nickname: lola Physical description: medium sized cream colored female golden retriever weighing about 65 pounds. housebroken. Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses. ID #: d2 Species: dog Age: 9 Nickname: loki 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. ID #: c3 Species: cat Age: 1 Nickname: Puss Physical description: small white female weighing about 8 pounds. litter box trained. Personality: friendly ID #: c4 Species: cat Age: ? Nickname: Physical description: Personality: ID #: d5 Species: dog Age: ? Nickname: tbd Physical description: tbd Personality: tbd Press the Enter key to continueAls uw zojuist toegevoegde huisdiergegevens niet worden weergegeven, controleert u of u de coderegels hebt opgenomen om de gegevens op te slaan in de matrixAnimals en controleert u of u de coderegel hebt opgenomen om de petID te maken.
Controleer of u aanvullende dierbeschrijvingen voor honden en katten kunt maken en of de kenmerken van dieren in de
ourAnimalsmatrix worden opgeslagen.Sluit de toepassing en sluit vervolgens het terminalpaneel.
Gefeliciteerd met het voltooien van dit begeleide project! U hebt een toepassing gemaakt die selectie- en iteratie-instructies combineert om uw toepassingsontwerpdoelen te bereiken. Uw toepassing bevat meer dan 300 regels en voert taken uit die u in een professionele toepassing kunt vinden. Het voltooien van dit project vertegenwoordigt een aanzienlijke prestatie. Blijf zo doorgaan!