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

פרויקט לניהול שיווק דירות של חברת "קנה ביתך": Appartment (דירה רגילה: owner, floor, numApp, area), GardenApp (דירת גן: כל תכונות Appartment + gardenArea), Penthouse (דירת פנטהאוז: כל תכונות Appartment + numTerr, terraceArea, seaView), Luxary (מיני-פנטהאוז: כל תכונות Appartment + terraceArea). מחיר דירה = areaCOST_APP (+ terraceAreaCOST_TERRACE ו/או gardenArea*COST_GARDEN לפי הסוג), עם הנחת 5% לפנטהאוז ללא נוף לים.

public Appartment(int floor, int numApp, int area)
{
this.owner = "FREE";
this.floor = floor;
this.numApp = numApp;
this.area = area;
}

public void SetOwner(string name)
{
   this.owner = name;
}

const int COST_APP = 1000;
const int COST_TERRACE = 300;
const int COST_GARDEN = 50;
סעיף א

סרטטו תרשים UML המתאר את הקשר בין המחלקות Appartment, GardenApp, Penthouse, Luxary באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים.

סעיף ב

לכל אחת מהמחלקות Appartment, GardenApp, Penthouse, Luxary כתבו: כותרת המחלקה; תכונות.

סעיף ג

באיזו מחלקה או באילו מחלקות יש להוסיף את הקבועים COST_APP, COST_TERRACE, COST_GARDEN? הסבירו את תשובתכם.

סעיף ד

כדי לקדם את מכירות דירות הפנטהאוז הוחלט לתת הנחה של 5% לדירות שאין להן נוף לים. כתבו פעולה או פעולות לחישוב ולהחזרת מחיר הדירה. יש לציין באיזו מחלקה צריך להוסיף את הפעולה או את הפעולות. (הנוחי: הפעולות get ו-toString/ToString מוגדרות עבור כל תכונה בכל אחת מהמחלקות הפרויקט.)

public int GetPrice()

סעיף ה

כתבו פעולה חיצונית המקבלת מערך דירות המתאר בניין מסוים וסכום כסף שלקוח רוצה להשקיע. הפעולה תדפיס פרטי דירות שפנויות למכירה ומחירן אינו עולה על הסכום שאותו הלקוח רוצה להשקיע.

public static void PrintAffordable(Appartment[] building, int budget)

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

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

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

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