Övning – Skriva kod för att läsa och spara nya matrisdata för vårAnimals-matris

Fullbordad

I den här övningen utvecklar du valideringslooparna för datainmatning för varje husdjursegenskaper och lagrar sedan de nya ourAnimals matrisdata. De detaljerade uppgifter som du utför under den här övningen är:

  1. Läs och validera arter: skapa en slinga och den inre kodstrukturen som används för att ange och validera husdjursarterna.
  2. Konstruera husdjurs-ID: skriv koden som använder petCount och artnamnet för att konstruera värdet för petID.
  3. Läs och validera ålder: skapa en loop och den inre kodstrukturen som används för att ange och verifiera husdjurets ålder.
  4. Läs och validera fysisk beskrivning: skapa en loop och den inre kodstrukturen som används för att ange en fysisk beskrivning av husdjuret.
  5. Läs och validera personlighetsbeskrivning: skapa en loop och den inre kodstrukturen som används för att ange en beskrivning av husdjurets personlighet.
  6. Läs och validera smeknamn: skapa en loop och den inre kodstrukturen som används för att ange ett smeknamn för husdjuret.
  7. Verifieringstest: utför verifieringstester för den kod som du utvecklar i den här övningen.

Viktigt!

Du måste slutföra föregående övning i den här modulen innan du påbörjar den här övningen.

Skapa loop för att läsa och validera husdjursarterna

I den här uppgiften skapar du en do loop som itererar tills användaren anger ett giltigt artnamn, antingen hund eller katt. Du återanvänder den ogiltiga strängen readResultConsole.ReadLine() för att samla in indata. Du återanvänder också strängvariabeln animalSpecies som du använde när du genererade dina exempeldata. Du lägger till en ny boolesk variabel med namnet validEntry i din app. Du använder validEntry i ett uttryck som utvärderas som ett avslutsvillkor för din do loop.

  1. Kontrollera att Visual Studio Code är öppet och att filen Program.cs visas i redigeraren.

  2. Leta upp -instruktionen while (anotherPet == "y" && petCount < maxPets) och lägg sedan till en tom kodrad i det översta kodblocket.

  3. På den tomma kodraden som du skapade anger du följande kod för att deklarera validEntry med ett initialt värde false:

    bool validEntry = false;
    
    
  4. På raden under deklarationen av validEntryanger du följande kod för att skapa en do loop för inmatning av artdata:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. I kodblocket för din do-instruktion, för att skapa en visningsprompt och läsa användarens inmatning, ange följande kod:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. För att se till att värdet för readResult inte är null innan du tilldelar värdet för readResult till animalSpecies, anger du följande kod:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. På raden under värdetilldelningen animalSpecies anger du följande kod för att säkerställa att det animalSpecies innehåller ett giltigt artnamn:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. Jämför din fullständiga namn-inmatningsloop för arter med följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  10. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Konstruera djur-ID-värdet

I den här uppgiften använder du variablerna animalSpecies och petCount för att skapa värdet som du tilldelar till animalID.

  1. Lägg till en tom kodrad under kodblocket för datainmatningsloopen för artnamn.

  2. Om du vill skapa och tilldela animalID värdet anger du följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

Skapa loop för att läsa och verifiera husdjurets ålder

I den här uppgiften skapar du en do loop som itererar tills användaren anger antingen ett ? eller ett giltigt heltal som representerar husdjurets ålder i år. Du återanvänder den annullerbara strängen readResult för att fånga Console.ReadLine()-indata. Du kan också återanvända strängvariabeln animalAge som du använde när du genererade exempeldata. Om du vill testa om strängen animalAge representerar ett giltigt heltal använder du det validEntry booleska. Du deklarerar en ny heltalsvariabel med namnet petAge för att lagra det numeriska värdet. Återigen används det validEntry booleska i uttrycket som utvärderas som ett avslutsvillkor för vår do loop.

  1. Lägg till en tom kodrad under den rad som används för att tilldela ett värde till vår animalID variabel.

  2. Om du vill skapa en do loop för inmatning av åldersdata anger du följande kod:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. För att deklarera en heltalsvariabel med namnet do inuti kodblocket av ditt petAge-påstående, ange följande kod:

    int petAge;
    
    
  4. På raden under deklarationen av petAgeanger du följande kod för att visa en meddelandeprompt och läsa användarens indata:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. För att säkerställa att värdet av readResult inte är null innan du tilldelar värdet av readResult till animalAge, anger du följande kod:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. På raden under värdetilldelningen animalAge anger du följande kod för att kontrollera om användaren angav ? innan han testade ett giltigt heltal:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Jämför inmatningsloopen för slutförda åldersdata med följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  9. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Skapa loop för att läsa och verifiera husdjurets fysiska beskrivning

I den här uppgiften skapar du en do loop som itererar tills användaren anger ett strängvärde som representerar en fysisk beskrivning av ett husdjur. Du återanvänder den annullerbara strängen readResult för att fånga Console.ReadLine()-indata. Du kan också återanvända strängvariabeln animalPhysicalDescription som du använde när du genererade exempeldata. Du använder värdet som tilldelats animalPhysicalDescription i uttrycket som utvärderas som ett avslutsvillkor för vår do loop.

  1. Lägg till en tom kodrad under kodblocket för din åldersdatainmatningsloop.

  2. För att skapa en do-loop för dataregistrering av fysisk beskrivning, ange följande kod:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. I kodblocket för din do-instruktion, för att skapa en visningsprompt och läsa användarens inmatning, ange följande kod:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. För att säkerställa att värdet av readResult inte är null innan du tilldelar värdet av readResult till animalPhysicalDescription, anger du följande kod:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Om du vill tilldela värdet "tbd" till animalPhysicalDescription när det angivna värdet är ""anger du följande kod:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Jämför datainmatningsloopen för den färdiga fysiska beskrivningen med följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  8. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Skapa loop för att läsa och verifiera husdjurets personlighetsbeskrivning

I den här uppgiften skapar du en do loop som itererar tills användaren anger ett strängvärde som representerar en beskrivning av ett husdjurs personlighet. Du återanvänder den annullerbara strängen readResult för att fånga Console.ReadLine()-indata. Du kan också återanvända strängvariabeln animalPersonalityDescription som du använde när du genererade exempeldata. Du använder värdet som tilldelats animalPersonalityDescription i uttrycket som utvärderas som ett avslutsvillkor för vår do loop.

  1. Lägg till en tom kodrad under kodblocket i datainmatningsloopen för fysisk beskrivning.

  2. Om du vill skapa en do loop för datainmatning med personbeskrivningsdata anger du följande kod:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. I kodblocket för din do-instruktion, för att skapa en visningsprompt och läsa användarens inmatning, ange följande kod:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. För att säkerställa att värdet av readResult inte är null innan du tilldelar värdet av readResult till animalPersonalityDescription, anger du följande kod:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Om du vill tilldela värdet "tbd" till animalPersonalityDescription när det angivna värdet är ""anger du följande kod:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Jämför datainmatningsloopen för den slutförda personlighetsbeskrivningen med följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  8. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Skapa loop för att läsa och validera husdjurets smeknamn

I den här uppgiften skapar du en do loop som itererar tills användaren anger ett strängvärde som representerar ett smeknamn för ett husdjur. Du återanvänder den annullerbara strängen readResult för att fånga Console.ReadLine()-indata. Du kan också återanvända strängvariabeln animalNickname som du använde när du genererade exempeldata. Du använder värdet som tilldelats animalNickname i uttrycket som utvärderas som ett avslutsvillkor för vår do loop.

  1. Lägg till en tom kodrad under kodblocket i datainmatningsloopen för personlighetsbeskrivning.

  2. Om du vill skapa en do loop för datainmatning med personbeskrivningsdata anger du följande kod:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. I kodblocket för din do-instruktion, för att skapa en visningsprompt och läsa användarens inmatning, ange följande kod:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. För att säkerställa att värdet av readResult inte är null innan du tilldelar värdet av readResult till animalNickname, anger du följande kod:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Om du vill tilldela värdet "tbd" till animalNickname när det angivna värdet är ""anger du följande kod:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Jämför din slutförda smeknamnsdatainmatningsloop med följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  8. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Spara den nya husdjursinformationen

I den här uppgiften sparar du de värden som angetts för husdjursegenskaperna i matrisen ourAnimals .

  1. Lägg till en tom kodrad under kodblocket i datainmatningsloopen för ditt smeknamn.

  2. Om du vill lagra de datavärden som anges av användaren anger du följande kod:

    // 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. På menyn Visual Studio Code-fil väljer du Spara.

  4. Öppna panelen Integrerad terminal i Visual Studio Code och ange kommandot för att skapa programmet.

    Om några build-fel eller varningar rapporterades kan du åtgärda problemen innan du fortsätter.

Kontrollera ditt arbete

I den här uppgiften kör du applikationen från den integrerade terminalen och kontrollerar att husdjursdataregistreringen fungerar korrekt.

  1. Om det behövs öppnar du Visual Studio Codes integrerade terminalpanel.

  2. I kommandotolken i Terminal anger du dotnet run

  3. I kommandotolken i Terminal anger du 2

  4. Kontrollera att terminalpanelen har uppdaterats för att visa följande utdata:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. Ange följande värden i Terminal-kommandotolken och kontrollera att varje efterföljande fråga visas:

    • Vid uppmaningen Enter 'dog' or 'cat' to begin a new entry anger du hund
    • När du blir tillfrågad Enter the pet's age or enter ? if unknown, ange ?
    • Tryck på Returtangenten vid Enter a physical description of the pet (size, color, gender, weight, housebroken)-prompten.
    • Tryck på Returtangenten vid Enter a description of the pet's personality (likes or dislikes, tricks, energy level)-prompten.
    • Tryck på Returtangenten vid Enter a nickname for the pet-prompten.

    Terminalpanelen bör uppdateras på följande sätt:

    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. I kommandotolken i Terminal anger du n

  7. Kontrollera att terminalpanelen har uppdaterats för att visa huvudmenyalternativen.

  8. I kommandotolken i Terminal anger du 1

  9. Kontrollera att terminalpanelen har uppdaterats för att visa följande utdata:

    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
    

    Om din nyligen tillagda husdjursinformation inte visas kontrollerar du att du har inkluderat kodraderna för att spara data i matrisen ourAnimals och kontrollera att du har inkluderat kodraden för att skapa petID.

  10. Kontrollera att du kan skapa ytterligare djurbeskrivningar för hundar och katter och att djuregenskaper sparas i matrisen ourAnimals .

  11. Avsluta programmet och stäng sedan terminalpanelen.

Grattis till att du har slutfört det här guidade projektet! Du har skapat ett program som kombinerar markerings- och iterationsinstruktioner för att uppnå dina programdesignmål. Ditt program innehåller över 300 rader och utför uppgifter som du kan hitta i ett professionellt program. Att slutföra det här projektet representerar en betydande prestation. Fortsätt med det fina arbetet!