Exercício - Escreva código para ler e salvar novos dados da matriz ourAnimals
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:
- 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.
- Construct pet ID: escreva o código que usa petCount e o nome da espécie para construir o valor petID.
- 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.
- 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.
- 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.
- 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.
- 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.
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, em seguida, 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 um loopdopara 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);Dentro do bloco de código da sua
doinstruçã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();Para garantir que o valor de
readResultNÃO é 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 queanimalSpeciescontém um nome de espécie válido, insira o seguinte código:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }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);No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
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.
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 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.
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 sua
doinstrução, para declarar uma variável inteira 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, digite 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 é nulo antes de atribuir o valor dereadResultaanimalAge, insira o seguinte código:if (readResult != null) { animalAge = readResult; }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; }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);No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
Adicione uma linha de código em branco abaixo do bloco de código do seu loop de entrada de dados de idade.
Para criar um loop para entrada de
dodados 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 == "");Dentro do bloco de código da sua
doinstruçã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();Para garantir que o valor de
readResultnão é nulo antes de atribuir o valor dereadResultaanimalPhysicalDescription, insira o seguinte código:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }Para atribuir um valor de
"tbd"aanimalPhysicalDescriptionquando o valor inserido for"", digite o seguinte código:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }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 == "");No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
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.
Para criar um
doloop 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 == "");Dentro do bloco de código da sua
doinstruçã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();Para garantir que o valor de
readResultnão é nulo antes de atribuir o valor dereadResultaanimalPersonalityDescription, insira o seguinte código:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }Para atribuir um valor de
"tbd"aanimalPersonalityDescriptionquando o valor inserido for"", digite o seguinte código:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }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 == "");No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
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.
Para criar um
doloop 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 == "");Dentro do bloco de código da sua
doinstruçã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();Para garantir que o valor de
readResultnão é nulo antes de atribuir o valor dereadResultaanimalNickname, insira o seguinte código:if (readResult != null) { animalNickname = readResult.ToLower(); }Para atribuir um valor de
"tbd"aanimalNicknamequando o valor inserido for"", digite o seguinte código:if (animalNickname == "") { animalNickname = "tbd"; }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 == "");No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
Adicione uma linha de código em branco abaixo do bloco de código do loop de entrada de dados do seu apelido.
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;No menu Ficheiro do Visual Studio Code, selecione Guardar.
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.
Se necessário, abra o painel Terminal integrado do Visual Studio Code.
No prompt de comando do Terminal, digite dotnet run
No prompt de comando do Terminal, digite 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:
- 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)- No prompt
No prompt de comando do Terminal, digite n
Verifique se o painel Terminal foi atualizado para mostrar as opções do menu principal.
No prompt de comando do Terminal, digite 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 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.
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
ourAnimalsmatriz.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!