مرحبا للجميع كالعادة حابب اعرض موضوع برنامج الجديد ورح ابلش فيو هلق وبس اتوصل لنتيجة بدي ارفع الكود عالموقع لمناقشته بس قبل ما اوضع وظيفة البرنامج الذي يوجب برمجته عندي كم سؤال
- ليش منستخدم الانترفيس
- ماهوي الفائدة من كتابة راس الميثود فقط داخل الانترفيس
- كيف يمكن استخدام الانترفيس كصيغة او نوع Data-type
هلق رح ابدا بكتابة موضوع البرنامج المراد برمجته
من أجل تنظيم وادارة مستودع على ظهر احدى بواخر الشحن يطلب كتابة برنامج قادرا على تنظيم البضائع المشحونة
مع مراعاة بأننا لا نعلم ماهي البضائع والعناصر المراد شحنها لهدا يجب ايجاد برنامج يمثل عملية التنظيم
الطلب الاول : حدد ضمن انترفيس بأسم Stockable صفات البضائع والعناصر القابلة للشحن
- لهده العناصر رقم يدعى رقم الشحن و وزن يمثل في الطن بالمتر المكعب ...... يجب ان تكون هده الصفات قابلة للتغيير من خارج الانترفيس
كل سلعة او باكيت من البضاعة يأخد مكان من غرفة المستودع يقدر هدا لامكان بالمتر المكعب - يجب ان يكون البرنامج قادرة على حساب الوزن الاجمالي الكلي للشحنة بأكملها عن طريق الميثود double getFullWeight()
- مطلوب ايضا كتابة ميثود String to String() التي تقوم بأعطائنا معلومات عن الشحنة كالمثال التالي
Charge 123 (80.0m^3, 40.25 t)
نظم جميع الميثودات داخل الانترفيس لتتمكن من تحديد الصفات المطلوبة
الطلب الثاني : أكتب برنامج ادارة تنظيم المستودع من خلال الكلاس StockManager على ان يمثل هدا الكلاس المستودع ومابداخله من بضائع
استخدم كونستكتور constructor لتحديد حجم المستودع
ملاحظة : يجب ان تحفظ البضائع ضمن مصفوفة
- أكتب ميثود بأسم
boolean stock(stockable)
وظيفةهده الميثود هي وضع البضاعة ضمن المستودع في حال وجود مكان كاف لها مع مراعاة مايلي
في حال وجود مكان كاف للبضاعة ضمن المستودع يجب ان ترجع الميثود true
في حال عدم وجود مكان كاف يجب ان ترجع false
وايضا يجب ان ترجع الميثود معلومات عن الشحنة كما يلي
Charge 123 (80.0m^3, 1000.0t)->to stock
Charge 666 (30.0m^3, 84.0t)->to stock
Charge 777 (60.0m^3, 471.9t)->to stock
Charge 234 (170.0m^3, 2686.0t)->not to stock Volume-size too big - حتى لا ترهق الباخرة يجب ان نكتب ميثود مراقبة تفوم بحساب الوزن الاجمالي الكلي للبضاعة ضمن المستودع
لذا اصنع ميثود تقوم بهذه المهمة وليكن اسمهاdouble calculateWeight()
- أنشا ميثود
toString()
التي تقوم بأرجاع قائمة الشحنات مع الوزن الكلي كما يلي
Charge 123 (80.0m^3, 1000.0t)
Charge 666 (30.0m^3, 84.0t)
Charge 777 (60.0m^3, 471.9t)
[The total weight is : 1555.9t]
الطلب الثالث : انشأ كلاستين للبضاعة المراد شحنها واحدة تكون لمواد البناء الخشبية wood والاخرى لمواد البناء الحجرية Bricks
وهاتين الكلاستين قادرتين على تعديل خصائص النترفيس Stockable
انشأ constructor لكل كلاس الدي يأخد قيم جميع خصائص وميزات السلع المراد شحنها
انتبه في حساب الوزن للبضائع فهناك اختلاف بين wood & Bricks فلحساب وزن مواد ال Bricks يكفي معرفة الوزن بكل متر مكعب مع الحجم اما عند حساب وزن المواد الخشبية فيجب التمييز بين نوعين من الخشب اولا الخشب المخزن والخشب جديد الصنع فهنا يعامل الحشب المخزن معاملة ال Bricks اما الحشب جديد الصنع فيزاد 20% على الوزن
الطلب الأخير : انشأ كلاس فحص البرنامج وهي Freighter التي تحتوي على سفينة شحن وبضائع واكتب ال main method ضمن هده الكلاس
هيــــــــــــــــــــــــــــــــــــــك بكون خلص شرح البرنامج المراد
انا رح ابلش هلق وكل شي بتوصلو رح انزلو على نفس هي الصفحة
يا ريت ازا بتساعدوني بس بملاحضاتكم حول مفهوم الانترفيس وما المقصود باستخدام الانترفيس كنوع وكيف بقدر اضع البضاعة ضمن مصفوفة Array
شــــــــــــــــــــــــــــــــــــــــــــكرا جزيلا
