تمرين - مراجعة تعليمة البداية البرمجية

مكتمل

في هذه الخطوة الأولى من عملية التطوير، يمكنك مراجعة التعليمات البرمجية المتوفرة في مجلد مشروع Starter.

مراجعة محتويات ملف Program.cs

يحتوي ملف Program.cs على إصدار أولي من التطبيق الذي تعمل عليه. تتضمن التعليمات البرمجية ميزات لإنشاء وعرض بيانات العينة للتطبيق، وتعرض قائمة بخيارات القائمة التي تحدد الميزات الرئيسية للتطبيق.

  1. تأكد من أن مجلد "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) مفتوح في Visual Studio Code.

    تتضمن الوحدة "Prepare" (الوحدة السابقة في هذه الوحدة النمطية) قسم Setup الذي يصف عملية تنزيل نقطة البداية الأولية للمشروع الإرشادي وفتح المجلد Visual Studio Code. إذا لزم الأمر، فارجع واتبع إرشادات الإعداد.

  2. في طريقة العرض "EXPLORER"، قم بتوسيع المجلد "Starter"، ثم حدد "Program.cs".

    عند تحديد ملف Program.cs، يتم فتح محتويات الملف في منطقة المحرر الرئيسي على يمين EXPLORER.

    إذا لم تكن طريقة عرض EXPLORER مفتوحة، يمكنك تحديد/فتح طريقة عرض EXPLORER من شريط النشاط في أقصى الجانب الأيسر من Visual Studio Code. EXPLORER هو الأيقونة العلوية في شريط النشاط.

  3. يستغرق بضع دقائق لمراجعة إعلانات المتغير الأولي في أعلى ملف 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.

  4. مرر لأسفل ملف 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;
    }
    
  5. لاحظ أن الحلقة for تستخدم maxPets المتغير لإنشاء حد أعلى على عدد التكرارات التالية التعليق رقم 4.

  6. لاحظ أيضا أن switch الإنشاء يفرع التعليمات البرمجية بشكل انتقائي بحيث يمكنك تحديد خصائص الأليفة المختلفة للحيوانات الأليفة في عينة مجموعة البيانات.

    يمكنك استخدام عبارة switch لتعريف قيم مختلفة للتكرارات الأربعة الأولى من التكرار for الحلقي. بعد معالجة البيانات النموذجية، تكون جميع الخصائص فارغة أو سلسلة صفرية.

    يتم تعيين قيم متغيرات خصائص إلى صفيف ourAnimals في أسفل الحلقة for .

  7. قم بالتمرير إلى أسفل ملف التعليمات البرمجية في 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");
    
  8. خذ دقيقة لمراجعة البيانين case .

    هناك خياران فقط من القائمة يعملان مع إصدار محدود من التطبيق. يوفر تطبيق البداية فقط القدرات اللازمة لتشغيل واختبار النموذج الأولي للميزات.

  9. لاحظ أن سطر التعليمات البرمجية readResult = Console.ReadLine(); متبوعا بالتحقق من قيمة خالية.

    تحتوي التعليمات البرمجية Console.ReadLine() التي تستخدم الأسلوب على القيمة المعينة إلى السلسلة readResult التي تقبل القيم الخالية لتجنب إنشاء المحول البرمجي للتعليمات البرمجية تحذيرا عند إنشاء المشروع.

راجع عملك

  1. اختبر تطبيق وحدة تحكم التعليمات البرمجية للبداية، في إنشاء موجه أوامر TERMINAL وتشغيل التعليمات البرمجية للمشروع باستخدام أمر واحد عن طريق إدخال: dotnet run.

    ملاحظه

    يجب فتح مطالبة TERMINAL في مجلد البدء ويجب أن تبدو المحطة الطرفية مشابهة ل ..\ArrayGuidedProject\starter>

    عند تشغيل التعليمات البرمجية، يتم عرض عنصري قائمة.

    • أدخل: 1، لاختبار إخراج "سرد جميع معلومات الأليفة الحالية"
    • أدخل: 2، لاختبار رسالة العنصر النائب "قيد الإنشاء"
  2. أدخل: 1، متبوعا بالضغط على المفتاح "Enter" ل "عرض جميع الأليفة".

  3. تحقق من عرض جميع معلومات الأليفة.

    أثناء مراقبة البيانات على جميع الأليفة، يجب أن يتطابق آخر أليف معروض مع الإخراج التالي:

    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
    
  4. اضغط على المفتاح Enter للمتابعة والعودة إلى القائمة.

  5. في موجه القائمة، أدخل 2 متبوعا بالضغط على المفتاح "Enter".

    هذا الاختيار هو صاحب مكان لوظيفة "عرض جميع ذات الخصائص المحددة".

  6. تحقق من عرض 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.
    
  7. اكتب exit، في قائمة التطبيق، لإنهاء البرنامج ثم أغلق لوحة المحطة الطرفية.

    يجب إنهاء البرنامج.

أنت الآن جاهز لبدء تطوير الميزات الجديدة.