החנות "ספר לכל" מוכרת סוגים שונים של ספרים: ספרים מודפסים, ספרי שמע, ספרים אלקטרוניים. חלק מהמוצרים ניתן לרכוש באריזת מתנה (בעבור תשלום נוסף).
לשם קידום מכירות ספרים, חנות "ספר לכל" פיתחה מערכת לניהול מלאי הספרים הכוללת את המחלקות הבאות: GiftEBook, PaperBook, EBook, AudioBook, Book ו-2 ממשקים IGiftable ו-IDownloadable.
לפניכם תרשים UML המתאר קשרים בין המחלקות והממשקים (חץ מלא=הרחבה/extends, חץ מקווקו=מימוש ממשק/implements):
IDownloadable «ממשק»: void Download(), int GetSize()
IGiftable «ממשק»: double GetAdditionPrice(), string GetGiftType()
Book (ספר) — מחלקת-על:
protected string nameprotected string authorprotected 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 yearprivate int pagesprivate 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;
```
באיזו מחלקה או באילו מחלקות יש להוסיף את הקבועים הנ"ל? הסבירו את תשובתכם.
```csharp
const double EBOOK_FACTOR = 0.8;
const double AUDIOBOOK_FACTOR = 1.2;
const double PAPERBOOK_FACTOR = 1.0;
```
באיזו מחלקה או באילו מחלקות יש להוסיף את הקבועים הנ"ל? הסבירו את תשובתכם.
(ג)כתבו פעולה או פעולות המחזירה את מחיר הספר (ללא אריזת מתנה), עבור כל סוג ספר, יש לציין באיזו מחלקה צריך להוסיף את הפעולה או את הפעולות.
(ד)כתבו פעולה חיצונית המקבלת מערך ספרים המתאר את מלאי החנות וסכום כסף שלקוח רוצה להשקיע. הפעולה תדפיס את פרטי הספרים שמחירם אינו עולה על הסכום שהלקוח רוצה להשקיע.
(ה)כתבו פעולה חיצונית המקבלת מערך ספרים המתאר את מלאי החנות. הפעולה תדפיס את מספר הספרים שאפשר לרכוש אותם באריזת מתנה.
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות