خانه / آموزش / تمرین‌های آموزشی / کتابخانه (تا پایان جلسه سیزدهم)

کتابخانه (تا پایان جلسه سیزدهم)

سطح سوال: ساده

آنچه از این جلسه باید بدانید: آشنایی با مدیریت خطا و استثنا و توانایی استفاده از آن‌ها

بسته‌ی ir.javacup.library را دانلود کنید. در این بسته دو کلاس با نام‌های Library و Member و یک واسط IdGenerator وجود دارد. هدف از این تمرین پیاده‌سازی چهار متد register و unregister و getMemberCount و isFull با رفتارهای زیر است:

  • متد register:
    • باید عضو (member) دریافتی را در کتابخانه ثبت‌نام کند، به عبارت دیگر باید آن را به آرایه‌ی members اضافه کند.
    • هنگام ثبت‌نام باید به کمک متد generate از ویژگی idGenerator، ویژگی id از عضو دریافتی را مقداردهی کند.
    • اگر ظرفیت (capacity) کتابخانه پر شده بود، یک LibraryFullException با متن Library is full پرتاب کند.
    • اگر member برابر null بود، یک IllegalArgumentException با متن member is null پرتاب کند.
    • اگر ویژگی firstName از member برابر null بود، یک IllegalArgumentException با متن member.firstName is null پرتاب کند.
    • اگر ویژگی lastName از member برابر null بود، یک IllegalArgumentException با متن member.lastName is null پرتاب کند.
  • متد unregister:
    • باید عضوی را که با id داده‌شده در کتابخانه ثبت‌نام کرده است بیابد و ثبت‌نام او را لغو کند، به عبارت دیگر باید خانه‌ای از آرایه‌ی members را که این عضو در آن قرار دارد، برابر null قرار داده و عضو حذف‌شده را برگرداند.
    • اگر عضوی با این id پیدا نکرد، یک MemberNotFoundException با متن No member found with the given id پرتاب کند.
  • متد getMemberCount:
    • تعداد اعضای ثبت‌نام‌کرده در کتابخانه را برمی‌گرداند.
  •  متد isFull:
    • اگر ظرفیت کتابخانه پر باشد، مقدار true و درغیراین‌صورت، مقدار false برمی‌گرداند.

نکات و راهنمایی:

  • دو کلاس استثنای LibraryFullException و MemberNotFoundException را باید ایجاد کنید.
  • امضای (Signature) هیچ یک از متدها را نباید تغییر دهید. بنابراین باید تشخیص دهید که این کلاس‌های استثنا، checked exception و یا unchecked exception باشند.
  • متن استثناهای پرتاب‌شده، باید دقیقا معادل با آن‌چه در صورت مساله ذکر شده‌است باشد.

آنچه باید آپلود کنید:

یک فایل زیپ شامل بسته‌ی ir.javacup.library است. به صورتی که وقتی فایل زیپ را باز می‌کنیم، دقیقا شاخه‌ی ir را ببینیم که درون آن شاخه‌ی javacup و درون آن نیز شاخه‌ی library قرار دارد. در داخل شاخه‌ی library باید سه فایل با نام‌های Library.java، LibraryFullException.java و MemberNotFoundException.java وجود داشته باشد.

برای داوری تمرین، می‌توانید پاسخ خود را در سایت Quera به نحوی که در بالا گفته شد، بارگذاری کنید.

 

با ما همراه باشید:

آدرس کانال تلگرام: IranianJavaDevelopers@

آدرس صفحه اینستاگرام: javacup.ir

آدرس گروه لینکدین: Iranian Java Developers

 


درباره سردبیر

همچنین بررسی کنید

کنترل ترافیک

نام و تاریخ مسابقه: جی‌کل ۸ – ۲۱ اردیبهشت ۱۳۹۷ مباحث: Collections و Generics  

۵ نظر

  1. سلام

    می‌شه یکم بیشتر راجع به متد unregister توضیح بدید؟

    الان بعد از اینکه member رو پیدا کرد و برابر با null قرار داد، باید null رو برگردونه یا یه member جدید با مشخصاتش تولید کنه و اون رو برگردونه؟

    و اینکه، باید memberCount هم یه واحد کاهش پیدا کنه؟

    باتشکر

     
    • سلام
      باید بعد از اینکه member رو پیدا کرد، همون member رو برگردونه. (در واقع یک member جدید که برابر با member مورد نظر است). اگر به نوع بازگشتی متد هم دقت کنید، می‌بینید که انتظار می‌رود member برگردانده شود و نه null.

      بله memberCount نشان‌دهنده تعداد اعضای کتابخانه است و با unregister شدن یک عضو، تعداد اعضا یکی کم می‌شود.

       
  2. با سلام و عرض خسته نباشید بسته ir.javacup.library قابل دانلود نمیباشذ لطفا بررسی کتید …
    با تشکر از سایت خوبتون

     

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *