Exercício - Escreva código para ler e salvar novos dados da matriz ourAnimals

Concluído

Neste exercício, desenvolve os ciclos de validação para a entrada de dados de cada característica do animal de estimação e, em seguida, armazena os dados novos da matriz ourAnimals. As tarefas detalhadas que você conclui durante este exercício são:

  1. Ler e validar espécies: construir um loop e a estrutura de código interna usada para inserir e validar as espécies de animais de estimação.
  2. Construct pet ID: escreva o código que usa petCount e o nome da espécie para construir o valor petID.
  3. Leia e valide a idade: construa um loop e a estrutura de código interna usada para inserir e validar a idade do animal de estimação.
  4. Leia e valide a descrição física: construa um loop e a estrutura de código interna usada para inserir uma descrição física do animal de estimação.
  5. Leia e valide a descrição da personalidade: construa um loop e a estrutura interna do código usada para inserir uma descrição da personalidade do animal de estimação.
  6. Leia e valide o apelido: crie 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 completar o exercício anterior neste módulo antes de iniciar este exercício.

Construir loop para ler e validar as espécies de animais de estimação

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

  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, em seguida, 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 loop do para a entrada de dados de espécies, digite 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 sua do instrução, para criar um prompt de exibição e ler a entrada do usuário, digite 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 é 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 contém 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 ciclo concluído de entrada de dados do nome da espécie 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 Ficheiro do Visual Studio Code, selecione Guardar.

  10. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Construir o valor de ID do animal

Nesta tarefa, você usa as animalSpecies variáveis e petCount para criar o valor atribuído ao animalID.

  1. Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados do nome da 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 Ficheiro do Visual Studio Code, selecione Guardar.

Construir 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 inteiro válido que represente a idade do animal de estimação em anos. Você reutiliza a cadeia de caracteres readResult nula para capturar a entrada Console.ReadLine(). Você também reutiliza a animalAge variável de cadeia de caracteres usada ao gerar os dados de exemplo. Para testar se a animalAge cadeia de caracteres representa ou não um número inteiro válido, use o validEntry Booleano. Você declara uma nova variável inteira nomeada petAge para armazenar o valor numérico. Mais uma vez, o validEntry booleano é usado na expressão que é avaliada como um critério de saída para o nosso do loop.

  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 sua do instrução, para declarar uma variável inteira 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, digite 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 é 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 atribuição do valor animalAge, para verificar se o utilizador introduziu ? antes de testar um inteiro válido, digite o seguinte código:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. Compare seu loop de entrada de dados de idade concluído 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 Ficheiro do Visual Studio Code, selecione Guardar.

  9. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Construir 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 readResult nula para capturar a entrada Console.ReadLine(). Você também reutiliza a animalPhysicalDescription variável de cadeia de caracteres usada ao gerar os dados de exemplo. Você usa o valor atribuído a animalPhysicalDescription na expressão que é avaliada como um critério de saída para o nosso ciclo do.

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

  2. Para criar um loop para entrada de do dados de descrição física, digite 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 sua do instrução, para criar um prompt de exibição e ler a entrada do usuário, digite 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 é 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" a animalPhysicalDescription quando o valor inserido for "", digite o seguinte código:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. Compare o seu ciclo de inserção 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 Ficheiro do Visual Studio Code, selecione Guardar.

  8. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Crie um loop para ler e validar a descrição da 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 readResult nula para capturar a entrada Console.ReadLine(). Você também reutiliza a animalPersonalityDescription variável de cadeia de caracteres usada ao gerar os dados de exemplo. Você usa o valor atribuído a animalPersonalityDescription na expressão que é avaliada como um critério de saída para o nosso ciclo do.

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

  2. Para criar um do loop para a 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 sua do instrução, para criar um prompt de exibição e ler a entrada do usuário, digite 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 é 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" a animalPersonalityDescription quando o valor inserido for "", digite o seguinte código:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. Compare seu loop de entrada de dados de 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 Ficheiro do Visual Studio Code, selecione Guardar.

  8. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Crie um 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 readResult nula para capturar a entrada Console.ReadLine(). Você também reutiliza a animalNickname variável de cadeia de caracteres usada ao gerar os dados de exemplo. Você usa o valor atribuído a animalNickname na expressão que é avaliada como um critério de saída para o nosso ciclo do.

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

  2. Para criar um do loop para a 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 sua do instrução, para criar um prompt de exibição e ler a entrada do usuário, digite 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 é 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" a animalNickname quando o valor inserido for "", digite o seguinte código:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. Compare o seu loop de entrada de dados de apelidos concluído 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 Ficheiro do Visual Studio Code, selecione Guardar.

  8. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Salve 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 do seu apelido.

  2. Para armazenar os valores de dados especificados pelo usuário, digite 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 Ficheiro do Visual Studio Code, selecione Guardar.

  4. Abra o painel Terminal integrado no Visual Studio Code e digite o comando para compilar seu programa.

    Se algum erro ou aviso de compilação tiver sido relatado, corrija os problemas antes de continuar.

Verifique o seu trabalho

Nesta tarefa, você executa seu aplicativo a partir do Terminal Integrado e verifica se a entrada de dados do animal 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, digite dotnet run

  3. No prompt de comando do Terminal, digite 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:

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

    O painel Terminal deve ser atualizado da seguinte forma:

    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 do Terminal, digite n

  7. Verifique se o painel Terminal foi atualizado para mostrar as opções do menu principal.

  8. No prompt de comando do Terminal, digite 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 as informações do animal 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 o petID.

  10. Verifique se é possível criar descrições adicionais de animais 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 pela conclusão deste 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. A conclusão deste projeto representa uma realização significativa. Continue o excelente trabalho!