נתון פרויקט שהוגדרו בו ארבע מחלקות ושני ממשקים:
נתון פרויקט שהוגדרו בו ארבע מחלקות ושני ממשקים:
interface IConnectable {void Connect(string network);}
interface IRemoteControllable { void PerformAction(); }
public class EDevice {
private string model;
public EDevice(string model) { this.model = model; }
public void PrintInfo() {
Console.WriteLine("Device: " + model);
}
}
public class SmartLamp : EDevice, IRemoteControllable {
public SmartLamp(string model) : base(model) {
}
public void PerformAction() {
Console.WriteLine("Lamp: Lighting up");
}
}
public class SmartTV : EDevice, IConnectable,
IRemoteControllable {
public SmartTV(string model) : base(model) {
}
public void Connect(string net) {
Console.WriteLine("TV connected to " + net);
}
public void PerformAction() {
Console.WriteLine("TV: Playing movie");
}
}
public class RobotVacuum : EDevice, IConnectable {
public RobotVacuum(string model) : base(model) {
}
public void Connect(string net) {
Console.WriteLine("Vacuum ready on " + net);
}
}
סעיף א
נתון קטע קוד:
EDevice tv = new SmartTV("Sony-4K");
EDevice lamp = new SmartLamp("Lux");
IConnectable vacuum = new RobotVacuum("iRobot");
// **** //
עבור כל אחד מהקטעים הבאים (1–6), כתבו אם הוא תקין או גורם לשגיאה כאשר מוסיפים אותו במקום המסומן ב-****. אם הקוד תקין – הסבירו מה יהיה הפלט. אם לא – הסבירו מדוע.
tv.PrintInfo();
tv.Connect("Home_Net");
IRemoteControllable r1 = new SmartLamp("LED");
r1.PrintInfo();
if (vacuum is EDevice) {
((EDevice)vacuum).PrintInfo();
}
SmartTV tv2 = (SmartTV)(new EDevice("Generic"));
tv2.PrintInfo();
IConnectable c1 = (IConnectable)lamp;
c1.Connect("Guest_WiFi");
IRemoteControllable r2 = vacuum;
r2.PerformAction();
סעיף ב
כתבו פעולה המקבלת מערך של מכשירי חשמל (מערך עצמים מסוג EDevice) ושם רשת. הפעולה צריכה:
- להדפיס את המידע של כל מכשיר;
- אם מכשיר ניתן לחיבור – לחבר אותו לרשת;
- אם מכשיר ניתן לשליטה מרחוק – להפעיל אותו. כותרת הפעולה:
public static void SetupHome(EDevice[] devices, string network)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.