Exercício – Escrever o código para ler e salvar novos dados da matriz ourAnimals
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Verifique se o Visual Studio Code está aberto e se o arquivo Program.cs está visível no Editor.
Localize a
while (anotherPet == "y" && petCount < maxPets)instrução e adicione uma linha de código em branco no bloco de código superior.Na linha de código em branco que você criou, para declarar
validEntrycom um valor inicial defalse, insira o seguinte código:bool validEntry = false;Na linha abaixo da declaração de
validEntry, para criar umdoloop 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);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();Para garantir que o valor de
readResultnão seja nulo antes de atribuir o valor dereadResultaanimalSpecies, insira o seguinte código:if (readResult != null) { animalSpecies = readResult.ToLower(); }Na linha abaixo da atribuição de
animalSpeciesvalor, para garantir queanimalSpeciescontenha um nome de espécie válido, insira o seguinte código:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }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);No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
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.
Para criar e atribuir o
animalIDvalor, 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();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.
Adicione uma linha de código em branco abaixo da linha usada para atribuir um valor à nossa
animalIDvariável.Para criar um
doloop 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);Dentro do bloco de código da instrução
do, para declarar uma variável de inteiro chamadapetAge, insira o seguinte código:int petAge;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();Para garantir que o valor de
readResultnão seja nulo antes de atribuir o valor dereadResultaanimalAge, insira o seguinte código:if (readResult != null) { animalAge = readResult; }Na linha abaixo da
animalAgeatribuiçã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; }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);No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de idade.
Para criar um
doloop 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 == "");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();Para garantir que o valor de
readResultnão seja nulo antes de atribuir o valor dereadResultaanimalPhysicalDescription, insira o seguinte código:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }Para atribuir um valor de
"tbd"animalPhysicalDescriptionquando o valor inserido é"", insira o seguinte código:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }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 == "");No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
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.
Para criar um
doloop 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 == "");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();Para garantir que o valor de
readResultnão seja nulo antes de atribuir o valor dereadResultaanimalPersonalityDescription, insira o seguinte código:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }Para atribuir um valor de
"tbd"animalPersonalityDescriptionquando o valor inserido é"", insira o seguinte código:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }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 == "");No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
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.
Para criar um
doloop 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 == "");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();Para garantir que o valor de
readResultnão seja nulo antes de atribuir o valor dereadResultaanimalNickname, insira o seguinte código:if (readResult != null) { animalNickname = readResult.ToLower(); }Para atribuir um valor de
"tbd"animalNicknamequando o valor inserido é"", insira o seguinte código:if (animalNickname == "") { animalNickname = "tbd"; }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 == "");No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados de apelido.
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;No menu Arquivo do Visual Studio Code, selecione Salvar.
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.
Se necessário, abra o painel Terminal Integrado do Visual Studio Code.
No prompt de comando do Terminal, insira dotnet run
No prompt de comando terminal, insira 2
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 entryInsira 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)- Na solicitação
No prompt de comando terminal, insira n
Verifique se o painel terminal foi atualizado para mostrar as principais opções de menu.
No prompt de comando terminal, insira 1
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 continueSe 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.
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
ourAnimalsmatriz.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!