Ćwiczenie — pisanie kodu w celu odczytywania i zapisywania nowych danych tablicy ourAnimals

Ukończone

W tym ćwiczeniu utworzysz pętle weryfikacji wprowadzania danych dla każdej charakterystyki zwierząt domowych, a następnie zapiszesz nowe ourAnimals dane tablicy. Szczegółowe zadania wykonywane w tym ćwiczeniu to:

  1. Odczytywanie i weryfikowanie gatunków: tworzenie pętli i wewnętrznej struktury kodu używanej do wprowadzania i weryfikowania gatunków zwierząt domowych.
  2. Konstruowanie identyfikatora zwierzaka: napisz kod, który używa petCount i nazwy gatunku do konstruowania wartości petID.
  3. Odczytywanie i weryfikowanie wieku: utwórz pętlę i wewnętrzną strukturę kodu używaną do wprowadzania i weryfikowania wieku zwierzęcia.
  4. Odczytywanie i weryfikowanie opisu fizycznego: utwórz pętlę i wewnętrzną strukturę kodu używaną do wprowadzania fizycznego opisu zwierzęcia.
  5. Przeczytaj i zweryfikuj opis osobowości: utwórz pętlę i wewnętrzną strukturę kodu używaną do wprowadzania opisu osobowości zwierzęcia.
  6. Odczytywanie i weryfikowanie pseudonimu: tworzenie pętli i wewnętrznej struktury kodu używanej do wprowadzania pseudonimu dla zwierzaka.
  7. Test weryfikacyjny: wykonaj testy weryfikacyjne dla kodu opracowywany w tym ćwiczeniu.

Ważne

Przed rozpoczęciem tego ćwiczenia należy wykonać poprzednie ćwiczenie w tym module.

Zbuduj pętlę do odczytu i weryfikacji gatunku zwierząt domowych

W tym zadaniu utworzysz pętlę do , która iteruje, dopóki użytkownik nie wprowadzi prawidłowej nazwy gatunku, psa lub kota. Aby przechwycić readResult dane wejściowe, należy ponownie użyć ciąguConsole.ReadLine(), który można unieważnić. Można również ponownie użyć zmiennej ciągu animalSpecies, którą zastosowano podczas generowania przykładowych danych. Do aplikacji zostanie dodana nowa zmienna logiczna o nazwie validEntry . Używasz validEntry w wyrażeniu, które jest oceniane jako kryterium zakończenia pętli do.

  1. Upewnij się, że program Visual Studio Code jest otwarty i że plik Program.cs jest widoczny w edytorze.

  2. Znajdź instrukcję while (anotherPet == "y" && petCount < maxPets) , a następnie dodaj pusty wiersz kodu w górnym bloku kodu.

  3. Na pustym wierszu kodu, który został utworzony, aby zadeklarować validEntry z początkową wartością false, wprowadź następujący kod:

    bool validEntry = false;
    
    
  4. W wierszu poniżej deklaracji validEntry, aby utworzyć pętlę do dla wprowadzania danych gatunków, wprowadź następujący kod:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. W bloku kodu instrukcji do , aby utworzyć monit wyświetlania i odczytać dane wejściowe użytkownika, wprowadź następujący kod:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. Aby upewnić się, że wartość readResult nie ma wartości null przed przypisanie wartości readResult do animalSpecies, wprowadź następujący kod:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. W wierszu poniżej animalSpecies przypisania wartości, aby upewnić się, że animalSpecies zawiera prawidłową nazwę gatunku, wprowadź następujący kod:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. Porównaj ukończoną pętlę wprowadzania danych nazwy gatunku z następującym kodem:

    // 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  10. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Konstruowanie wartości identyfikatora zwierzęcia

W tym zadaniu używaj zmiennych animalSpecies i petCount do utworzenia wartości przypisanej do elementu animalID.

  1. Dodaj pusty wiersz kodu poniżej bloku kodu pętli wprowadzania danych nazwy gatunku.

  2. Aby utworzyć i przypisać animalID wartość, wprowadź następujący 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

Utwórz pętlę do odczytu i walidacji wieku zwierzaka

W tym zadaniu utworzysz pętlę do, która iteruje, dopóki użytkownik nie wprowadzi ? lub prawidłowej liczby całkowitej reprezentującej wiek zwierzęcia w latach. Aby przechwycić readResult dane wejściowe, należy ponownie użyć ciąguConsole.ReadLine(), który można unieważnić. Możesz również ponownie użyć zmiennej typu string, którą użyłeś animalAge podczas generowania przykładowych danych. Aby sprawdzić, czy animalAge ciąg reprezentuje prawidłową liczbę całkowitą, należy użyć wartości logicznej validEntry . Zadeklarujesz nową zmienną całkowitą o nazwie petAge , aby przechowywać wartość liczbową. Po raz kolejny wartość logiczna validEntry jest używana w wyrażeniu, które jest ocenione jako kryterium wyjścia dla naszej pętli do.

  1. Dodaj pusty wiersz kodu poniżej wiersza użytego do przypisania wartości do naszej animalID zmiennej.

  2. Aby utworzyć pętlę do dla wprowadzania danych wieku, wprowadź następujący kod:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. W bloku kodu instrukcji do , aby zadeklarować zmienną całkowitą o nazwie petAge, wprowadź następujący kod:

    int petAge;
    
    
  4. W wierszu poniżej deklaracji petAge, aby wyświetlić monit i pobrać dane od użytkownika, wprowadź następujący kod:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. Aby upewnić się, że wartość parametru readResult nie ma wartości null przed przypisaniem wartości readResult do animalAgeelementu , wprowadź następujący kod:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. W wierszu poniżej przypisania wartości animalAge, aby sprawdzić, czy użytkownik wprowadził ? przed przetestowaniem, czy jest to prawidłowa liczba całkowita, wprowadź następujący kod:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Porównaj ukończoną pętlę wprowadzania danych wieku z następującym kodem:

    // 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  9. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Tworzenie pętli do odczytywania i sprawdzenia fizycznego opisu zwierzęcia

W tym zadaniu utworzysz pętlę do , która iteruje, dopóki użytkownik nie wprowadzi wartości ciągu reprezentującej fizyczny opis zwierzaka. Aby przechwycić readResult dane wejściowe, należy ponownie użyć ciąguConsole.ReadLine(), który można unieważnić. Możesz również ponownie użyć zmiennej typu string, którą użyłeś animalPhysicalDescription podczas generowania przykładowych danych. Używasz wartości przypisanej do animalPhysicalDescription w wyrażeniu, które jest oceniane jako kryterium wyjścia dla pętli do.

  1. Dodaj pusty wiersz kodu poniżej bloku kodu pętli wprowadzania danych wieku.

  2. Aby utworzyć pętlę dla do wpisu danych opisu fizycznego, wprowadź następujący kod:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. W bloku kodu instrukcji do , aby utworzyć monit wyświetlania i odczytać dane wejściowe użytkownika, wprowadź następujący kod:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. Aby upewnić się, że wartość parametru readResult nie ma wartości null przed przypisaniem wartości readResult do animalPhysicalDescriptionelementu , wprowadź następujący kod:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Aby przypisać wartość parametru "tbd" do animalPhysicalDescription , gdy wprowadzona wartość to "", wprowadź następujący kod:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Porównaj ukończoną pętlę wprowadzania danych opisu fizycznego z następującym kodem:

    // 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  8. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Zbuduj pętlę do odczytywania i weryfikowania opisu osobowości zwierzaka

W tym zadaniu utworzysz pętlę do , która iteruje, dopóki użytkownik nie wprowadzi wartości ciągu reprezentującej opis osobowości zwierzaka. Aby przechwycić readResult dane wejściowe, należy ponownie użyć ciąguConsole.ReadLine(), który można unieważnić. Możesz również ponownie użyć zmiennej typu string, którą użyłeś animalPersonalityDescription podczas generowania przykładowych danych. Używasz wartości przypisanej do animalPersonalityDescription w wyrażeniu, które jest oceniane jako kryterium wyjścia dla pętli do.

  1. Dodaj pusty wiersz kodu poniżej bloku kodu pętli wprowadzania danych opisu fizycznego.

  2. Aby utworzyć pętlę do dla wpisu danych opisu osobowości, wprowadź następujący kod:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. W bloku kodu instrukcji do , aby utworzyć monit wyświetlania i odczytać dane wejściowe użytkownika, wprowadź następujący kod:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. Aby upewnić się, że wartość parametru readResult nie ma wartości null przed przypisaniem wartości readResult do animalPersonalityDescriptionelementu , wprowadź następujący kod:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Aby przypisać wartość parametru "tbd" do animalPersonalityDescription , gdy wprowadzona wartość to "", wprowadź następujący kod:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Porównaj ukończoną pętlę wprowadzania danych opisu osobowości z następującym kodem:

    // 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  8. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Zbuduj pętlę do odczytu i weryfikacji pseudonimu zwierzaka

W tym zadaniu utworzysz pętlę do , która iteruje, dopóki użytkownik nie wprowadzi wartości ciągu reprezentującej pseudonim dla zwierzaka. Aby przechwycić readResult dane wejściowe, należy ponownie użyć ciąguConsole.ReadLine(), który można unieważnić. Możesz również ponownie użyć zmiennej typu string, którą użyłeś animalNickname podczas generowania przykładowych danych. Używasz wartości przypisanej do animalNickname w wyrażeniu, które jest oceniane jako kryterium wyjścia dla pętli do.

  1. Dodaj pusty wiersz kodu poniżej bloku kodu pętli wprowadzania danych opisu osobowości.

  2. Aby utworzyć pętlę do dla wpisu danych opisu osobowości, wprowadź następujący kod:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. W bloku kodu instrukcji do , aby utworzyć monit wyświetlania i odczytać dane wejściowe użytkownika, wprowadź następujący kod:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. Aby upewnić się, że wartość parametru readResult nie ma wartości null przed przypisaniem wartości readResult do animalNicknameelementu , wprowadź następujący kod:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Aby przypisać wartość parametru "tbd" do animalNickname , gdy wprowadzona wartość to "", wprowadź następujący kod:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Porównaj ukończoną pętlę wprowadzania danych pseudonimów z następującym kodem:

    // 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  8. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Zapisz nowe informacje o zwierzętach domowych

W tym zadaniu zapiszesz wartości wprowadzone dla cech zwierząt domowych w tablicy ourAnimals .

  1. Dodaj pusty wiersz kodu poniżej bloku kodu pętli wprowadzania danych pseudonimu.

  2. Aby zapisać wartości danych określone przez użytkownika, wprowadź następujący 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. W menu Plik programu Visual Studio Code wybierz pozycję Zapisz.

  4. Otwórz panel Zintegrowany terminal w programie Visual Studio Code i wprowadź polecenie w celu skompilowania programu.

    Jeśli zgłoszono jakiekolwiek błędy kompilacji lub ostrzeżenia, rozwiąż problemy przed kontynuowaniem.

Sprawdź swoją pracę

W tym zadaniu uruchomisz aplikację ze zintegrowanego terminalu i sprawdzisz, czy wpis danych zwierząt domowych działa prawidłowo.

  1. W razie potrzeby otwórz panel Zintegrowanego Terminala Visual Studio Code.

  2. W wierszu polecenia terminalu wprowadź polecenie dotnet run

  3. W wierszu polecenia terminalu wprowadź 2

  4. Sprawdź, czy panel terminalu został zaktualizowany, aby wyświetlić następujące dane wyjściowe:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. Wprowadź następujące wartości w wierszach polecenia terminalu i sprawdź, czy każdy kolejny wiersz jest wyświetlany:

    • Po wyświetleniu monitu Enter 'dog' or 'cat' to begin a new entry wprowadź dog
    • Po wyświetleniu monitu Enter the pet's age or enter ? if unknown wprowadź ?
    • Po wyświetleniu monitu Enter a physical description of the pet (size, color, gender, weight, housebroken) naciśnij Enter.
    • Po wyświetleniu monitu Enter a description of the pet's personality (likes or dislikes, tricks, energy level) naciśnij Enter.
    • Po wyświetleniu monitu Enter a nickname for the pet naciśnij Enter.

    Panel terminalu powinien zostać zaktualizowany w następujący sposób:

    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. W wierszu polecenia terminalu wprowadź n

  7. Sprawdź, czy panel terminalu został zaktualizowany, aby wyświetlić opcje menu głównego.

  8. W wierszu polecenia terminalu wprowadź 1

  9. Sprawdź, czy panel terminalu został zaktualizowany, aby wyświetlić następujące dane wyjściowe:

    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
    

    Jeśli nowo dodane informacje o zwierzętach domowych nie są wyświetlane, sprawdź, czy dołączono wiersze kodu, aby zapisać dane w tablicy ourAnimals, i upewnij się, że został dołączony wiersz kodu do utworzenia petID.

  10. Sprawdź, czy możesz utworzyć dodatkowe opisy zwierząt dla psów i kotów oraz że cechy zwierząt są zapisywane w tablicy ourAnimals .

  11. Zamknij aplikację, a następnie zamknij panel Terminal.

Gratulujemy ukończenia tego projektu z przewodnikiem! Utworzono aplikację, która łączy instrukcje wyboru i iteracji w celu osiągnięcia celów projektowych aplikacji. Aplikacja zawiera ponad 300 wierszy i wykonuje zadania, które można znaleźć w profesjonalnej aplikacji. Ukończenie tego projektu stanowi znaczące osiągnięcie. Tak trzymaj dalej!