החנות "ספר לכל" מוכרת סוגים שונים של ספרים: ספרים מודפסים, ספרי שמע, ספרים אלקטרוניים. חלק מהמוצרים ניתן לרכוש באריזת מתנה (בעבור תשלום נוסף).

לשם קידום מכירות ספרים, חנות "ספר לכל" פיתחה מערכת לניהול מלאי הספרים הכוללת את המחלקות הבאות: GiftEBook, PaperBook, EBook, AudioBook, Book ו-2 ממשקים IGiftable ו-IDownloadable.

לפניכם תרשים UML המתאר קשרים בין המחלקות והממשקים (חץ מלא=הרחבה/extends, חץ מקווקו=מימוש ממשק/implements):

IDownloadable «ממשק»: void Download(), int GetSize()

IGiftable «ממשק»: double GetAdditionPrice(), string GetGiftType()

Book (ספר) — מחלקת-על:

  • protected string name
  • protected string author
  • protected double price

AudioBook (ספר שמע) — extends Book, implements IDownloadable:

  • private int duration

EBook (ספר אלקטרוני) — extends Book, implements IDownloadable:

  • protected int fileSize

PaperBook (ספר נייר) — extends Book, implements IGiftable:

  • private int year
  • private int pages
  • private double addition

GiftEBook (ספר) — extends EBook, implements IGiftable:

  • private double addition
(א)כתבו עבור כל מחלקה, את כותרת המחלקה ואת הכותרות של כל הפעולות שחייבות להיות במחלקה.
(ב)המחיר של כל ספר תלוי בסוג הספר. לשם כך הוחלט להגדיר 3 קבועים המציינים מקדמי מחיר עבור ספרים אלקטרוניים, ספרי שמע וספרים מודפסים:

```csharp
const double EBOOK_FACTOR = 0.8;
const double AUDIOBOOK_FACTOR = 1.2;
const double PAPERBOOK_FACTOR = 1.0;
```

באיזו מחלקה או באילו מחלקות יש להוסיף את הקבועים הנ"ל? הסבירו את תשובתכם.
(ג)כתבו פעולה או פעולות המחזירה את מחיר הספר (ללא אריזת מתנה), עבור כל סוג ספר, יש לציין באיזו מחלקה צריך להוסיף את הפעולה או את הפעולות.
(ד)כתבו פעולה חיצונית המקבלת מערך ספרים המתאר את מלאי החנות וסכום כסף שלקוח רוצה להשקיע. הפעולה תדפיס את פרטי הספרים שמחירם אינו עולה על הסכום שהלקוח רוצה להשקיע.
(ה)כתבו פעולה חיצונית המקבלת מערך ספרים המתאר את מלאי החנות. הפעולה תדפיס את מספר הספרים שאפשר לרכוש אותם באריזת מתנה.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←