java
public class Cable { private double subscriptionPayment; // מחיר קבוע למנוי public double getPrice() { return subscriptionPayment; } } // חבילה בסיסית public class BasicPackage extends Cable { private double price; // מחיר חבילה בסיסית } // חבילה מורחבת המכילה ערוצים נוספים public class ExtendedPackage extends BasicPackage { private double price; // מחיר קבוע עבור כל ערוץ נוסף private int numOfChannels; private String[] namesOfChannels; // מערך שמות ערוצים } // מחלקה עבור טלפון public class Phone extends Cable { private double price; // מחיר שיחה private int numberOfCalls; // מספר שיחות } // חבילה משולבת public class Triple extends Cable { private Cable package; // חבילה בסיסית או מורחבת private Phone phone; // טלפון private double priceOfInternet; // מחיר השימוש באינטרנט } // מחלקה עבור לקוח public class Client { private String nameClient; private Cable cable; } // לכל התכונות בכל המחלקות קיימות פעולות get/set.
לקוח החברה יכול לרכוש מנוי לפי בחירתו. החברה קבעה שיטת מחיר לכל חבילה שהיא מספקת לפי הכללים הבאים:
- למחיר כל חבילה מתווסף גם המחיר הקבוע למנוי.
- מחיר חבילה מורחבת הוא מחיר החבילה הבסיסית + [מחיר ערוץ] * [מספר הערוצים].
- התשלום עבור שיחות הטלפון הוא [מחיר שיחה] * [מספר שיחות].
- לקוח הרוכש חבילה משולבת מקבל 10% הנחה (זאת אומרת שמחיר חבילה משולבת הוא 90% מסכום כל מרכיביו).
נתונה מחלקה "חברת הכבלים" Company המכילה מערך clients מטיפוס Client בגודל 1000 ומונה לקוחות numClients.
ממשו את פעולת getPrice בכל אחת מארבע המחלקות האחרות: BasicPackage, ExtendedPackage, Phone, Triple. ממשו את הפעולה getPrice במחלקה Client.
public double getPrice()
כתבו במחלקה Company פעולה המדפיסה את שמות הלקוחות שיש להם ערוץ "ספורט".
public void printSportClients()
כתבו במחלקה Company פעולה המחזירה את כמות הלקוחות שיש להם חבילה בסיסית בלבד.
public int countBasicOnly()
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.