بسم الله الرحمن الرحیم
تمرین جاوا – سیستم مدیریت تیم فوتبال
نصرت عاشق بازی فوتبال و تیم بارسلونا است. او پس از شکستهای متوالی این تیم خیلی ناراحت میشود و تصمیم میگیرد یک سایت مخصوص مسابقات فوتبال بسازد و با تحلیل اطلاعات بازیها متوجه شود که چرا بارسلونا متوالیا شکست خورده است به نصرت کمک کنید تا فضای مسابقات را با استفاده از مفاهیم شی گرایی مدل کند.
المانهای کلیدی این دامنه و اطلاعات مورد نیاز برای هر کدام به شرح زیر است ->
بازیکن ها :
- نام، نام خانوادگی، ملیت ، قرارداد فعلی و سابقه قراردادها(تیم، تاریخ شروع ، تاریخ اتمام ، مبلغ قرارداد پایه)
مربی ها :
- نام، نام خانوادگی، ملیت، قرارداد فعلی و سابقه قراردادها(تیم، تاریخ شروع، تاریخ اتمام، مبلغ قرارداد پایه)
داورها :
- نام، نام خانوادگی، ملیت، سطح داوری (حرفه ای، متوسط،مبتدى)
تیم ها :
- نام ،لیگ در حال بازی، مربی ،بازیکنان
بازی ها :
- بازیکن های اصلی و ذخیره تیم میزبان، بازیکن های اصلی و ذخیره تیم مهمان، تیم داوری، اطلاعات گل ها شامل زمان ثبت و فردی که گل را می زند.
با توجه به المانهای کلیدی، کلاسهای مورد نیاز سامانه را طراحی کنید.
نصرت میخواهد حقوق بازیکنان و مربیان تیم بارسلونا را بدون استفاده از چرتکه محاسبه کند. از آنجا که او کاملا لجباز است ابتدا یک تابع برای محاسبه حقوق تمام اعضای باشگاه نوشته و میخواهد بدون این که هیچ تغییری در این تابع بدهد، بقیه برنامه و کلاسها را تغییر دهد. تابعی که نصرت نوشته است به این صورت است:
Void print_all_salaries() { for (int i=0; i<member.size(); i++) { System.out.println(member[i].calculate()); }
در این تیم ، حقوق بازیکنان تابعی از تعداد بازیهای انجام داده ،حقوق پایه و حقوق هر بازی است که با این فرمول محاسبه می شود.
Salary = baseSalary + (matchesPlayed + perMatchSalary)
همچنین حقوق مربیان ، تابعی از حقوق پایه روزهای مرخصی و حقوق هر روز فرد است.
Salary = baseSalary + (30 - vacationDays) * perDaySalary
حقوق پایه بازیکنان و مربیان یکسان است و حقوق روزانه برای مربیان مختلف متفاوت است.
علاوه بر این حقوق هر بازی برای بازیکنان مختلف نیز متفاوت است.
.................
کدهای حل این تمرین در گیتهاب :