تمرین‌های آموزشی

لیست حقوق (تا پایان جلسه یازدهم)

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

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

بسته‌ی ir.javacup.salary را دانلود کنید. در این بسته دو کلاس Employee و SalaryListCreator و یک کلاس انتزاعیEncoder وجود دارد. برنامه‌ی شما قرار است لیست حقوق کارمندهای یک شرکت را برای دو سیستم مدیریت منابع انسانی (HRM) و مدیریت مالی (FM) آماده کند. برنامه‌ی شما باید بتواند محتوای (رشته) لیست حقوق را برای این سیستم‌ها تولید کند.

برای این کار دو کلاس به صورت زیر ایجاد کنید:

  • برای سیستم مدیریت منابع انسانی: کلاس HrmSalaryListCreator که زیرکلاس SalaryListCreator باید تعریف شود.
  • برای سیستم مدیریت مالی: کلاس FmSalaryListCreator که زیر کلاس SalaryListCreator باید تعریف شود.

هر سطر از این لیست شامل اطلاعات یک کارمند است که هر سیستم قالب مخصوصی را برای نمایش آن دارد:

  • سیستم مدیریت منابع انسانی (از چپ به راست):
  1. کد کارمند: شامل ۸ کاراکتر است و اگر طول کد کارمند کمتر از ۸ بود، از کاراکتر ۰ در سمت چپ به مقدار لازم استفاده می‌شود.
  2. فاصله: از رشته‌ی برگردانده‌شده توسط متد getItemSeparator از کلاس SalaryListCreator استفاده می‌شود.
  3. حقوق: شامل ۱۰ کاراکتر است و اگر تعداد ارقام حقوق کمتر از ۱۰ بود، از کاراکتر ۰ در سمت چپ به مقدار لازم استفاده می‌شود.
  • سیستم مدیریت مالی (از چپ به راست):
  1. حقوق: شامل ۱۰ کاراکتر است و اگر تعداد ارقام حقوق کمتر از ۱۰ بود، از کاراکتر ‘۰′ در سمت چپ به مقدار لازم استفاده می‌شود.
  2. فاصله: از رشته‌ی برگردانده‌شده توسط متد getItemSeparator از کلاس SalaryListCreator استفاده می‌شود.
  3. کد کارمند: شامل ۱۰ کاراکتر است و اگر طول کد کارمند کمتر از ۱۰ بود، از کاراکتر ‘۰′ در سمت چپ به مقدار لازم استفاده می‌شود.

برای قراردادن کارکتر ۰′ در سمت چپ یک رشته، یک متد با نام (addZeroPrefix(String str, int length در کلاس SalaryListCreator قرار دارد که باید آن را پیاده‌سازی و از آن استفاده کنید. این متد باید رشته‌ی ‘str’ داده‌شده را به اندازه‌ی طول length داده شده با کارکتر ۰′ (در سمت چپ) گسترش دهد.

 مثال:

به ازای کد زیر:

باید خروجی زیر تولید شود:

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

  •  برای فاصله‌ی بین هر سطر (در هر دو لیست) از رشته‌ی برگردانده‌شده توسط متد getRecordSeparator از کلاس SalaryListCreator استفاده می‌شود.
  • پس از آخرین سطر نباید از هیچ کاراکتری استفاده شود.
  • در کلاس‌های HrmSalaryListCreator و SalaryListCreator، تنها متد doCreate را پیاده‌سازی کنید و از پیاده‌سازی (override کردن) سایر متدها خودداری کنید.

مثال ۱:

خروجی ۱:

مثال ۲:

خروجی ۲:

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

یک فایل زیپ شامل بسته‌ی ir.javacup.salary است. به صورتی که وقتی فایل زیپ را باز می‌کنیم، دقیقا شاخه‌ی ir را ببینیم که درون آن شاخه‌ی javacup و درون آن نیز شاخه‌ی salary قرار دارد. در داخل شاخه‌ی salary باید سه فایل با نام‌های SalaryListCreator.java و FmSalaryListCreator.java و HrmSalaryListCreator.java وجود داشته باشد.

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

 

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

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

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

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

[تعداد: 1    میانگین: 4/5]
برچسب ها
نمایش بیشتر

نوشته های مشابه

‫۴ نظرها

  1. سلام
    من پاسخ این سوال را چندین مرتبه ارسال کردم ولی جواب تست فقط خطای زیر را نشان میدهد
    در ضمن متد های doCreate با مقادیر نمونه بالا دقیقا خروجی درست و مورد نظر را برمیگردانند.
    لطفا در مورد پاس شدن جواب اطلاعات بیشتری بدهید.
    متشکر.

    Test finished successfully

    testHrmSalaryListCreator
    FAILED

    testFmSalaryListCreator
    FAILED

    testAddZeroPrefix
    PASSED

    1. سلام
      لطفا اینگونه مشکلات را در کوئرا و در بخش «سوال بپرسید» مطرح کنید تا همکاران ما بتوانند پاسخی که به سوال داده‎اید را بررسی کرده و همانجا به شما پاسخ دهند.

      با تشکر

پاسخی بگذارید

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

همچنین ببینید

بستن
دکمه بازگشت به بالا