Exercício – Escrever o código para ler e salvar novos dados da matriz ourAnimals

Concluído

Neste exercício, você desenvolverá os loops de validação de entrada de dados para cada característica de um animal de estimação e armazenará os novos dados da matriz ourAnimals. As tarefas detalhadas que você concluir durante este exercício são:

  1. Ler e validar espécies: criar um loop e a estrutura de código interna usada para inserir e validar a espécie do animal de estimação.
  2. Construa a ID do animal de estimação: escreva o código que usa petCount e o nome da espécie para construir o valor petID.
  3. Ler e validar a idade: criar um loop e a estrutura interna do código usada para inserir e validar a idade do animal de estimação.
  4. Ler e validar a descrição física: crie um loop e a estrutura de código interna usada para inserir uma descrição física do animal de estimação.
  5. Ler e validar a descrição da personalidade: crie um loop e a estrutura de código interna usada para inserir uma descrição da personalidade do animal de estimação.
  6. Ler e validar o apelido: criar um loop e a estrutura interna do código usada para inserir um apelido para o animal de estimação.
  7. Teste de verificação: execute testes de verificação para o código que você desenvolve neste exercício.

Importante

Você deve concluir o exercício anterior neste módulo antes de iniciar este exercício.

Montar um loop para ler e validar a espécie de animal.

Nesta tarefa, você cria um do loop que itera até que o usuário insira um nome de espécie válido, seja cão ou gato. Você reutilizará a cadeia de caracteres anulável readResult para capturar a entrada Console.ReadLine(). Você também reutiliza a animalSpecies variável de cadeia de caracteres usada ao gerar seus dados de exemplo. Você adiciona uma nova variável booliana nomeada validEntry ao seu aplicativo. Você usará validEntry em uma expressão que é avaliada como um critério de saída para o loop do.

  1. Verifique se o Visual Studio Code está aberto e se o arquivo Program.cs está visível no Editor.

  2. Localize a while (anotherPet == "y" && petCount < maxPets) instrução e adicione uma linha de código em branco no bloco de código superior.

  3. Na linha de código em branco que você criou, para declarar validEntry com um valor inicial de false, insira o seguinte código:

    bool validEntry = false;
    
    
  4. Na linha abaixo da declaração de validEntry, para criar um do loop para entrada de dados de espécie, insira o seguinte código:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. Dentro do bloco de código da instrução do , para criar um prompt de exibição e ler a entrada do usuário, insira o seguinte código:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. Para garantir que o valor de readResult não seja nulo antes de atribuir o valor de readResult a animalSpecies, insira o seguinte código:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. Na linha abaixo da atribuição de animalSpecies valor, para garantir que animalSpecies contenha um nome de espécie válido, insira o seguinte código:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. Compare o loop de entrada de dados de nome da espécie concluído com o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  10. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Criar o valor de ID do animal

Nesta tarefa, você usa as variáveis animalSpecies e petCount para criar o valor que você atribui a animalID.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de nome de espécie.

  2. Para criar e atribuir o animalID valor, insira o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

Criar loop para ler e validar a idade do animal de estimação

Nesta tarefa, você cria um do loop que itera até que o usuário insira um ? ou um número inteiro válido que represente a idade do animal de estimação em anos. Você reutiliza a cadeia de caracteres que pode ser anulada readResult para capturar a entrada Console.ReadLine(). Você também reutiliza a variável de string animalAge que você usou ao gerar os dados de exemplo. Para testar se a animalAge cadeia de caracteres representa ou não um inteiro válido, use o validEntry Boolean. Você declara uma nova variável de inteiro nomeada petAge para armazenar o valor numérico. Mais uma vez, o booliano validEntry será usado na expressão avaliada como um critério de saída para o loop do.

  1. Adicione uma linha de código em branco abaixo da linha usada para atribuir um valor à nossa animalID variável.

  2. Para criar um do loop para a entrada de dados de idade, insira o seguinte código:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. Dentro do bloco de código da instrução do , para declarar uma variável de inteiro chamada petAge, insira o seguinte código:

    int petAge;
    
    
  4. Na linha abaixo da declaração de petAge, para exibir um prompt de mensagem e ler a entrada do usuário, insira o seguinte código:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. Para garantir que o valor de readResult não seja nulo antes de atribuir o valor de readResult a animalAge, insira o seguinte código:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. Na linha abaixo da animalAge atribuição de valor, para verificar se o usuário inseriu ? antes de testar um inteiro válido, insira o seguinte código:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Compare o loop de entrada de dados de idade completo com o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  9. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Criar loop para ler e validar a descrição física do animal de estimação

Nesta tarefa, você cria um do loop que itera até que o usuário insira um valor de cadeia de caracteres que represente uma descrição física de um animal de estimação. Você reutiliza a cadeia de caracteres que pode ser anulada readResult para capturar a entrada Console.ReadLine(). Você também reutiliza a variável de string animalPhysicalDescription que você usou ao gerar os dados de exemplo. Você usará o valor atribuído a animalPhysicalDescription na expressão que é avaliada como um critério de saída para o loop do.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de idade.

  2. Para criar um do loop para entrada de dados de descrição física, insira o seguinte código:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. Dentro do bloco de código da instrução do , para criar um prompt de exibição e ler a entrada do usuário, insira o seguinte código:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. Para garantir que o valor de readResult não seja nulo antes de atribuir o valor de readResult a animalPhysicalDescription, insira o seguinte código:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. Para atribuir um valor de "tbd"animalPhysicalDescription quando o valor inserido é "", insira o seguinte código:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Compare o loop de entrada de dados de descrição física concluído com o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  8. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Criar loop para ler e validar a descrição de personalidade do animal de estimação

Nesta tarefa, você cria um do loop que itera até que o usuário insira um valor de cadeia de caracteres que represente uma descrição da personalidade de um animal de estimação. Você reutiliza a cadeia de caracteres que pode ser anulada readResult para capturar a entrada Console.ReadLine(). Você também reutiliza a variável de string animalPersonalityDescription que você usou ao gerar os dados de exemplo. Você usará o valor atribuído a animalPersonalityDescription na expressão que é avaliada como um critério de saída para o loop do.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de descrição física.

  2. Para criar um do loop para entrada de dados de descrição de personalidade, insira o seguinte código:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. Dentro do bloco de código da instrução do , para criar um prompt de exibição e ler a entrada do usuário, insira o seguinte código:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. Para garantir que o valor de readResult não seja nulo antes de atribuir o valor de readResult a animalPersonalityDescription, insira o seguinte código:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. Para atribuir um valor de "tbd"animalPersonalityDescription quando o valor inserido é "", insira o seguinte código:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Compare o loop de entrada de dados da descrição de personalidade concluído com o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  8. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Criar loop para ler e validar o apelido do animal de estimação

Nesta tarefa, você cria um do loop que itera até que o usuário insira um valor de cadeia de caracteres que represente um apelido para um animal de estimação. Você reutiliza a cadeia de caracteres que pode ser anulada readResult para capturar a entrada Console.ReadLine(). Você também reutiliza a variável de string animalNickname que você usou ao gerar os dados de exemplo. Você usará o valor atribuído a animalNickname na expressão que é avaliada como um critério de saída para o loop do.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de descrição de personalidade.

  2. Para criar um do loop para entrada de dados de descrição de personalidade, insira o seguinte código:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. Dentro do bloco de código da instrução do , para criar um prompt de exibição e ler a entrada do usuário, insira o seguinte código:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. Para garantir que o valor de readResult não seja nulo antes de atribuir o valor de readResult a animalNickname, insira o seguinte código:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. Para atribuir um valor de "tbd"animalNickname quando o valor inserido é "", insira o seguinte código:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Compare o loop concluído para entrada de dados de apelido com o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  8. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Salvar as novas informações do animal de estimação

Nesta tarefa, você salva os valores inseridos para as características do animal de estimação na ourAnimals matriz.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de apelido.

  2. Para armazenar os valores de dados especificados pelo usuário, insira o seguinte código:

    // 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. No menu Arquivo do Visual Studio Code, selecione Salvar.

  4. Abra o painel Terminal Integrado no Visual Studio Code e insira o comando para Criar seu programa.

    Se algum erro de build ou avisos tiver sido relatado, corrija os problemas antes de continuar.

Verifique seu trabalho

Nesta tarefa, você executa seu aplicativo no Terminal Integrado e verifica se a entrada de dados de animais de estimação está funcionando corretamente.

  1. Se necessário, abra o painel Terminal Integrado do Visual Studio Code.

  2. No prompt de comando do Terminal, insira dotnet run

  3. No prompt de comando terminal, insira 2

  4. Verifique se o painel terminal foi atualizado para mostrar a seguinte saída:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. Insira os seguintes valores nos prompts de comando do Terminal e verifique se cada prompt subsequente é exibido:

    • Na solicitação Enter 'dog' or 'cat' to begin a new entry, insira dog
    • No prompt Enter the pet's age or enter ? if unknown, insira ?
    • Na solicitação Enter a physical description of the pet (size, color, gender, weight, housebroken), pressione a tecla Enter.
    • Na solicitação Enter a description of the pet's personality (likes or dislikes, tricks, energy level), pressione a tecla Enter.
    • Na solicitação Enter a nickname for the pet, pressione a tecla Enter.

    O painel terminal deve ser atualizado da seguinte maneira:

    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. No prompt de comando terminal, insira n

  7. Verifique se o painel terminal foi atualizado para mostrar as principais opções de menu.

  8. No prompt de comando terminal, insira 1

  9. Verifique se o painel terminal foi atualizado para mostrar a seguinte saída:

    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
    

    Se suas informações de animais de estimação recém-adicionadas não forem exibidas, verifique se você incluiu as linhas de código para salvar os dados na matriz ourAnimals e verifique se você incluiu a linha de código para construir a petID.

  10. Verifique se você pode criar descrições de animais adicionais para cães e gatos e se as características dos animais estão sendo salvas na ourAnimals matriz.

  11. Saia do aplicativo e feche o painel terminal.

Parabéns por concluir este projeto guiado! Você criou um aplicativo que combina instruções de seleção e iteração para atingir suas metas de design de aplicativo. Seu aplicativo inclui mais de 300 linhas e executa tarefas que você pode encontrar em um aplicativo profissional. Concluir este projeto representa uma realização significativa. Continue com o ótimo trabalho!