נתונה המחלקה Order, המייצגת פרטי הזמנה של מוצר כלשהו, ולה ארבע תכונות:
- productID – הקוד המזהה של המוצר, מטיפוס שלם בין 0 ל־99 (כולל)
- price – המחיר של המוצר, מטיפוס מספר ממשי
- quantity – כמות היחידות של המוצר, מטיפוס שלם
- delivery – האם כולל משלוח עד הבית, מטיפוס בוליאני (true – בעבור כולל משלוח, false – בעבור לא כולל משלוח)
לקוח שהזמין משלוח עד הבית צריך לשלם תוספת של 100 ש"ח. אם הוזמנו 10 יחידות לפחות באותה הזמנה, ונוסף על כך סכום ההזמנה (לא כולל המשלוח) גבוה מ־170.00 ש"ח – המשלוח ניתן חינם.
מניחים שקיימות פעולות Get ו־Set לכל התכונות של המחלקה.
כתבו במחלקה Order פעולה בונה המקבלת את הקוד המזהה של המוצר – productID ואת מחיר המוצר – price. הפעולה תאתחל את תכונות המחלקה כך שתתקבל הזמנה של המוצר, productID – במחיר של המוצר, price, בכמות של יחידה אחת, עם משלוח עד הבית.
כתבו במחלקה Order פעולה פנימית ששמה TotalPrice המחזירה מספר ממשי של הסכום הכולל לתשלום של כל הפריטים בהזמנה ללא דמי משלוח.
כתבו במחלקה Order פעולה פנימית ששמה TotalCost המחזירה מספר ממשי של הסכום כולל דמי משלוח שהלקוח צריך לשלם (אם ההזמנה לא כוללת משלוח עד הבית או המשלוח חינם, יוחזר סכום ההזמנה ללא דמי משלוח). הערה: יש להשתמש בפעולה שכתבתם בתת־סעיף ב(1).
נתון מערך allOrders מטיפוס Order המכיל הזמנות שבוצעו בשבוע מסוים. המערך אינו מסודר לפי סדר כלשהו ואין בו ערכי null. כתבו פעולה חיצונית ששמה SumQuantity המקבלת את המערך allOrders. הפעולה מחזירה מערך חדש מטיפוס שלם בגודל 100, שבכל תא מופיעה כמות היחידות הכוללת שהוזמנה מן המוצר, שהקוד המזהה שלו זהה לאינדקס של התא. למשל, אם הוזמנו ממוצר שהקוד המזהה שלו הוא 0 – בהזמנה אחת 15 יחידות, בהזמנה אחרת 20 יחידות, ובהזמנה נוספת 3 יחידות – יופיע בתא של אינדקס 0 המספר 38.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.