تمرين - مراجعة تعليمة البداية البرمجية
في هذه الخطوة الأولى من عملية التطوير، يمكنك مراجعة التعليمات البرمجية المتوفرة في مجلد مشروع Starter.
مراجعة محتويات ملف Program.cs
يحتوي ملف Program.cs على إصدار أولي من التطبيق الذي تعمل عليه. تتضمن التعليمات البرمجية ميزات لإنشاء وعرض بيانات العينة للتطبيق، وتعرض قائمة بخيارات القائمة التي تحدد الميزات الرئيسية للتطبيق.
تأكد من أن مجلد "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) مفتوح في Visual Studio Code.
تتضمن الوحدة "Prepare" (الوحدة السابقة في هذه الوحدة النمطية) قسم Setup الذي يصف عملية تنزيل نقطة البداية الأولية للمشروع الإرشادي وفتح المجلد Visual Studio Code. إذا لزم الأمر، فارجع واتبع إرشادات الإعداد.
في طريقة العرض "EXPLORER"، قم بتوسيع المجلد "Starter"، ثم حدد "Program.cs".
عند تحديد ملف Program.cs، يتم فتح محتويات الملف في منطقة المحرر الرئيسي على يمين EXPLORER.
إذا لم تكن طريقة عرض EXPLORER مفتوحة، يمكنك تحديد/فتح طريقة عرض EXPLORER من شريط النشاط في أقصى الجانب الأيسر من Visual Studio Code. EXPLORER هو الأيقونة العلوية في شريط النشاط.
يستغرق بضع دقائق لمراجعة إعلانات المتغير الأولي في أعلى ملف Program.cs.
// #1 the ourAnimals array will store the following: string animalSpecies = ""; string animalID = ""; string animalAge = ""; string animalPhysicalDescription = ""; string animalPersonalityDescription = ""; string animalNickname = ""; // #2 variables that support data entry int maxPets = 8; string? readResult; string menuSelection = ""; // #3 array used to store runtime data, there is no persisted data string[,] ourAnimals = new string[maxPets, 6];أولا، ترى تعليقا (التعليق رقم 1) متبوعا بقائمة المتغيرات. تستخدم هذه المتغيرات،
animalSpeciesمن خلالanimalNickname، للاحتفاظ بقيم خصائص الأليفة داخل صفيف سلسلة متعدد الأبعاد يسمىourAnimals، وتم تهيئتها لتحتوي على سلسلة""ذات طول صفري .ourAnimalsإعلان الصفيف أبعد قليلا في التعليمات البرمجية.المجموعة التالية من المتغيرات (ضمن التعليق رقم 2) هي مزيج من
stringالمتغيرات والمتغيراتintالمستخدمة للمساعدة في إنشاء بيانات نموذجية، وقراءة إدخال المستخدم، ووضع معايير الخروج لحلقة البرنامج الرئيسية. لاحظ سطرstring? readResult;التعليمات البرمجية . يمكنك استخدام?الحرف لتحويل نوع متغير غير يقبل القيم الخالية عادة (int، string، bool,...) مع دعم النوع الذي يقبل القيم الخالية.ملاحظه
عند قراءة المستخدم أدخل القيم باستخدام
Console.ReadLine()الأسلوب ، من الأفضل تمكين سلسلة نوع يقبل القيم الخالية باستخدامstring?لتجنب إنشاء المحول البرمجي للتعليمات البرمجية تحذيرا عند إنشاء المشروع.المتغير النهائي (ضمن التعليق رقم 3) هو صفيف السلسلة ثنائي الأبعاد المسمى
ourAnimals. لقد قمت بتهيئة عدد الصفوف، المعرفة بواسطة maxPets، إلى 8. عدد الخصائص التي تقوم بتخزينها في البداية هو ستة. تتطابق الخصائص الست مع عدد متغيرات السلسلة التي فحصتها في نموذج التعليمات البرمجية، ولكن عدد الخصائص يحتاج إلى التوسع لإضافة حقل لsuggestedDonation.مرر لأسفل ملف Program.cs لفحص الحلقة
forالتي تحتوي علىswitchبنية تحديد داخل كتلة التعليمات البرمجية الخاصة به.نموذج التعليمات البرمجية هو إصدار مختصر لتوفير مساحة.
// #4 create sample data ourAnimals array entries for (int i = 0; i < maxPets; i++) { switch (i) { 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; case 1: animalSpecies = "dog"; animalID = "d2"; animalAge = "9"; animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken."; animalPersonalityDescription = "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."; animalNickname = "gus"; break; // case 2: deleted for brevity // case 3: deleted for brevity default: animalSpecies = ""; animalID = ""; animalAge = ""; animalPhysicalDescription = ""; animalPersonalityDescription = ""; animalNickname = ""; break; } 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; }لاحظ أن الحلقة
forتستخدمmaxPetsالمتغير لإنشاء حد أعلى على عدد التكرارات التالية التعليق رقم 4.لاحظ أيضا أن
switchالإنشاء يفرع التعليمات البرمجية بشكل انتقائي بحيث يمكنك تحديد خصائص الأليفة المختلفة للحيوانات الأليفة في عينة مجموعة البيانات.يمكنك استخدام عبارة
switchلتعريف قيم مختلفة للتكرارات الأربعة الأولى من التكرارforالحلقي. بعد معالجة البيانات النموذجية، تكون جميع الخصائص فارغة أو سلسلة صفرية.يتم تعيين قيم متغيرات خصائص إلى صفيف ourAnimals في أسفل الحلقة
for.قم بالتمرير إلى أسفل ملف التعليمات البرمجية في Visual Studio Code. افحص التعليمات البرمجية المستخدمة لعرض خيارات القائمة والتقاط إدخال تحديد المستخدم.
يجب عليك مراقبة التعليمات البرمجية التالية:
// #5 display the top-level menu options do { // NOTE: the Console.Clear method is throwing an exception in debug sessions Console.Clear(); Console.WriteLine("Welcome to the Contoso PetFriends app. Your main menu options are:"); Console.WriteLine(" 1. List all of our current pet information"); Console.WriteLine(" 2. Display all dogs with a specified characteristic"); Console.WriteLine(); Console.WriteLine("Enter your selection number (or type Exit to exit the program)"); readResult = Console.ReadLine(); if (readResult != null) { menuSelection = readResult.ToLower(); } // use switch-case to process the selected menu option switch (menuSelection) { 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 < 6; j++) { Console.WriteLine(ourAnimals[i, j]); } } } Console.WriteLine("\n\rPress the Enter key to continue"); readResult = Console.ReadLine(); break; case "2": // Display all dogs with a specified characteristic"); Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress."); Console.WriteLine("Press the Enter key to continue."); readResult = Console.ReadLine(); break; default: break; } } while (menuSelection != "exit");خذ دقيقة لمراجعة البيانين
case.هناك خياران فقط من القائمة يعملان مع إصدار محدود من التطبيق. يوفر تطبيق البداية فقط القدرات اللازمة لتشغيل واختبار النموذج الأولي للميزات.
لاحظ أن سطر التعليمات البرمجية
readResult = Console.ReadLine();متبوعا بالتحقق من قيمة خالية.تحتوي التعليمات البرمجية
Console.ReadLine()التي تستخدم الأسلوب على القيمة المعينة إلى السلسلةreadResultالتي تقبل القيم الخالية لتجنب إنشاء المحول البرمجي للتعليمات البرمجية تحذيرا عند إنشاء المشروع.
راجع عملك
اختبر تطبيق وحدة تحكم التعليمات البرمجية للبداية، في إنشاء موجه أوامر TERMINAL وتشغيل التعليمات البرمجية للمشروع باستخدام أمر واحد عن طريق إدخال:
dotnet run.ملاحظه
يجب فتح مطالبة TERMINAL في مجلد البدء ويجب أن تبدو المحطة الطرفية مشابهة ل
..\ArrayGuidedProject\starter>عند تشغيل التعليمات البرمجية، يتم عرض عنصري قائمة.
- أدخل:
1، لاختبار إخراج "سرد جميع معلومات الأليفة الحالية" - أدخل:
2، لاختبار رسالة العنصر النائب "قيد الإنشاء"
- أدخل:
أدخل:
1، متبوعا بالضغط على المفتاح "Enter" ل "عرض جميع الأليفة".تحقق من عرض جميع معلومات الأليفة.
أثناء مراقبة البيانات على جميع الأليفة، يجب أن يتطابق آخر أليف معروض مع الإخراج التالي:
ID #: c4 Species: cat Age: 3 Nickname: Lion Physical description: Medium sized, long hair, yellow, female, about 10 pounds. Uses litter box. Personality: A people loving cat that likes to sit on your lap. Press the Enter key to continueاضغط على المفتاح Enter للمتابعة والعودة إلى القائمة.
في موجه القائمة، أدخل
2متبوعا بالضغط على المفتاح "Enter".هذا الاختيار هو صاحب مكان لوظيفة "عرض جميع ذات الخصائص المحددة".
تحقق من عرض
UNDER CONSTRUCTIONالرسالة للتحديدDisplay all dogs with a specified characteristic.يجب عليك مراقبة الإخراج التالي:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.اكتب
exit، في قائمة التطبيق، لإنهاء البرنامج ثم أغلق لوحة المحطة الطرفية.يجب إنهاء البرنامج.
أنت الآن جاهز لبدء تطوير الميزات الجديدة.