בחנות הנעליים "קח–נעל–לך" יש מאות זוגות נעליים. כדי לאפשר מחשוב של מחסן החנות הוחלט לחלק את מגוון הסוגים השונים של הנעליים לשלוש קטגוריות: נעלי ילדים, נעלי נשים, נעלי גברים.
בנעלי ילדים עבור כל זוג נשמרים הפרטים הבאים:
- יצרן (producer)
- מידה (size)
- צבע (color)
- מחיר בסיסי (price)
- האם נעל אורתופדית? (orth)
בנעלי נשים עבור כל זוג נשמרים הפרטים הבאים:
- יצרן (producer)
- מידה (size)
- צבע (color)
- מחיר בסיסי (price)
- שנת ייצור (year)
- גובה עקב (heel)
בנעלי גברים עבור כל זוג נשמרים הפרטים הבאים:
- יצרן (producer)
- מידה (size)
- צבע (color)
- מחיר בסיסי (price)
- שנת ייצור (year)
- האם זו נעל עבודה (work)
מחיר הנעליים נקבע לפי מספר קריטריונים:
- מחיר בסיסי עבור נעלי ילדים הוא 100 ₪.
- מחיר בסיסי עבור נעליים למבוגרים הוא 200 ₪.
- עבור מידה מעל 40 המחיר הוא 300 ₪.
- נעל ילדים אורתופדית מוסיפה 25 ₪ למחיר.
- גובה עקב של שלושה ס"מ לפחות מוסיף 30 ₪ למחיר, גובה עקב של חמישה ס"מ לפחות מוסיף 60 ₪ למחיר.
- עבור נעל שנוצרה השנה (2023), יש תוספת של 50% למחיר.
- נעל עבודה מוזילה את מחיר הנעל ב-50 ₪.
הגדירו את המחלקות הדרושות לניהול המחסן באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים. סרטטו תרשים UML המתאר את הקשר בין המחלקות.
לכל אחת מהמחלקות כתבו את כותרת המחלקה ואת התכונות שלה. כתבו לכל מחלקה את הפעולה הבונה. אפשר להניח שבכל מחלקה הוגדרו פעולות set/get.
המחלקה מחסן (Storage) מיועדת לשמירת נתונים עבור כל זוגות הנעליים שהחנות מציעה. כתבו את כותרת המחלקה ואת התכונה או התכונות שלה והוסיפו אותה ל-UML. יש לתעד את המחלקה!
כתבו פעולה או פעולות calcPrice לחישוב המחיר הסופי של נעליים לפי הקריטריונים. המימוש חייב להיות בהתאם לעקרונות תכנות מונחה עצמים. ציינו באיזו מחלקה כתבתם את הפעולה.
public double calcPrice()
כתבו במחלקה Storage פעולה המחזירה את מספר זוגות הנעליים האורתופדיות שהחנות מציעה.
public int countOrthopedic()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.