مدیریت مخارج

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

مباحث: Collections

مخارج خانواده‎ی آقای هاشمی به سه دسته‌ی کلی تقسیم می‌شود:

  1. مخارج مربوط به سلامت و پزشکی مانند ویزیت دکتر، آزمایش، دارو و غیره (این هزینه‌ها نسبت به یکدیگر دارای اولویت هستند)
  2. مخارج مربوط به خوار و بار مانند شیر، ماست، میوه و سبزیجات و غیره
  3. مخارج مربوط به وسایل و لوازم خانگی مانند خرید لوازم برقی، تعویض مبلمان و تلویزیون، خرید ظرف و غیره

آن‌ها طبق تجربه اکثر هزینه‌هایی که برای ماه بعد باید بکنند را می‌توانند پیش‌بینی کنند و به این ترتیب قصد دارند برای این هزینه‌های پیش‌بینی‌شده، برنامه‌ریزی کنند و در واقع با الویت‌بندی بتوانند هزینه‌های خود را مدیریت کنند.

آن‌ها با مشورت و همفکری با یکدیگر، برنامه‌ی زیر را برای مدیریت هزینه‌های خود طراحی کرده‌اند.

آن‌ها هزینه‌های پیش‌بینی‌شده را در جایی ثبت می‌کنند و با کمک چند قانون ساده‌ی زیر، تصمیم می‌گیرند که هر بار چه موردی را انجام دهند و برای آن هزینه کنند.

  1. تا زمانی که موردی مربوط به پزشکی و سلامت وجود دارد، باید برای موردی که بیشترین اولویت را دارد هزینه کرد
  2. اگر هیچ موردی مربوط به پزشکی و سلامت وجود ندارد، از بین موارد مربوط به خوار و بار، موردی که زودتر به لیست وارد شده را باید انتخاب کرده و برای آن هزینه کرد.
  3. اگر هیچ موردی مربوط به سلامت و خوار و بار در لیست هزینه‌ها وجود نداشت، باید از موارد مربوط به لوازم خانه، موردی که آخر از همه به لیست اضافه شده را انتخاب کرده و برای آن هزینه کرد.

شما برنامه‌ای بنویسید که خانواده‌ی آقای هاشمی بتوانند هزینه‌های خود را اضافه کرده و هر بار که قصد هزینه‌ کردن داشتند، طبق قوانینی که طراحی کرده‌اند، یک مورد برای هزینه‌کردن به آن‌ها برگردانده شود.

به این منظور، بسته‌ی ir.javacup.accounting را دانلود کرده و محتوای آن را ببینید. در کلاس Accounting دو متد با نام‌های addCost (برای اضافه کردن یک مورد به لیست هزینه‌ها) و getCost (برای انتخاب یک مورد جهت هزینه کردن) وجود دارد که شما باید با توجه به توضیحات بالا آن‌ها را پیاده‌سازی کنید.

نکته:

  • متد getCost یک مورد را طبق قوانین برگردانده و آن را از لیست هزینه‌ها حذف می‌کند.
  • اگر در لیست هیچ موردی برای هزینه کردن وجود نداشت، باید مقدار null برگردانده شود.
  • به جز کلاس Accounting، در سایر کلاس‌ها هیچ تغییری نباید داده شود.
  • با اجرای متد main موجود در کلاس Accounting، خروجی زیر باید چاپ شود:

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

یک فایل زیپ شامل بسته‌ی ir.javacup.accounting است. به صورتی که وقتی فایل زیپ را باز می‌کنیم، دقیقا شاخه‌ی ir را ببینیم که درون آن شاخه‌ی javacup و درون آن نیز شاخه‌ی accounting قرار دارد. در داخل شاخه‌ی accpunting فقط فایل Accounting.java وجود داشته باشد.

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

برای آشنایی با نحوه‌ی ارسال پاسخ در Quera، این مطلب را مطالعه کنید.


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

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

آدرس اکانت توییتر: JavaCupIR@

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

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

 


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

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

کنترل ترافیک

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

پاسخ دهید

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