תרגיל - הוספת חיפוש כלבים

הושלם

בתרגיל זה, תוסיף את התכונה "הצג את כל הכלבים עם מאפיין שצוין" (פריט תפריט #2) לאישום. התרגיל משתמש בפרוייקט הפתרון בתרגיל הקודם שהוסיף suggestedDonation נתונים.

הערה

פרוייקט זה הוא תכונת "מוצר בר-ישים מינימלי" (MVP). תכונות MVP מיועדות להיות אב טיפוס בסיסי לעבודה של תכונה המאפשרת מסירה מהירה וקלה. MVP אינו מוצר סופי בדרך כלל, מטרתו היא לעזור לך לעבוד על רעיון, לבדוק אותו ולאסוף דרישות נוספות.

תכונת החיפוש מבקש מהמשתמש מונח קלט (או צירוף מילים) לחיפוש יחיד המתאר מאפיין שברצונך לאמץ חיית מחמד. לאחר מכן, התיאורים עבור כלבים הניתנים לאימוץ יחפשו התאמות מדויקות של קלט המשתמש. מידע אודות הכלבים התואמים הוא פלט הקונסולה. אם לא זוהו התאמות, מוצגת ההודעה "אף אחד מהכלבים שלנו אינו תואם " מוצגת יחד עם מונח החיפוש שנמצא בשימוש.

המשימות שאתה משלים בתרגיל זה הן:

  1. אסוף קלט משתמש עבור מונח החיפוש האופייני לחיות מחמד
  2. מעבר בלולאה במערך החיות וזיהוי "כלבים"
  3. חפש בתיאור חיית המחמד של כל כלב אחר התאמה למונח
  4. הצג את הכלבים שיש להם התאמת מונחים

ב- Visual Studio Code, פתח את Project.cs ההשלמה מהתרגיל הקודם שהוסיף את פרטי התרומה כדי להתחיל בעבודה.

  1. סקור את משפט בורר התפריטים אחרי ההערה #5 Project.cs הקוד. אתה מגלה את הקוד שמציג את ההודעה "UNDER CONSTRUCTION ".

  2. מחק את הקוד Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress."); בין case "2": המשפט והקוד Console.WriteLine("Press the Enter key to continue."); כך שהקוד תואם לדוגמה הבאה:

    case "2":
        // Display all dogs with a specified characteristic
        Console.WriteLine("Press the Enter key to continue.");
        readResult = Console.ReadLine();
        break; 
    
  3. הוסף קוד כדי לאסוף קלט משתמש עבור המחרוזת dogCharacteristic . איסוף הקלט דורש לולאה while ממשיכה לבקש מהמשתמש עד שהוא שולח קלט. הלולאה מורה למשתמש ל- Enter one desired dog characteristic to search for. הזנת מחרוזת ריקה חוזרת על הלולאה. מקם את הקוד הבא case "2: ממש לפני המשפט break; , כפי שמוצג:

    case "2":
        // Display all dogs with a specified characteristic
        string dogCharacteristic = "";
    
        while (dogCharacteristic == "")
        {
            // have the user enter physical characteristics to search for
            Console.WriteLine($"\nEnter one desired dog characteristics to search for");
            readResult = Console.ReadLine();
            if (readResult != null)
            {
                dogCharacteristic = readResult.ToLower().Trim();
            }
        } 
        Console.WriteLine("Press the Enter key to continue.");
        readResult = Console.ReadLine();
        break;
    

    סקור את הקוד שנוסף. תכונות הקוד העיקריות case "2": כוללות:

    • הקוד מתחיל בהצהרת מחרוזת בטווח string dogCharacteristic = ""; של case "2":. לא ניתן להשתמש בשום מקום dogCharacteristic מחוץ לקוד משפט המקרה.
    • לאחר Console.ReadLine() איסוף קלט המשתמש מאחר שהוא dogCharacteristic מבטיח שהערך אינו Null, ומגדיר את המחרוזת לאותיות קטנות וחיתוך הרווחים המקיפים.
    • אם dogCharacteristic יש ערך Null, הלולאה חוזרת על איסוף הקלט.
  4. שמור את הקוד ולאחר מכן בצע קומפילציה dotnet build באמצעות במסוף (באפשרותך לעיין בשלבים בתרגיל הקודם) ולתקן שגיאות.

  5. הפעל את הקוד באמצעות dotnet run.

  6. כדי לבדוק את פונקציונליות הקלט של מונח החיפוש של היישום, הזן 2, בחר באפשרות תפריט 2, לחיפוש.

  7. הקש על "Enter" מבלי להזין נתונים בשורת הפקודה "הזן מאפיין כלב אחד שברצונך לחפש ". התוכנית אמורה לחזור לבקשה Enter one desired dog characteristics to search for .

  8. התוכנית אמורה לחזור לבקשה עד להזנת תווים.

  9. בשורת הפקודה, בדוק את ערך מונח החיפוש, עם golden הערך שלך. התוכנית אמורה לחזור לתפריט ללא שגיאה.

  10. בתפריט, הקלד "Exit" כדי לצאת מהתוכנית.

זיהוי בעלי החיים שהם כלבים

כעת תוסיף תכונה לחיפוש באמצעות קלט המשתמש בתוך תיאורי dogCharacteristic הכלב לאחר הקוד הקודם תחת case "2". אבל תחילה עליך לזהות את הכלבים.

  1. בסוף הקוד, case "2" ממש לפני הקוד Console.WriteLine("\n\rPress the Enter key to continue");, שהוא לפני , break;הוסף את הקוד הבא:

    // #6 loop through the ourAnimals array to search for matching animals
    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 1].Contains("dog"))
        {
            // #7 Search combined descriptions and report results
        }
    }
    
  2. קח דקה כדי לבדוק את הלולאה שנוספה לסוף case "2": הקוד.

    הקוד מסנן עבור "כלבים" באמצעות ourAnimals[i,1], כאשר animalSpecies הנתונים מאוחסנים. אם animalSpecies מאחסן את "כלב" כערך שלו, הקוד עובר אל הסוגריים המרובעים של משפט if שבו החיפוש של התיאורים המשולבים עשוי להתרחש.

  3. בצע הידור של הקוד שלך באמצעות dotnet build שגיאות ותקן אותן.

חפש את מידע התיאור המשולב של כלבים

הקוד הקודם מבטיח שתחפש רק בתיאורים של כלבים. כעת עליך לחפש בתיאורים של כלבים ופלט מידע אודות התאמות.

בזמן שאתה חושב על התיאורים, אתה מבינים שיש שני תיאורים ו animalPhysicalDescription - animalPersonalityDescription;. הצוות דן בפונקציונליות ומחליט שהתיאור המשולב מתאים לחיפוש.

הערה

מפתחים מסוימים מתייחסים לתווכם של הדרישות במהלך הפיתוח בתור "היקף שרץ". אף על פי שהשילוב של התיאורים אינו עבודה רבה, הוא עדיין מוסיף זמן ומורכבות. מסיבה זו, עליך לידע את הצוות שדרישות נוספות מעכבות לעתים קרובות את השלמת הפרוייקט.

עליך להצהיר על מחרוזת, כדי dogDescription להכיל את הנתונים המשולבים שמקורם ב- וanimalPhysicalDescription- animalPersonalityDescription; .

  1. הצהר dogDescription לפני הערה #6 עם הקוד הבא:

    string dogDescription = "";
    

    כעת השתמש במחרוזת שהוצהרת dogDescription קודם לכן ומלא אותה בתיאורים הפיזיים והאישיים עבור כל בעל חיים

  2. אכלס את dogDescription המשתנה בערךים עבור ו- animalPhysicalDescriptionanimalPersonalityDescription; .

    הוסף את הקוד הבא לאחר הערה # 7:

    dogDescription = ourAnimals[i, 4] + "\n" + ourAnimals[i, 5];
    

חפש בתיאורים המשולבים של כלבים וצג

כעת תוסיף את החיפוש בנתונים dogCharacteristic המשולבים של dogDescription. עליך להוסיף משפט if כדי לקבוע אם יש לך התאמה לחיפוש של כל כלב.

  1. עדכן את הקוד הבא הערה #7, לאחר dogDescription = ourAnimals[i, 4] + "\n" + ourAnimals[i, 5]; עם הקוד:

    if (dogDescription.Contains(dogCharacteristic))
    {
        Console.WriteLine($"\nOur dog {ourAnimals[i, 3]} is a match!");
        Console.WriteLine(dogDescription);
    }
    

    בחן את דוגמת הקוד הקודמת if , כאשר dogCharacteristicdogDescription המשפט ימצא התאמה עבורה בהודעה לגבי התאמת הכלב והתיאור יפלט לקונסולה. עדיין עליך לבדוק את ההודעה "לא נמצאו התאמות".

  2. הוסף את הקוד noMatchesDog = true:

    הוסף את הקוד הבא לפני הערה #6:

    bool noMatchesDog = true;
    

    כעת באפשרותך לעקוב אחר מצב שבו לא נמצאו התאמות עם משתנה מעקב זה. כאשר ברירת המחדל מוגדרת true לערך זה, "זה נכון שאין כלבים תואמים לחיפוש". כעת, כאשר כלב נמצא, באפשרותך "להפוך" noMatchesDogtrue את false

  3. בסוגריים המרובעים של if (dogDescription.Contains(dogCharacteristic)) המשפט, הוסף את הקוד הבא:

    noMatchesDog = false;
    
  4. בדוק שהקוד בתוך הסוגריים המרובעים של if (dogDescription.Contains(dogCharacteristic)) הוזן כראוי.

    הקוד הבא אמור להיות ברשותך:

        if (dogDescription.Contains(dogCharacteristic))
        {
            Console.WriteLine($"\nOur dog {ourAnimals[i, 3]} is a match!");
            Console.WriteLine(dogDescription);
    
            noMatchesDog = false;
        }
    

    לבסוף, עליך ליצור קוד שמחליט אם יש לכתוב לקונסולה את ההודעה "לא נמצאו התאמות".

  5. בסוף הקוד, case "2" ממש לפני הקוד Console.WriteLine("\n\rPress the Enter key to continue");, שהוא לפני , break;הוסף את הקוד הבא:

    if (noMatchesDog)
    {
        Console.WriteLine("None of our dogs are a match found for: " + dogCharacteristic);
    }
    
    

    דוגמת קוד זו היא הקוד הסופי עבור תרגיל זה!

  6. שמור את השינויים שערכת.

בדוק את העבודה שלך

  1. בשורת הפקודה TERMINAL, כדי לבנות את קוד הפרוייקט, הזן את הפקודה הבאה: dotnet build.

    אם קיימות שגיאות שעליך לקרוא את הודעות השגיאה, תקשה לירות ולבצע תיקונים או לסקור את קוד הפתרון בתיקיה "סופי".

  2. הפעל את קוד הפרוייקט שלך במסוף באמצעות dotnet run.

לאחר הפעלת הקוד, מוצגים שני פריטי תפריט.

  1. בתפריט, הזן "" ו- "2Enter" כדי לבדוק שוב ושוב את חיפוש הכלב.

     - Enter nothing as input to test the null entry behavior
     - Enter "scuba" as input to test the "match not found"
     - Enter "golden" to get two matches
     - Enter "medium" to get one match
    

    אם הכל עבד כצפוי בשני השלבים, מזל טוב! אחרת, חפש את השגיאות על-ידי בדיקת שלבי ההתעמלות. במידת הצורך, התחל מחדש או בדוק את קוד התיקיה הסופי עבור קוד פתרון עבור תרגיל זה.

  2. הקלד exit, בתפריט האפליקציה, כדי לסיים את התוכנית ולאחר מכן סגור את לוח המסוף.