تمرين - كتابة التعليمات البرمجية لقراءة وحفظ بيانات صفيفAnimals الجديدة

مكتمل

في هذا التمرين، يمكنك تطوير حلقات التحقق من صحة إدخال البيانات لكل خاصية أليف ثم تخزين بيانات الصفيف الجديدة ourAnimals . المهام التفصيلية التي تكملها أثناء هذا التمرين هي:

  1. قراءة الأنواع والتحقق من صحتها: بناء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة للدخول والتحقق من صحة أنواع الأليفة.
  2. إنشاء معرف أليف: اكتب التعليمات البرمجية التي تستخدم petCount واسم الأنواع لإنشاء قيمة petID.
  3. قراءة العمر والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال عمر الأليف والتحقق من صحته.
  4. قراءة الوصف المادي والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال وصف فعلي للحيوان الأليف.
  5. قراءة وصف الشخصية والتحقق من صحته: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال وصف لشخصية الأليف.
  6. قراءة الكنية والتحقق من صحتها: إنشاء حلقة وبنية التعليمات البرمجية الداخلية المستخدمة لإدخال كنية للحيوان الأليف.
  7. اختبار التحقق: قم بإجراء اختبارات التحقق للتعليمات البرمجية التي تطورها في هذا التمرين.

هام

يجب إكمال التمرين السابق في هذه الوحدة النمطية قبل بدء هذا التمرين.

بناء حلقة لقراءة والتحقق من صحة أنواع الأليفة

في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم اسم نوع صالح، إما أو قطة. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalSpecies متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك إضافة متغير منطقي جديد يسمى validEntry إلى تطبيقك. يمكنك استخدام validEntry في تعبير يتم تقييمه كمعاييار خروج للحلقة.do

  1. تأكد من أن Visual Studio Code مفتوح وأن ملف Program.cs مرئي في المحرر.

  2. حدد موقع العبارة while (anotherPet == "y" && petCount < maxPets) ، ثم أضف سطر تعليمة برمجية فارغة في كتلة التعليمات البرمجية العلوية.

  3. في سطر التعليمات البرمجية الفارغة التي قمت بإنشائها، للإعلان validEntry بقيمة أولية من false، أدخل التعليمات البرمجية التالية:

    bool validEntry = false;
    
    
  4. في السطر أدناه إعلان validEntry، لإنشاء do حلقة لإدخال بيانات الأنواع، أدخل التعليمات البرمجية التالية:

    // get species (cat or dog) - string animalSpecies is a required field 
    do
    {
    } while (validEntry == false);
    
    
  5. داخل كتلة التعليمات البرمجية لبيانك do ، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:

    Console.WriteLine("\n\rEnter 'dog' or 'cat' to begin a new entry");
    readResult = Console.ReadLine();
    
    
  6. للتأكد من readResult أن قيمة ليست خالية قبل تعيين قيمة readResult إلى animalSpecies، أدخل التعليمات البرمجية التالية:

    if (readResult != null)
    {
        animalSpecies = readResult.ToLower();
    
    }
    
  7. في السطر أسفل animalSpecies تعيين القيمة، للتأكد من أن animalSpecies يحتوي على اسم نوع صالح، أدخل التعليمات البرمجية التالية:

    if (animalSpecies != "dog" && animalSpecies != "cat")
    {
        validEntry = false;
    }
    else
    {
        validEntry = true;
    }
    
  8. قارن حلقة إدخال بيانات اسم الأنواع المكتملة بالتعليمات البرمجية التالية:

    // 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);
    
  9. في قائمة ملف Visual Studio Code، حدد Save.

  10. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

بناء قيمة معرف

في هذه المهمة، يمكنك استخدام animalSpecies المتغيرين و petCount لإنشاء القيمة التي تعينها إلى animalID.

  1. أضف سطر تعليمة برمجية فارغا أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات اسم الأنواع.

  2. لإنشاء القيمة وتعيينها 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();
    
    
  3. في قائمة ملف Visual Studio Code، حدد Save.

إنشاء حلقة لقراءة عمر الأليف والتحقق من صحته

في هذه المهمة، يمكنك إنشاء do تكرار حلقي يتكرر حتى يدخل المستخدم إما عددا صحيحا صالحا ? أو صحيحا يمثل عمر الأليف بالسنوات. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalAge متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. لاختبار ما إذا كانت السلسلة تمثل عددا صحيحا صحيحا أم لا animalAge ، يمكنك استخدام القيمة المنطقية validEntry . تقوم بتعريف متغير عدد صحيح جديد يسمى petAge لتخزين القيمة الرقمية. مرة أخرى، validEntry يتم استخدام المنطقية في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .

  1. أضف سطر تعليمة برمجية فارغا أسفل السطر المستخدم لتعيين قيمة إلى المتغير الخاص بنا animalID .

  2. لإنشاء تكرار do حلقي لإدخال بيانات العمر، أدخل التعليمات البرمجية التالية:

    // get the pet's age. can be ? at initial entry. 
    do
    {
    } while (validEntry == false);
    
    
  3. داخل كتلة التعليمات البرمجية من العبارة الخاصة بك do ، للإعلان عن متغير عدد صحيح يسمى petAge، أدخل التعليمات البرمجية التالية:

    int petAge;
    
    
  4. في السطر أسفل إعلان petAge، لعرض موجه رسالة وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:

    Console.WriteLine("Enter the pet's age or enter ? if unknown");
    readResult = Console.ReadLine();
    
    
  5. للتأكد من readResult أن قيمة ليست خالية قبل تعيين قيمة readResult إلى animalAge، أدخل التعليمات البرمجية التالية:

    if (readResult != null)
    {
        animalAge = readResult;
    
    }
    
  6. في السطر أسفل animalAge تعيين القيمة، للتحقق مما إذا كان المستخدم قد أدخل ? قبل اختبار عدد صحيح صالح، أدخل التعليمات البرمجية التالية:

    if (animalAge != "?")
    {
        validEntry = int.TryParse(animalAge, out petAge);
    }
    else
    {
        validEntry = true;
    }
    
  7. قارن حلقة إدخال بيانات العمر المكتمل بالتعليمات البرمجية التالية:

    // 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);
    
  8. في قائمة ملف Visual Studio Code، حدد Save.

  9. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

بناء حلقة لقراءة والتحقق من صحة الوصف المادي للحيوان الأليف

في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم قيمة سلسلة تمثل وصفا ماديا لحيوان أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalPhysicalDescription متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalPhysicalDescription في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .

  1. أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات العمر.

  2. لإنشاء تكرار do حلقي لإدخال بيانات الوصف الفعلي، أدخل التعليمات البرمجية التالية:

    // get a description of the pet's physical appearance/condition - animalPhysicalDescription can be blank.
    do
    {
    } while (animalPhysicalDescription == "");
    
    
  3. داخل كتلة التعليمات البرمجية لبيانك do ، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:

    Console.WriteLine("Enter a physical description of the pet (size, color, gender, weight, housebroken)");
    readResult = Console.ReadLine();
    
    
  4. للتأكد من readResult أن قيمة ليست خالية قبل تعيين قيمة readResult إلى animalPhysicalDescription، أدخل التعليمات البرمجية التالية:

    if (readResult != null)
    {
        animalPhysicalDescription = readResult.ToLower();
    
    }
    
  5. لتعيين قيمة "tbd" إلى animalPhysicalDescription عندما تكون القيمة المدخلة هي ""، أدخل التعليمات البرمجية التالية:

    if (animalPhysicalDescription == "")
    {
        animalPhysicalDescription = "tbd";
    }
    
  6. قارن حلقة إدخال بيانات الوصف الفعلي المكتمل بالتعليمات البرمجية التالية:

    // 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 == "");
    
  7. في قائمة ملف Visual Studio Code، حدد Save.

  8. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

إنشاء حلقة لقراءة وصف شخصية الأليف والتحقق من صحته

في هذه المهمة، يمكنك إنشاء do حلقة تتكرر حتى يدخل المستخدم قيمة سلسلة تمثل وصفا لشخصية أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalPersonalityDescription متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalPersonalityDescription في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .

  1. أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات الوصف الفعلي.

  2. لإنشاء تكرار do حلقي لإدخال بيانات وصف الشخصية، أدخل التعليمات البرمجية التالية:

    // get a description of the pet's personality - animalPersonalityDescription can be blank.
    do
    {
    } while (animalPersonalityDescription == "");
    
    
  3. داخل كتلة التعليمات البرمجية لبيانك do ، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:

    Console.WriteLine("Enter a description of the pet's personality (likes or dislikes, tricks, energy level)");
    readResult = Console.ReadLine();
    
    
  4. للتأكد من readResult أن قيمة ليست خالية قبل تعيين قيمة readResult إلى animalPersonalityDescription، أدخل التعليمات البرمجية التالية:

    if (readResult != null)
    {
        animalPersonalityDescription = readResult.ToLower();
    
    }
    
  5. لتعيين قيمة "tbd" إلى animalPersonalityDescription عندما تكون القيمة المدخلة هي ""، أدخل التعليمات البرمجية التالية:

    if (animalPersonalityDescription == "")
    {
        animalPersonalityDescription = "tbd";
    }
    
  6. قارن حلقة إدخال بيانات وصف الشخصية المكتملة بالتعليمات البرمجية التالية:

    // 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 == "");
    
  7. في قائمة ملف Visual Studio Code، حدد Save.

  8. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

إنشاء حلقة لقراءة الاسم المستعار للحيوان الأليف والتحقق من صحته

في هذه المهمة، يمكنك إنشاء تكرار do حلقي يتكرر حتى يدخل المستخدم قيمة سلسلة تمثل كنية لحيوان أليف. يمكنك إعادة استخدام السلسلة readResult القابلة للإلغاء لالتقاط الإدخال Console.ReadLine() . يمكنك أيضا إعادة استخدام animalNickname متغير السلسلة الذي استخدمته عند إنشاء نموذج البيانات. يمكنك استخدام القيمة المعينة إلى animalNickname في التعبير الذي يتم تقييمه كمعاييار خروج للحلقة الخاصة بنا do .

  1. أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات وصف الشخصية.

  2. لإنشاء تكرار do حلقي لإدخال بيانات وصف الشخصية، أدخل التعليمات البرمجية التالية:

    // get the pet's nickname. animalNickname can be blank.
    do
    {
    } while (animalNickname == "");
    
    
  3. داخل كتلة التعليمات البرمجية لبيانك do ، لإنشاء مطالبة عرض وقراءة إدخال المستخدم، أدخل التعليمات البرمجية التالية:

    Console.WriteLine("Enter a nickname for the pet");
    readResult = Console.ReadLine();
    
    
  4. للتأكد من readResult أن قيمة ليست خالية قبل تعيين قيمة readResult إلى animalNickname، أدخل التعليمات البرمجية التالية:

    if (readResult != null)
    {
        animalNickname = readResult.ToLower();
    
    }
    
  5. لتعيين قيمة "tbd" إلى animalNickname عندما تكون القيمة المدخلة هي ""، أدخل التعليمات البرمجية التالية:

    if (animalNickname == "")
    {
        animalNickname = "tbd";
    }
    
  6. قارن حلقة إدخال بيانات الكنية المكتملة بالتعليمات البرمجية التالية:

    // 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 == "");
    
  7. في قائمة ملف Visual Studio Code، حدد Save.

  8. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

حفظ معلومات الأليفة الجديدة

في هذه المهمة، يمكنك حفظ القيم التي تم إدخالها لخصائص الأليفة إلى ourAnimals الصفيف.

  1. أضف سطرا فارغا للتعليمات البرمجية أسفل كتلة التعليمات البرمجية لحلقة إدخال بيانات الكنية.

  2. لتخزين قيم البيانات المحددة من قبل المستخدم، أدخل التعليمات البرمجية التالية:

    // 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;
    
  3. في قائمة ملف Visual Studio Code، حدد Save.

  4. افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code وأدخل الأمر لإنشاء البرنامج الخاص بك.

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

راجع عملك

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

  1. إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.

  2. في موجه الأوامر Terminal، أدخل dotnet run

  3. في موجه الأوامر Terminal، أدخل 2

  4. تحقق من تحديث لوحة Terminal لإظهار الإخراج التالي:

    We currently have 4 pets that need homes. We can manage 4 more.
    
    Enter 'dog' or 'cat' to begin a new entry
    
  5. أدخل القيم التالية في موجهات الأوامر الطرفية وتحقق من عرض كل مطالبة لاحقة:

    • في المطالبة 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)
    
  6. في موجه الأوامر Terminal، أدخل n

  7. تحقق من تحديث لوحة Terminal لإظهار خيارات القائمة الرئيسية.

  8. في موجه الأوامر Terminal، أدخل 1

  9. تحقق من تحديث لوحة 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.

  10. تحقق من أنه يمكنك إنشاء أوصاف حيوانية إضافية للكلاب والقطط وأنه يتم حفظ خصائص في ourAnimals الصفيف.

  11. قم بإنهاء التطبيق، ثم أغلق لوحة Terminal.

تهانينا على إكمال هذا المشروع الإرشادي! لقد أنشأت تطبيقا يجمع بين عبارات التحديد والتكرار لتحقيق أهداف تصميم التطبيق. يتضمن تطبيقك أكثر من 300 سطر وينفذ المهام التي قد تجدها في تطبيق احترافي. يمثل إكمال هذا المشروع إنجازا هاما. استمر في التقدم!