Adicionar suporte à pesquisa de vários termos
O aplicativo Contoso Pets ajuda a encontrar novas casas para animais abandonados. A equipe quer que o recurso de pesquisa seja aprimorado para permitir que os usuários insiram vários termos ao procurar cães para adotar.
Especificação de pesquisa
Neste primeiro exercício de desafio, você precisa atualizar o recurso de pesquisa de termo único para permitir que os usuários insiram vários termos de pesquisa separados por vírgulas.
Coletar vários termos de pesquisa do usuário
- Permitir que o usuário insira vários termos de pesquisa ao procurar cães
- O usuário precisa de instruções para "inserir os termos de pesquisa separados por vírgulas"
- Separar os termos de pesquisa individuais da cadeia de caracteres de entrada do usuário e armazenar como valores em uma matriz
- Classificar os termos na matriz na ordem de classificação alfanumérica
Identificar cães com descrições que correspondam a um ou mais termos de pesquisa do usuário
- À medida que você identifica um cão no
animalsArray, pesquise correspondências para cada termo que o usuário inseriu - Para uma correspondência de termo, envie uma mensagem com o nome do cão e o termo correspondente
- exemplo:
Our dog Jake is a match for your search for sheppard!
- exemplo:
- Quando todas as pesquisas de termos forem concluídas para a descrição atual do cão:
- Para uma ou mais correspondências, exiba o apelido e a descrição do cão atual
- Para uma ou mais correspondências, verifique se houve uma correspondência a fim de saber quando não é preciso exibir a mensagem "Nenhuma correspondência encontrada para nenhum cão disponível" (confira o próximo item)
- Depois que todas as buscas de cães forem concluídas sem correspondências, exiba uma mensagem "Nenhuma correspondência encontrada para cães disponíveis"
Impor as seguintes regras de validação
- valores não podem ser nulos
- os valores não podem ter zero caracteres
- qualquer restrição adicional cabe ao desenvolvedor
Comentários de código
- Comentários de código numerado no código inicial oferecem sugestões
- Os comentários estão em uma ordem sequencial e somente os comentários que começam com #1, #2 e #3 se aplicam a este exercício do desafio
Saída de exemplo
Examine a imagem animada a seguir
Observe a exibição temporária de "
searching..." seguida pelo termo atual (exemplo: "searching...retriever")Observe que a ordem em que os termos aparecem na pesquisa agora está em alfanumérico
Observe que as mensagens de correspondências persistem (exemplo: "
Our dog lola is a chase match!")
Examine a saída de exemplo na seção a seguir, "Como verificar seu trabalho", para esclarecer ainda mais como implementar recursos
Como verificar seu trabalho
Para validar se o código atende aos requisitos especificados, execute as seguintes etapas:
- Use o Visual Studio Code para compilar e executar seu aplicativo.
Observação
Você pode sair do teste de verificação antes de concluir todas as etapas de verificação se vir um resultado que não atenda aos requisitos de especificação. Para forçar a saída do programa em execução, no painel Terminal, pressione Ctrl-C. Depois de sair do aplicativo em execução, conclua as edições que acredita que resolverão o problema em que você está trabalhando, salve as atualizações feitas no arquivo Program.cs e, em seguida, compile novamente e execute seu código.
O prompt de comando do terminal deve ser exibido como o ponto de partida para o programa
No prompt de comando, digite 2 menus:
Welcome to the Contoso PetFriends app. Your main menu options are: 1. List all of our current pet information 2. Display all dogs with a specified characteristic Enter your selection number (or type Exit to exit the program) 2 Enter dog characteristics to search for separated by commasNo prompt de comando, insira grande, creme, dourado para testar quando mais de um termo de pesquisa corresponde às descrições do cão. Verifique se o painel terminal é atualizado com uma mensagem semelhante ao exemplo de saída de código:
Enter dog characteristics to search for separated by commas large, cream, golden Our dog Nickname: lola matches your search for cream Our dog Nickname: lola matches your search for golden Nickname: lola (ID #: d1) Physical description: medium sized cream colored female golden retriever weighing about 45 pounds. housebroken. Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses. Our dog Nickname: gus matches your search for golden Our dog Nickname: gus matches your search for large Nickname: gus (ID #: d2) 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. Press the Enter key to continueNo prompt de comando, pressione a tecla Enter para avançar para o menu principal.
No prompt de comando, digite 2 menus:
Welcome to the Contoso PetFriends app. Your main menu options are: 1. List all of our current pet information 2. Display all dogs with a specified characteristic Enter your selection number (or type Exit to exit the program) 2 Enter dog characteristics to search for separated by commasNo prompt de comando, insira big, grey, stripes para testar quando nenhum dos termos de pesquisa corresponder às descrições do cão. Verifique se o painel terminal é atualizado com uma mensagem semelhante aos exemplos de saída de código:
Enter dog characteristics to search for separated by commas big, grey, stripes None of our dogs are a match for: big, grey, stripes Press the Enter key to continueSe você especificou mais restrições para entradas válidas, execute os casos de teste apropriados para verificar seu trabalho.
Observação
Se o código atender aos requisitos, você deverá ser capaz de concluir cada etapa em ordem e ver os resultados esperados em uma única passagem de teste. Se você adicionou restrições adicionais, talvez seja necessário sair do aplicativo e, em seguida, executar um teste separado para concluir sua verificação.
Parabéns se você teve êxito neste exercício de desafio!