אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2021 · קיץ מועד ב · שאלה 9כל שאלות המבחן ←
תכנות מונחה עצמים›פולימורפיזם ומחלקות מופשטות

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()

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי