Adicionar suporte à pesquisa de vários termos

Concluído

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!
  • 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!")

      Captura de tela animada de um exemplo de aplicativo pesquisando descrições de cachorro com quatro termos enviados pelo usuário.

  • 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:

  1. 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.

  1. O prompt de comando do terminal deve ser exibido como o ponto de partida para o programa

  2. 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 commas
    
  3. No 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 continue
    
  4. No prompt de comando, pressione a tecla Enter para avançar para o menu principal.

  5. 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 commas
    
    
  6. No 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 continue
    
  7. Se 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!