Přidání podpory vyhledávání více termínů
Aplikace Contoso Pets pomáhá najít nové domovy pro opuštěné domácí zvířata. Tým chce vylepšenou funkci vyhledávání, aby uživatelé mohli při hledání psů zadat více termínů.
Specifikace vyhledávání
V tomto prvním cvičení úkolu je potřeba aktualizovat funkci vyhledávání s jedním termínem, aby uživatelé mohli zadat více hledaných termínů oddělených čárkami.
Shromážděte několik vyhledávacích termínů od uživatele
- Povolit uživateli zadat více hledaných termínů při hledání psů
- Uživatel potřebuje pokyny k zadání hledaných termínů oddělených čárkami.
- Oddělte jednotlivé hledané termíny od vstupního řetězce uživatele a uložte je jako hodnoty v poli.
- Seřazení termínů v poli v alfanumerickém pořadí řazení
Identifikování psů podle popisů, které odpovídají jednomu nebo více vyhledávacím termínům uživatele.
- Při identifikaci psa v rámci
animalsArrayvyhledejte shody pro každý termín, který uživatel zadal. - Pro shodu termínu vypíšete zprávu s názvem psů a termínem, který se shoduje.
- příklad:
Our dog Jake is a match for your search for sheppard!
- příklad:
- Když jsou veškerá hledání termínů pro aktuální popis psa dokončena,
- U jednoho nebo více shod zadejte přezdívku a popis aktuálního psa.
- V případě jedné nebo více shod sledujte, že došlo ke shodě, abyste věděli, že se nezobrazuje zpráva "Nenašly se žádné shody pro žádné dostupné psy" (viz další položka).
- Po dokončení všech vyhledávání psů, která nevedla k žádným shodám, se zobrazí zpráva: "Nebyla nalezena žádná shoda pro žádné dostupné psy."
Vynucujte následující ověřovací pravidla
- hodnoty nesmí mít hodnotu null.
- hodnoty nemohou mít nulový počet znaků
- jakékoli další omezení je až na vývojáře.
Komentáře ke kódu
- Číslované komentáře v úvodním kódu nabízejí návrhy
- Komentáře jsou v sekvenčním pořadí a na toto cvičení výzvy se vztahují pouze komentáře začínající na #1, #2 a #3.
Ukázkový výstup
Podívejte se na následující animovaný obrázek.
Všimněte si dočasného zobrazení "
searching..." následovaného aktuálním termínem (příklad: "searching...retriever")Všimněte si, že pořadí termínů ve vyhledávání je nyní alfanumerické.
Všimněte si, že zprávy pro shody přetrvávají (příklad: "
Our dog lola is a chase match!")
Projděte si ukázkový výstup v následující části "Jak zkontrolovat svou práci", abyste podrobněji vysvětlili, jak implementovat funkce.
Postup kontroly práce
Pokud chcete ověřit, že váš kód splňuje zadané požadavky, proveďte následující kroky:
- K sestavení a spuštění aplikace použijte Visual Studio Code.
Poznámka:
Ověřovací test můžete před dokončením všech kroků ověření ukončit, pokud se zobrazí výsledek, který nesplňuje požadavky specifikace. Pokud chcete vynutit ukončení spuštěné aplikace, stiskněte na panelu Terminálu kombinaci kláves Ctrl-C. Po ukončení spuštěné aplikace dokončete úpravy, u kterých se domníváte, že budou řešit váš problém, uložte aktualizace do Program.cs souboru a pak znovu sestavte a spusťte kód.
Příkazový řádek terminálu by se měl zobrazit jako výchozí bod programu.
Na příkazovém řádku zadejte 2 menu:
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 commasNa příkazovém řádku zadejte velký, krém, zlatý pro testování, kdy více než jeden hledaný termín odpovídá popisům psa. Ověřte, že se panel terminálu aktualizuje zprávou podobnou ukázkě výstupu kódu:
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 continueNa příkazovém řádku stiskněte klávesu Enter a pokračujte v hlavní nabídce.
Na příkazovém řádku zadejte 2 menu:
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 commasNa příkazovém řádku zadejte velké, šedé pruhy pro testování, když žádný z hledaných termínů neodpovídá popisu psa. Ověřte, že se panel terminálu aktualizuje zprávou podobnou ukázkovým výstupům kódu:
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 continuePokud jste zadali další omezení platných položek, spusťte příslušné testovací případy a ověřte svou práci.
Poznámka:
Pokud váš kód splňuje požadavky, měli byste být schopni provést každý krok v daném pořadí a zobrazit očekávané výsledky v jednom testovacím průchodu. Pokud jste přidali další omezení, možná budete muset aplikaci ukončit a pak spustit samostatný testovací průchod, abyste dokončili ověření.
Blahopřejeme, pokud jste uspěli v tomto náročném úkolu!