תרגיל - הוספת נתוני תרומה מוצעים
בשלב זה של תהליך הפיתוח, אתה מעדכן את הקוד שסופק בתיקיה 'פרוייקט להפעלה', ומוסיף תכונות עבור 'תרומה מוצעת' ליישום. קובץ ההתחלה project.cs אמור להיות פתוח ב- Visual Studio Code. חזור ליחידת ההכנה הקודמת אם אתה זקוק להוראות לתחילת העבודה.
יצירת התכונות 'תרומה מוצעת'
תכונות התרומה שנוספו דורשות ממך ליצור משתנה suggestedDonation , ולהרחיב את המערך ourAnimals כדי להכיל את נתוני התרומה החדשים. כמו כן, עליך להוסיף את סכומי התרומה המוצעים עבור כל בעל חיים, וליישם כמות ברירת מחדל כאשר מידע התרומה המוצע חסר.
הוספת תמיכה עבור נתוני תרומה מוצעים
עליך ליצור משתנה חדש כדי להוסיף תרומות מוצעות ולהרחיב את המערך ourAnimals כך שהוא יחזיק את הנתונים החדשים.
שים לב לקוד תחת הערה #1 שמצהיר על משתנים המשמשים לאכלוס המערך
ourAnimalsעבור כל בעל חיים.עליך להצהיר על תרומה
stringנוספת עבור נתוני התרומה המוצעים.// #1 the ourAnimals array will store the following: string animalSpecies = ""; string animalID = ""; string animalAge = ""; string animalPhysicalDescription = ""; string animalPersonalityDescription = ""; string animalNickname = "";צור את המשתנה
suggestedDonationמתחת להצהרה עבורanimalNickname.ההצהרה עבור
suggestedDonationתתווסף עם הקוד הבא:string suggestedDonation = "";אתר את הקוד כדי ליצור את ההערה
ourAnimalsהבאה של המערך # 3.שורת הקוד הבאה יוצרת את המערך:
string[,] ourAnimals = new string[maxPets,6];הגדלים המגדירים
maxPets6את שני הממדים של המערך הם המספר המרבי של חיות מחמד והמספר עבור שש המחרוזות שהוגדרו במקור, אך ללא מקום לנתוניםsuggestedDonationהחדשים.ourAnimalsעדכן מערך כך7ש"עמודות" של נתונים עבור כל בעל חיים במקום6.השורה הבאה מציגה את הקוד המעודכן:
string[,] ourAnimals = new string[maxPets,7];הרחבת את המערך
ourAnimalsכדי לתמוך בנתונים שנוספוsuggestedDonation.
הוספת suggestedDonation סכומים לנתונים לדוגמה
החלף דקה כדי לעיין
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;הוסף ערך
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;- מקרה 0:
בקובץ 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;שים לב
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");.
לפני הערה #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מספר עשרוני נכון.ודא שקוד האימות שלך נמצא במקום הנכון!
שתי השורות שהוספת אמורות להופיע בקוד כשתי השורות המובילות של הקוד הבא:
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להשתמש בו בקוד.לאחר ההערה #2, הצהר על
decimalDonation, אחריstring menuSelection = "";:decimal decimalDonation = 0.00m;לבסוף, אתה מוכן לאכלוס נתונים עבור
suggestedDonationכל חיית מחמד.ממש לפני ההערה #5, מיד לאחר הסוגר
TryParse}שהשלמת, הוסף את הקוד הבא:ourAnimals[i, 6] = $"Suggested Donation: {decimalDonation:C2}";השתמשת בגירסה
decimalDonationשל נתוני התרומה המוצעים. בנוסף, השתמשת באינטרפולציה של מחרוזות ובעיצוב מטבע בפלט.הפחת דקה כדי לסקור את האופן בו נתוני התרומה המוצעים סופסוף הופכת אותם למערך
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" התפריט נתונים שנוספו.
שים לב לקוד תחת הערה #5, עבור לולאת התפריט בתוך
case 1.הלולאה הפנימית "
for (int j = 0; j <6; j++)" שמדפיסה את תכונות חיית המחמד צריכה להיות בחשבון עבורsuggestedDonationהנתונים שנוספו.עדכן את תנאי היציאה של קוד הלולאה הפנימי. הגדלת תנאי היציאה ב- "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 כל פרטי חיית המחמד מוצגת:
- הפלט כולל את כל פרטי חיית המחמד לדוגמה, כולל: מזהה, מינים, גיל, כינוי, תיאור פיזי ותיאור אישיות.
- עבור כל חיית מחמד, התרומה המוצעת מוצגת עם סמל מטבע ושני מקומות עשרוניים של דיוק.
בדוק את העבודה שלך
בנה והפעל כדי לבדוק את הקוד. השתמש בשלבים אלה בכל פעם שתצטרך לבדוק את הקוד.
בתפריט קוד Visual Studio קובץ, בחר שמור.
בתצוגת EXPLORER, לחץ באמצעות לחצן העכבר הימני על Starter ולאחר מכן בחר פתח במסוף משולב.
לוח TERMINAL אמור להיפתח מתחת לאזור עורך הקוד.
יש כמה דרכים לפתיחת המסוף המשולב של Visual Studio Code. לדוגמה, התפריט העליון מספק גישה ללוח TERMINAL הן מתפריט תצוגה והן מתפריט מסוף. כמו כן, קיצורי מקשים הפתחים את לוח המסוף הם אפשרות רבת ערך להגברת יעילות הקידוד. כל שיטה מקובלת.
שים לב כי לוח המסוף כולל שורת פקודה, ושההודעה מציגה את נתיב התיקיה הנוכחי. לדוגמה:
C:\Users\someuser\Desktop\GuidedProject\Starter>באפשרותך להשתמש בלוח TERMINAL כדי להפעיל פקודות של ממשק שורת הפקודה (CLI), כגון
dotnet buildוdotnet run- . הפקודהdotnet buildמבצעת קומפילציה של הקוד שלך ומציגה הודעות שגיאה ואזהרה הקשורות לתחביר הקוד שלך.חשוב
עליך לוודא ששורת הפקודה של המסוף פתוחה בבסיס סביבת העבודה של הפרוייקט שלך. במקרה זה, הבסיס של סביבת העבודה של הפרוייקט הוא התיקיה Starter, שבה ממוקמים קבצי Starter.csproj Program.cs הבאים. בעת הפעלת פקודות במסוף, הפקודות ינסה לבצע פעולות באמצעות מיקום התיקיה הנוכחי. אם אתה מנסה להפעיל את הפקודות
dotnet buildאוdotnet runממיקום תיקיה שאינו מכיל את הקבצים, הפקודות יוצרות הודעות שגיאה.בשורת הפקודה 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ובפעולות בכל פעם שתצטרך לבדוק את הקוד בתרגילים הבאים במודול זה.אם אתה רואה הודעות שגיאה או אזהרה, עליך לתקן אותן לפני שתמשיך.
הודעות שגיאה ואזהרה מסמן את שורת הקוד שבה נמצאה הבעיה. ההודעה הבאה היא דוגמה להודעת
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 ב'סופי' כדי לעזור לך לבודד ולפתור בעיה בקוד שלך.
הימנע משימוש בקוד הפתרון בעת פיתוח הפתרון שלך. זכור שאתה לומד מטעויות, ושכל מפתח מקדיש זמן לאיתור ולתיקון שגיאות.
בדוק את יישום המסוף המעודכן, ב- 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 חדש ואם אתה עדיין נתקל בבעיות בבדיקת קוד תיקיית הפתרון עבור תרגיל זה.
- הזן "
הקלד
exit, בתפריט האפליקציה, כדי לסיים את התוכנית ולאחר מכן סגור את לוח המסוף.