تمرين - كتابة التعليمات البرمجية لقراءة وحفظ بيانات صفيفAnimals الجديدة
في هذا التمرين، يمكنك تطوير حلقات التحقق من صحة إدخال البيانات لكل خاصية أليف ثم تخزين بيانات الصفيف الجديدة ourAnimals . المهام التفصيلية التي تكملها أثناء هذا التمرين هي:
- قراءة الأنواع والتحقق من صحتها: بناء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة للدخول والتحقق من صحة أنواع الأليفة.
- إنشاء معرف أليف: اكتب التعليمات البرمجية التي تستخدم petCount واسم الأنواع لإنشاء قيمة petID.
- قراءة العمر والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال عمر الأليف والتحقق من صحته.
- قراءة الوصف المادي والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال وصف فعلي للحيوان الأليف.
- قراءة وصف الشخصية والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال وصف لشخصية الأليف.
- قراءة الكنية والتحقق من صحتها: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال كنية للحيوان الأليف.
- اختبار التحقق: قم بإجراء اختبارات التحقق للتعليمات البرمجية التي تطورها في هذا التمرين.
هام
يجب إكمال التمرين السابق في هذه الوحدة النمطية قبل بدء هذا التمرين.
بناء حلقة لقراءة والتحقق من صحة أنواع الأليفة
في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم اسم نوع صالح، إما أو قطة. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalSpecies متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك إضافة متغير منطقي جديد يسمى validEntry إلى تطبيقك. يمكنك استخدام validEntry في تعبير يتم تقييمه كمعاييار خروج للحلقة.do
تأكد من أن Visual Studio Code مفتوح وأن ملف Program.cs مرئي في المحرر.
حدد موقع العبارة
while (anotherPet == "y" && petCount < maxPets)، ثم أضف سطر تعليمة برمجية فارغة في كتلة التعليمات البرمجية العلوية.في سطر التعليمات البرمجية الفارغة التي قمت بإنشائها، للإعلان
validEntryبقيمة أولية منfalse، أدخل التعليمات البرمجية التالية:bool validEntry = false;في السطر أدناه إعلان
validEntry، لإنشاءdoحلقة لإدخال بيانات الأنواع، أدخل التعليمات البرمجية التالية:// get species (cat or dog) - string animalSpecies is a required field do { } while (validEntry == false);داخل كتلة التعليمات البرمجية لبيانك
do، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry"); readResult = Console.ReadLine();للتأكد من
readResultأن قيمة ليست خالية قبل تعيين قيمةreadResultإلىanimalSpecies، أدخل التعليمات البرمجية التالية:if (readResult != null) { animalSpecies = readResult.ToLower(); }في السطر أسفل
animalSpeciesتعيين القيمة، للتأكد من أنanimalSpeciesيحتوي على اسم نوع صالح، أدخل التعليمات البرمجية التالية:if (animalSpecies != "dog" && animalSpecies != "cat") { validEntry = false; } else { validEntry = true; }قارن حلقة إدخال بيانات اسم الأنواع المكتملة بالتعليمات البرمجية التالية:
// get species (cat or dog) - string animalSpecies is a required field do { Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry"); readResult = Console.ReadLine(); if (readResult != null) { animalSpecies = readResult.ToLower(); if (animalSpecies != "dog" && animalSpecies != "cat") { //Console.WriteLine($"You entered: {animalSpecies}."); validEntry = false; } else { validEntry = true; } } } while (validEntry == false);في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
بناء قيمة معرف
في هذه المهمة، يمكنك استخدام animalSpecies المتغيرين و petCount لإنشاء القيمة التي تعينها إلى animalID.
أضف سطر تعليمة برمجية فارغا أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات اسم الأنواع.
لإنشاء القيمة وتعيينها
animalID، أدخل التعليمات البرمجية التالية:// build the animal the ID number - for example C1, C2, D3 (for Cat 1, Cat 2, Dog 3) animalID = animalSpecies.Substring(0, 1) + (petCount + 1).ToString();في قائمة ملف Visual Studio Code، حدد Save.
إنشاء حلقة لقراءة عمر الأليف والتحقق من صحته
في هذه المهمة، يمكنك إنشاء do تكرار حلقي يتكرر حتى يدخل المستخدم إما عددا صحيحا صالحا ? أو صحيحا يمثل عمر الأليف بالسنوات. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalAge متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. لاختبار ما إذا كانت السلسلة تمثل عددا صحيحا صحيحا أم لا animalAge ، يمكنك استخدام القيمة المنطقية validEntry . تقوم بتعريف متغير عدد صحيح جديد يسمى petAge لتخزين القيمة الرقمية. مرة أخرى، validEntry يتم استخدام المنطقية في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .
أضف سطر تعليمة برمجية فارغا أسفل السطر المستخدم لتعيين قيمة إلى المتغير الخاص بنا
animalID.لإنشاء تكرار
doحلقي لإدخال بيانات العمر، أدخل التعليمات البرمجية التالية:// get the pet's age. can be ? at initial entry. do { } while (validEntry == false);داخل كتلة التعليمات البرمجية من العبارة الخاصة بك
do، للإعلان عن متغير عدد صحيح يسمىpetAge، أدخل التعليمات البرمجية التالية:int petAge;في السطر أسفل إعلان
petAge، لعرض موجه رسالة وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:Console.WriteLine("Enter the pet's age or enter ? if unknown"); readResult = Console.ReadLine();للتأكد من
readResultأن قيمة ليست خالية قبل تعيين قيمةreadResultإلىanimalAge، أدخل التعليمات البرمجية التالية:if (readResult != null) { animalAge = readResult; }في السطر أسفل
animalAgeتعيين القيمة، للتحقق مما إذا كان المستخدم قد أدخل?قبل اختبار عدد صحيح صالح، أدخل التعليمات البرمجية التالية:if (animalAge != "?") { validEntry = int.TryParse(animalAge, out petAge); } else { validEntry = true; }قارن حلقة إدخال بيانات العمر المكتمل بالتعليمات البرمجية التالية:
// get the pet's age. can be ? at initial entry. do { int petAge; Console.WriteLine("Enter the pet's age or enter ? if unknown"); readResult = Console.ReadLine(); if (readResult != null) { animalAge = readResult; if (animalAge != "?") { validEntry = int.TryParse(animalAge, out petAge); } else { validEntry = true; } } } while (validEntry == false);في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
بناء حلقة لقراءة والتحقق من صحة الوصف المادي للحيوان الأليف
في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم قيمة سلسلة تمثل وصفا ماديا لحيوان أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalPhysicalDescription متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalPhysicalDescription في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .
أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات العمر.
لإنشاء تكرار
doحلقي لإدخال بيانات الوصف الفعلي، أدخل التعليمات البرمجية التالية:// get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank. do { } while (animalPhysicalDescription == "");داخل كتلة التعليمات البرمجية لبيانك
do، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)"); readResult = Console.ReadLine();للتأكد من
readResultأن قيمة ليست خالية قبل تعيين قيمةreadResultإلىanimalPhysicalDescription، أدخل التعليمات البرمجية التالية:if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); }لتعيين قيمة
"tbd"إلىanimalPhysicalDescriptionعندما تكون القيمة المدخلة هي""، أدخل التعليمات البرمجية التالية:if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; }قارن حلقة إدخال بيانات الوصف الفعلي المكتمل بالتعليمات البرمجية التالية:
// get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank. do { Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)"); readResult = Console.ReadLine(); if (readResult != null) { animalPhysicalDescription = readResult.ToLower(); if (animalPhysicalDescription == "") { animalPhysicalDescription = "tbd"; } } } while (animalPhysicalDescription == "");في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
إنشاء حلقة لقراءة وصف شخصية الأليف والتحقق من صحته
في هذه المهمة، يمكنك إنشاء do حلقة تتكرر حتى يدخل المستخدم قيمة سلسلة تمثل وصفا لشخصية أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalPersonalityDescription متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalPersonalityDescription في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .
أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات الوصف الفعلي.
لإنشاء تكرار
doحلقي لإدخال بيانات وصف الشخصية، أدخل التعليمات البرمجية التالية:// get a description of the pet's personality - animalPersonalityDescription can be blank. do { } while (animalPersonalityDescription == "");داخل كتلة التعليمات البرمجية لبيانك
do، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)"); readResult = Console.ReadLine();للتأكد من
readResultأن قيمة ليست خالية قبل تعيين قيمةreadResultإلىanimalPersonalityDescription، أدخل التعليمات البرمجية التالية:if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); }لتعيين قيمة
"tbd"إلىanimalPersonalityDescriptionعندما تكون القيمة المدخلة هي""، أدخل التعليمات البرمجية التالية:if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; }قارن حلقة إدخال بيانات وصف الشخصية المكتملة بالتعليمات البرمجية التالية:
// get a description of the pet's personality - animalPersonalityDescription can be blank. do { Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)"); readResult = Console.ReadLine(); if (readResult != null) { animalPersonalityDescription = readResult.ToLower(); if (animalPersonalityDescription == "") { animalPersonalityDescription = "tbd"; } } } while (animalPersonalityDescription == "");في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
إنشاء حلقة لقراءة الاسم المستعار للحيوان الأليف والتحقق من صحته
في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم قيمة سلسلة تمثل كنية لحيوان أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalNickname متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalNickname في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .
أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات وصف الشخصية.
لإنشاء تكرار
doحلقي لإدخال بيانات وصف الشخصية، أدخل التعليمات البرمجية التالية:// get the pet's nickname. animalNickname can be blank. do { } while (animalNickname == "");داخل كتلة التعليمات البرمجية لبيانك
do، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:Console.WriteLine("Enter a nickname for the pet"); readResult = Console.ReadLine();للتأكد من
readResultأن قيمة ليست خالية قبل تعيين قيمةreadResultإلىanimalNickname، أدخل التعليمات البرمجية التالية:if (readResult != null) { animalNickname = readResult.ToLower(); }لتعيين قيمة
"tbd"إلىanimalNicknameعندما تكون القيمة المدخلة هي""، أدخل التعليمات البرمجية التالية:if (animalNickname == "") { animalNickname = "tbd"; }قارن حلقة إدخال بيانات الكنية المكتملة بالتعليمات البرمجية التالية:
// get the pet's nickname. animalNickname can be blank. do { Console.WriteLine("Enter a nickname for the pet"); readResult = Console.ReadLine(); if (readResult != null) { animalNickname = readResult.ToLower(); if (animalNickname == "") { animalNickname = "tbd"; } } } while (animalNickname == "");في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
حفظ معلومات الأليفة الجديدة
في هذه المهمة، يمكنك حفظ القيم التي تم إدخالها لخصائص الأليفة إلى ourAnimals الصفيف.
أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات الكنية.
لتخزين قيم البيانات المحددة من قبل المستخدم، أدخل التعليمات البرمجية التالية:
// store the pet information in the ourAnimals array (zero based) ourAnimals[petCount, 0] = "ID #: " + animalID; ourAnimals[petCount, 1] = "Species: " + animalSpecies; ourAnimals[petCount, 2] = "Age: " + animalAge; ourAnimals[petCount, 3] = "Nickname: " + animalNickname; ourAnimals[petCount, 4] = "Physical description: " + animalPhysicalDescription; ourAnimals[petCount, 5] = "Personality: " + animalPersonalityDescription;في قائمة ملف Visual Studio Code، حدد Save.
افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.
إذا تم الإبلاغ عن أي أخطاء أو تحذيرات في الإصدار، فصحح المشكلات قبل المتابعة.
راجع عملك
في هذه المهمة، يمكنك تشغيل التطبيق الخاص بك من الوحدة الطرفية المتكاملة والتحقق من أن إدخال بيانات الأليفة يعمل بشكل صحيح.
إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.
في موجه الأوامر Terminal، أدخل dotnet run
في موجه الأوامر Terminal، أدخل 2
تحقق من تحديث لوحة Terminal لإظهار الإخراج التالي:
We currently have 4 pets that need homes. We can manage 4 more. Enter 'dog' or 'cat' to begin a new entryأدخل القيم التالية في موجهات الأوامر الطرفية وتحقق من عرض كل مطالبة لاحقة:
- في المطالبة
Enter 'dog' or 'cat' to begin a new entry، أدخل dog - في المطالبة
Enter the pet's age or enter ? if unknown، أدخل ؟ - في المطالبة
Enter a physical description of the pet (size, color, gender, weight, housebroken)، اضغط على المفتاح Enter. - في المطالبة
Enter a description of the pet's personality (likes or dislikes, tricks, energy level)، اضغط على المفتاح Enter. - في المطالبة
Enter a nickname for the pet، اضغط على المفتاح Enter.
يجب تحديث لوحة Terminal على النحو التالي:
Enter 'dog' or 'cat' to begin a new entry dog Enter the pet's age or enter ? if unknown ? Enter a physical description of the pet (size, color, gender, weight, housebroken) Enter a description of the pet's personality (likes or dislikes, tricks, energy level) Enter a nickname for the pet Do you want to enter info for another pet (y/n)- في المطالبة
في موجه الأوامر Terminal، أدخل n
تحقق من تحديث لوحة Terminal لإظهار خيارات القائمة الرئيسية.
في موجه الأوامر Terminal، أدخل 1
تحقق من تحديث لوحة Terminal لإظهار الإخراج التالي:
ID #: d1 Species: dog Age: 2 Nickname: lola Physical description: medium sized cream colored female golden retriever weighing about 65 pounds. housebroken. Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses. ID #: d2 Species: dog Age: 9 Nickname: loki 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. ID #: c3 Species: cat Age: 1 Nickname: Puss Physical description: small white female weighing about 8 pounds. litter box trained. Personality: friendly ID #: c4 Species: cat Age: ? Nickname: Physical description: Personality: ID #: d5 Species: dog Age: ? Nickname: tbd Physical description: tbd Personality: tbd Press the Enter key to continueإذا لم يتم عرض معلومات الأليفة المضافة حديثا، فتحقق للتأكد من تضمين خطوط التعليمات البرمجية لحفظ البيانات في صفيف ourAnimals، وتحقق للتأكد من تضمين سطر التعليمات البرمجية لإنشاء petID.
تحقق من أنه يمكنك إنشاء أوصاف حيوانية إضافية للكلاب والقطط وأنه يتم حفظ خصائص في
ourAnimalsالصفيف.قم بإنهاء التطبيق، ثم أغلق لوحة Terminal.
تهانينا على إكمال هذا المشروع الإرشادي! لقد أنشأت تطبيقا يجمع بين عبارات التحديد والتكرار لتحقيق أهداف تصميم التطبيق. يتضمن تطبيقك أكثر من 300 سطر وينفذ المهام التي قد تجدها في تطبيق احترافي. يمثل إكمال هذا المشروع إنجازا هاما. استمر في التقدم!