תרגיל - הוספת נתוני תרומה מוצעים

הושלם

בשלב זה של תהליך הפיתוח, אתה מעדכן את הקוד שסופק בתיקיה 'פרוייקט להפעלה', ומוסיף תכונות עבור 'תרומה מוצעת' ליישום. קובץ ההתחלה project.cs אמור להיות פתוח ב- Visual Studio Code. חזור ליחידת ההכנה הקודמת אם אתה זקוק להוראות לתחילת העבודה.

יצירת התכונות 'תרומה מוצעת'

תכונות התרומה שנוספו דורשות ממך ליצור משתנה suggestedDonation , ולהרחיב את המערך ourAnimals כדי להכיל את נתוני התרומה החדשים. כמו כן, עליך להוסיף את סכומי התרומה המוצעים עבור כל בעל חיים, וליישם כמות ברירת מחדל כאשר מידע התרומה המוצע חסר.

הוספת תמיכה עבור נתוני תרומה מוצעים

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

  1. שים לב לקוד תחת הערה #1 שמצהיר על משתנים המשמשים לאכלוס המערך ourAnimals עבור כל בעל חיים.

    עליך להצהיר על תרומה string נוספת עבור נתוני התרומה המוצעים.

    // #1 the ourAnimals array will store the following: 
    string animalSpecies = "";
    string animalID = "";
    string animalAge = "";
    string animalPhysicalDescription = "";
    string animalPersonalityDescription = "";
    string animalNickname = "";
    
  2. צור את המשתנה suggestedDonation מתחת להצהרה עבור animalNickname.

    ההצהרה עבור suggestedDonation תתווסף עם הקוד הבא:

    string suggestedDonation = "";
    
  3. אתר את הקוד כדי ליצור את ההערה ourAnimals הבאה של המערך # 3.

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

    string[,] ourAnimals = new string[maxPets, 6];

    הגדלים המגדירים maxPets6 את שני הממדים של המערך הם המספר המרבי של חיות מחמד והמספר עבור שש המחרוזות שהוגדרו במקור, אך ללא מקום לנתונים suggestedDonation החדשים.

  4. ourAnimals עדכן מערך כך 7 ש"עמודות" של נתונים עבור כל בעל חיים במקום 6.

    השורה הבאה מציגה את הקוד המעודכן:

    string[,] ourAnimals = new string[maxPets, 7];

    הרחבת את המערך ourAnimals כדי לתמוך בנתונים שנוספו suggestedDonation .

הוספת suggestedDonation סכומים לנתונים לדוגמה

  1. החלף דקה כדי לעיין case 0: בתוך משפט הבורר בהערה הבאה #4.

    הקוד הבא המגדיר נתונים לדוגמה עבור חיית המחמד הראשונה לפני suggestedDonation יצירת הנתונים. זה יתאים יפה מתחת animalNickname!

        case 0:
            animalSpecies = "dog";
            animalID = "d1";
            animalAge = "2";
            animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
            animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
            animalNickname = "lola";
            break;
    
  2. הוסף ערך suggestedDonation מעל המשפט break עבור באמצעות case 0;default: הערכים הבאים:

    • מקרה 0: suggestedDonation = "85.00";
    • מקרה 1: suggestedDonation = "49.99";
    • מקרה 2: suggestedDonation = "40.00";
    • מקרה 3: suggestedDonation = "";
    • ברירת מחדל: suggestedDonation = "";

    הקוד הבא מציג קוד case 0: עם הוספת 'suggestedDonation':

        case 0:
            animalSpecies = "dog";
            animalID = "d1";
            animalAge = "2";
            animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
            animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
            animalNickname = "lola";
            suggestedDonation = "85.00";
            break;
    
  3. בקובץ project.cs, אתר את המערך הבא המאוכלס נתונים של חיית המחמד מ משפטי אירוע (זה ממש לפני הערה # 5):

        ourAnimals[i, 0] = "ID #: " + animalID;
        ourAnimals[i, 1] = "Species: " + animalSpecies;
        ourAnimals[i, 2] = "Age: " + animalAge;
        ourAnimals[i, 3] = "Nickname: " + animalNickname;
        ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription;
        ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;
    
  4. שים לב suggestedDonation שהנתונים אינם נכללים כחלק מקוד ההתחלה של הנתונים לדוגמה לאכלוס המערך.

    הגיוני לאכלס את המערך במשפט כגון:

    ourAnimals[i, 6] = "Suggested Donation: "  + suggestedDonation;
    

    אבל אל תוסיף קוד זה. בסעיף הבא, תשתמש בגישה אחרת.

אימות נתונים עם TryParse()

המשתנה suggestedDonation נועד להיות ערך מספרי, אך נאסף ו מאוחסן כ- string. שקול מקרים עתידיים suggestedDonation שבהם עליך לאמת את הערך העשרוני, ושבאפשרותך להמיר אותו לעשרוני כדי שיהיה זמין לשימוש בחישובי חיוב. כדי להימנע משגיאות כאשר משתמשים מזנים מספרים בתבנית טקסט, כגון twenty, עליך להשתמש באימות TryParse .

הערה

דוגמאות הקוד בתרגיל זה נועדו בהתבסס על en-US התרבות, ולהשתמש בנקודה (.) כתו המפריד העשרוני. בנייה והפעלה של הקוד באמצעות הגדרת תרבות המשתמשת במפריד עשרוני שונה ( ,כגון פסיק) מספקת לעתים קרובות תוצאות או שגיאות בלתי צפויות. כדי לפתור בעיה זו, החלף את המפרידים העשרוניים של הנקודה במדגמאות הקוד במפריד העשרוני המקומי (כגון ,). לחלופין, כדי להפעיל תוכנית באמצעות הגדרת en-US, הוסף: using System.Globalization;לחלק העליון של התוכנית. ולאחר הצהרות אחרות using , הוסף CultureInfo.CurrentCulture = new CultureInfo("en-US");.

  1. לפני הערה #5, בתוך סוף בלוק הקוד, suggestedDonation הוסף את הקוד לאימות שניתן לשדר כמספר עשרוני.

    הוסף את הקוד הבא:

    if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
        decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
    }
    

    אם לא suggestedDonation ניתן לשדר את המשתנה כ- decimal, הקוד מקצה ערך ברירת מחדל decimalDonation = 45.00m;. אם המרת השחקנים מצליחה, אכלוס TryParse .decimalDonation בכל מקרה, מייצג decimalDonation מספר עשרוני נכון.

  2. ודא שקוד האימות שלך נמצא במקום הנכון!

    שתי השורות שהוספת אמורות להופיע בקוד כשתי השורות המובילות של הקוד הבא:

        if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
            decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
        }
    }
    
    // #5 display the top-level menu options
    

    שים לב, האימות עדיין לא פועל. אתה לא יכול לשכוח, הצורך להצהיר decimalDonation להשתמש בו בקוד.

  3. לאחר ההערה #2, הצהר על decimalDonation, אחרי string menuSelection = "";:

    decimal decimalDonation = 0.00m;
    

    לבסוף, אתה מוכן לאכלוס נתונים עבור suggestedDonation כל חיית מחמד.

  4. ממש לפני ההערה #5, מיד לאחר הסוגר TryParse} שהשלמת, הוסף את הקוד הבא:

    ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";
    

    השתמשת בגירסה decimalDonation של נתוני התרומה המוצעים. בנוסף, השתמשת באינטרפולציה של מחרוזות ובעיצוב מטבע בפלט.

  5. הפחת דקה כדי לסקור את האופן בו נתוני התרומה המוצעים סופסוף הופכת אותם למערך ourAnimals .

    הקוד הבא מאכלס את ourAnimals המערך בהקשר של TryParse():

    if (!decimal.TryParse(suggestedDonation, out decimalDonation)){
        decimalDonation = 45.00m; // if suggestedDonation NOT a number, default to 45.00
        }
    ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";
    }
    
    // #5 display the top-level menu options
    

    שים לב כי באמצעות הקוד {decimalDonation:C2} המוצע לתרומה, decimalDonationמ- , מוצג עם סמל המטבע המקומי ושני מקומות עשרוניים, כפי שמתבקש על-ידי עיצוב המטבע :C2.

סקירה ועדכון של המקום ourAnimals שבו יש להשתמש במערך

הוספת הנתונים שנוצרו suggestedDonation נדרשת לעדכונים נוספים. חסרים באפשרויות "1. List all of our current pet information" התפריט נתונים שנוספו.

  1. שים לב לקוד תחת הערה #5, עבור לולאת התפריט בתוך case 1.

    הלולאה הפנימית "for (int j = 0; j < 6; j++)" שמדפיסה את תכונות חיית המחמד צריכה להיות בחשבון עבור suggestedDonation הנתונים שנוספו.

  2. עדכן את תנאי היציאה של קוד הלולאה הפנימי. הגדלת תנאי היציאה ב- "1", כך שהוא הופך ל- j <7. ודא שהקוד שלך תואם לקוד הבא:

    case "1":
    // list all pet info
    for (int i = 0; i < maxPets; i++)
    {
        if (ourAnimals[i, 0] != "ID #: ")
        {
            Console.WriteLine();
            for (int j = 0; j < 7; j++) // increased exit condition
            {
                Console.WriteLine(ourAnimals[i, j]);
            }
        }
    }
    

מבט כולל על בדיקות

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

  1. הקוד תואם ללא שגיאות.

  2. בחירה באפשרות תפריט 1 כל פרטי חיית המחמד מוצגת:

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

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

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

  1. בתפריט קוד Visual Studio קובץ, בחר שמור.

  2. בתצוגת EXPLORER, לחץ באמצעות לחצן העכבר הימני על Starter ולאחר מכן בחר פתח במסוף משולב.

    לוח TERMINAL אמור להיפתח מתחת לאזור עורך הקוד.

    יש כמה דרכים לפתיחת המסוף המשולב של Visual Studio Code. לדוגמה, התפריט העליון מספק גישה ללוח TERMINAL הן מתפריט תצוגה והן מתפריט מסוף. כמו כן, קיצורי מקשים הפתחים את לוח המסוף הם אפשרות רבת ערך להגברת יעילות הקידוד. כל שיטה מקובלת.

  3. שים לב כי לוח המסוף כולל שורת פקודה, ושההודעה מציגה את נתיב התיקיה הנוכחי. לדוגמה:

    C:\Users\someuser\Desktop\GuidedProject\Starter>
    

    באפשרותך להשתמש בלוח TERMINAL כדי להפעיל פקודות של ממשק שורת הפקודה (CLI), כגון dotnet build ו dotnet run- . הפקודה dotnet build מבצעת קומפילציה של הקוד שלך ומציגה הודעות שגיאה ואזהרה הקשורות לתחביר הקוד שלך.

    חשוב

    עליך לוודא ששורת הפקודה של המסוף פתוחה בבסיס סביבת העבודה של הפרוייקט שלך. במקרה זה, הבסיס של סביבת העבודה של הפרוייקט הוא התיקיה Starter, שבה ממוקמים קבצי Starter.csproj Program.cs הבאים. בעת הפעלת פקודות במסוף, הפקודות ינסה לבצע פעולות באמצעות מיקום התיקיה הנוכחי. אם אתה מנסה להפעיל את הפקודות dotnet build או dotnet run ממיקום תיקיה שאינו מכיל את הקבצים, הפקודות יוצרות הודעות שגיאה.

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

    לאחר כמה שניות, אתה אמור לראות הודעה המציינת כי גירסת ה- Build שלך הצליחה ושעלית ב- 0 Warnings and 0 Errors.

    Determining projects to restore...
    All projects are up-to-date for restore.
    Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net10.0\Starter.dll
    
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    

    הערה

    השתמש בשלבים dotnet build הקודמים dotnet run ובפעולות בכל פעם שתצטרך לבדוק את הקוד בתרגילים הבאים במודול זה.

  5. אם אתה רואה הודעות שגיאה או אזהרה, עליך לתקן אותן לפני שתמשיך.

    הודעות שגיאה ואזהרה מסמן את שורת הקוד שבה נמצאה הבעיה. ההודעה הבאה היא דוגמה להודעת Build FAILED שגיאה:

    C:\Users\someuser\Desktop\GuidedProject\Starter\Program.cs(53,18): error CS1002: ; expected [C:\Users\someuser\Desktop\GuidedProject\Starter\Starter.csproj]

    הודעה זו מציינת את סוג השגיאה שזוהתה והיכן למצוא אותה. במקרה זה, ההודעה מציינת שקובץ Program.cs מכיל שגיאה - error CS1002: ; expected. ההצעות ; expected ששכחת לכלול ; בסוף הצהרה. החלק Program.cs(53,18) של ההודעה מציין את מיקום השגיאה, בשורת הקוד 53, במיקום של 18 תווים משמאל.

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

    לאחר שתפתור את הבעיות ותשמר את העדכונים, תוכל להפעיל שוב את dotnet build הפקודה. המשך עד שיהיה לך 0 Warning(s) and 0 Error(s).

    אם אתה נתקל בקשיים בפתרון בעיה בעצמך, בדוק את Program.cs התיקיה 'סופי' הכלול בהורדה הושלמה במהלך ההתקנה. הקוד Program.cs התיקיה Final מייצג את מסקנות כל התרגילים במודול זה, כך שהוא כולל קוד שלא אתה יוצר עדיין.

    קוד הפתרון נראה לעתים קרובות שונה Program.cs הקוד שפיתת לנקודה זו בפרוייקט המדריך. עם זאת, באפשרותך לבדוק את Program.cs ב'סופי' כדי לעזור לך לבודד ולפתור בעיה בקוד שלך.

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

  6. בדוק את יישום המסוף המעודכן, ב- Build של שורת הפקודה TERMINAL והפעל את קוד הפרוייקט שלך בפקודה אחת על-ידי הזנת: dotnet run. כאשר הקוד מפעיל שני פריטי תפריט מוצגים.

    • הזן "1" כדי לבדוק את פלט "הצג את כל חיות המחמד"
    • הזן "2" כדי לבדוק את הודעת מציין המיקום "בבנייה"

    הפלט עבור פריט התפריט #1 אמור להיות תואם בדוגמה הבאה:

    ID #: d1
    Species: dog
    Age: 2
    Nickname: lola
    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.
    Suggested Donation: $85.00
    
    ID #: d2
    Species: dog
    Age: 9
    Nickname: gus
    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.
    Suggested Donation: $49.99
    
    ID #: c3
    Species: cat
    Age: 1
    Nickname: snow
    Physical description: small white female weighing about 8 pounds. litter box trained.
    Personality: friendly
    Suggested Donation: $40.00
    
    ID #: c4
    Species: cat
    Age:
    Nickname: lion
    Physical description:
    Personality:
    Suggested Donation: $45.00
    

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

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