Oefening: code schrijven om nieuwe onzeAnimals-matrixgegevens te lezen en op te slaan

Voltooid

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:

  1. Soorten lezen en valideren: bouw een lus en de binnenste codestructuur die wordt gebruikt om de diersoorten in te voeren en te valideren.
  2. Bouw huisdier-id: schrijf de code die gebruikmaakt van petCount en de naam van de soort om de petID-waarde samen te stellen.
  3. 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.
  4. 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.
  5. Persoonlijkheidsbeschrijving lezen en valideren: bouw een lus en de interne codestructuur om de huisdierpersoonlijkheid in te voeren.
  6. Bijnaam lezen en valideren: bouw een lus en de interne codestructuur die wordt gebruikt om een bijnaam voor het huisdier in te voeren.
  7. 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.

  1. Zorg ervoor dat Visual Studio Code is geopend en dat uw Program.cs-bestand zichtbaar is in de editor.

  2. Zoek de while (anotherPet == "y" && petCount < maxPets) instructie en voeg vervolgens een lege coderegel toe aan het bovenste codeblok.

  3. Op de lege coderegel die u hebt gemaakt, voert u de volgende code in om validEntry te declareren met een initiële waarde van false.

    bool validEntry = false;
    
    
  4. Voer op de regel onder de verklaring van validEntry, om een do lus te maken voor soortgegevensinvoer de volgende code in:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. Voer in het codeblok van uw do instructie 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();
    
    
  6. Voer de volgende code in om ervoor te zorgen dat de waarde readResult niet null is voordat u de waarde toewijst readResultanimalSpecies:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. Voer op de regel onder de animalSpecies waardetoewijzing de volgende code in om ervoor te zorgen dat deze animalSpecies een geldige soortnaam bevat:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. 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);
    
  9. Selecteer Opslaan in het menu Visual Studio Code File.

  10. 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.

  1. Voeg een lege regel toe onder het codeblok van uw soortnaamgegevensinvoerlus.

  2. Voer de volgende code in om de animalID waarde 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();
    
    
  3. 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.

  1. Voeg een lege coderegel toe onder de regel die wordt gebruikt om een waarde toe te wijzen aan onze animalID variabele.

  2. Voer de volgende code in om een do lus te maken voor leeftijdsgegevensinvoer:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. Voer in het codeblok van uw do instructie de volgende code in om een geheel getalvariabele met de naam petAgete declareren:

    int petAge;
    
    
  4. Voer de volgende code in op de regel onder de declaratie van petAge om 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();
    
    
  5. Voer de volgende code in om ervoor te zorgen dat de waarde van readResult niet null is voordat u de waarde toewijst readResultanimalAge:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. Voer op de regel onder de animalAge waardetoewijzing 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;
    }
    
  7. 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);
    
  8. Selecteer Opslaan in het menu Visual Studio Code File.

  9. 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.

  1. Voeg een lege coderegel toe onder het codeblok van je leeftijd-invoerlus.

  2. Voer de volgende code in om een do lus 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 == "");
    
    
  3. Voer in het codeblok van uw do instructie 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();
    
    
  4. Voer de volgende code in om ervoor te zorgen dat de waarde van readResult niet null is voordat u de waarde toewijst readResultanimalPhysicalDescription:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Als u een waarde wilt toewijzen aan "tbd"animalPhysicalDescription wanneer de ingevoerde waarde is "", voert u de volgende code in:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. 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 == "");
    
  7. Selecteer Opslaan in het menu Visual Studio Code File.

  8. 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.

  1. Voeg een lege coderegel toe onder het codeblok van de gegevensinvoerlus van uw fysieke beschrijving.

  2. Voer de volgende code in om een do lus te maken voor de gegevensinvoer van de persoonlijkheidsbeschrijving:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. Voer in het codeblok van uw do instructie 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();
    
    
  4. Voer de volgende code in om ervoor te zorgen dat de waarde van readResult niet null is voordat u de waarde toewijst readResultanimalPersonalityDescription:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Als u een waarde wilt toewijzen aan "tbd"animalPersonalityDescription wanneer de ingevoerde waarde is "", voert u de volgende code in:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. 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 == "");
    
  7. Selecteer Opslaan in het menu Visual Studio Code File.

  8. 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.

  1. Voeg een lege coderegel toe onder het codeblok van de gegevensinvoerlus van uw persoonlijkheidsbeschrijving.

  2. Voer de volgende code in om een do lus te maken voor de gegevensinvoer van de persoonlijkheidsbeschrijving:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. Voer in het codeblok van uw do instructie 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();
    
    
  4. Voer de volgende code in om ervoor te zorgen dat de waarde van readResult niet null is voordat u de waarde toewijst readResultanimalNickname:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Als u een waarde wilt toewijzen aan "tbd"animalNickname wanneer de ingevoerde waarde is "", voert u de volgende code in:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. 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 == "");
    
  7. Selecteer Opslaan in het menu Visual Studio Code File.

  8. 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.

  1. Voeg een lege coderegel toe onder het codeblok van uw bijnaamgegevensinvoerlus.

  2. 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;
    
  3. Selecteer Opslaan in het menu Visual Studio Code File.

  4. 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.

  1. Open zo nodig het geïntegreerde terminalpaneel van Visual Studio Code.

  2. Voer bij de Terminal-opdrachtprompt dotnet run in.

  3. Voer bij de Terminal-opdrachtprompt 2 in

  4. 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 entry
    
  5. Voer 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 entry prompt een hond in
    • Voer Enter the pet's age or enter ? if unknown in 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 pet prompt 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)
    
  6. Voer n in bij de terminalopdrachtprompt

  7. Controleer of het terminalvenster is bijgewerkt om de opties in het hoofdmenu weer te geven.

  8. Voer bij de terminalopdrachtprompt 1 in

  9. 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 continue
    

    Als 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.

  10. Controleer of u aanvullende dierbeschrijvingen voor honden en katten kunt maken en of de kenmerken van dieren in de ourAnimals matrix worden opgeslagen.

  11. 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!