בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2022 קיץ מועד א

ניהול חנות מקוונת - היררכיית מוצרים

כולל סעיף סרטוט — בקרוב
שאלה קודמתשאלה הבאה
שאלה 14מבני נתונים2022 קיץ מועד א

ניהול חנות מקוונת - היררכיית מוצרים

בעל חנות כולבו מעוניין למכור את מוצריו גם באופן מקוון (אונליין).

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

  • המחלקה Clothing, המייצגת בגד
  • המחלקה Shirt, המייצגת חולצה
  • המחלקה Pants, המייצגת זוג מכנסיים

(ראו קוד המחלקות. הניחו שיש פעולות Get ו-Set בעבור התכונות בכל המחלקות.)

בשלב השני החליט בעל החנות למכור באופן מקוון גם ספרים. לפניכם המחלקה Book המייצגת ספר:

java
1public class Book {
2    private int id;              // מספר זיהוי של המוצר
3    private String bookName;     // שם הספר
4    private String author;       // שם הסופר
5    private double price;        // מחיר
6}

הניחו שיש פעולות Get ו-Set בעבור תכונות המחלקה.

כדי שהמערך arr במחלקה Cart יוכל להכיל גם ספרים, נעשו הפעולות האלה:

  • הוגדרה המחלקה Product — מוצר.
  • טיפוס המשתנה arr במחלקה Cart שוּנה ל-Product.
  • נכתבו במחלקות המתאימות (כולל במחלקה Book) יחסי הורשה חדשים בינן ובין המחלקה Product.
  • חלק מן התכונות שהופיעו עד עכשיו בכמה מן המחלקות האחרות (כולל המחלקה Book) הועברו למחלקה Product, בהתאם לעקרונות תכנות מונחה עצמים (מעבר לתכונות אלו אין תכונות נוספות במחלקה Product).

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

מפרט המחלקה
הפעולה הפנימית של שלב המבצע: זימון הפעולה מחזיר את מחיר המוצר (חולצה/מכנסיים/ספר) לאחר ההנחה — בהתאם לכל מוצר.
Javapublic double getDiscountPrice()
C#public virtual double GetDiscountPrice()
1public class Clothing {
2    private int id;              // מספר זיהוי של המוצר
3    private String fabric;       // סוג הבד
4    private String color;        // צבע הבגד
5    private double price;        // מחיר
6}
7
8public class Shirt extends Clothing {
9    private String size;         // (S, M, L, XL, XXL) מידה
10}
11
12public class Pants extends Clothing {
13    private int length;          // אורך באינצ'ים
14    private int width;           // רוחב באינצ'ים
15}

משימות

אמשימה אcode

המחלקה Cart מייצגת סל קניות. למחלקה שלוש תכונות:

  • name — שם הקונה
  • arr — מערך המכיל גם חולצות וגם מכנסיים
  • current — מספר המוצרים הנוכחי בקנייה

כִּתבו את כותרת המחלקה Cart ואת התכונות שלה.

במשימה בdiagram

סרטטו תרשים הייררכייה המתאר את הקשר בין המחלקות: Clothing, Shirt, Pants, Cart. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

גמשימה גdiagram

בעקבות השלב השני (הוספת ספרים והמחלקה Product — ראו תיאור המערכת): סרטטו תרשים הייררכייה מעודכן המתאר את הקשר בין המחלקות: Clothing, Shirt, Pants, Book, Product, Cart. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

דמשימה דcode

כִּתבו את כותרת המחלקה Product ותכונותיה, וכִתבו מחדש את המחלקות שחל בהן שינוי בעקבות ההוספה של המחלקה Product.

שימו לב: יש להתייחס גם ליחסי הורשה חדשים וגם לשינוי שחל בתכונות המחלקות.

המשימה הcode

בעקבות המבצע (ראו שלב אחרון בתיאור המערכת) — נתונה הפעולה הפנימית GetDiscountPrice במחלקה Product (ראו פירוט הפעולות).

ממשו את הפעולה במחלקה Product, והוסיפו פעולה/ות במחלקה/ות המתאימה/ות כדי לבצע את הנדרש. ציינו בעבור כל פעולה שהוספתם באיזו מחלקה היא נוספה.

אין להשתמש בפעולה instanceof (ב-C#: is/as) ובפעולות המחלקה Object, ואין לשנות את תכונות המחלקות.

שאלה 14מבני נתונים2022 קיץ מועד א

ניהול חנות מקוונת - היררכיית מוצרים

בעל חנות כולבו מעוניין למכור את מוצריו גם באופן מקוון (אונליין).

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

  • המחלקה Clothing, המייצגת בגד
  • המחלקה Shirt, המייצגת חולצה
  • המחלקה Pants, המייצגת זוג מכנסיים

(ראו קוד המחלקות. הניחו שיש פעולות Get ו-Set בעבור התכונות בכל המחלקות.)

בשלב השני החליט בעל החנות למכור באופן מקוון גם ספרים. לפניכם המחלקה Book המייצגת ספר:

java
1public class Book {
2    private int id;              // מספר זיהוי של המוצר
3    private String bookName;     // שם הספר
4    private String author;       // שם הסופר
5    private double price;        // מחיר
6}

הניחו שיש פעולות Get ו-Set בעבור תכונות המחלקה.

כדי שהמערך arr במחלקה Cart יוכל להכיל גם ספרים, נעשו הפעולות האלה:

  • הוגדרה המחלקה Product — מוצר.
  • טיפוס המשתנה arr במחלקה Cart שוּנה ל-Product.
  • נכתבו במחלקות המתאימות (כולל במחלקה Book) יחסי הורשה חדשים בינן ובין המחלקה Product.
  • חלק מן התכונות שהופיעו עד עכשיו בכמה מן המחלקות האחרות (כולל המחלקה Book) הועברו למחלקה Product, בהתאם לעקרונות תכנות מונחה עצמים (מעבר לתכונות אלו אין תכונות נוספות במחלקה Product).

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

מפרט המחלקה
הפעולה הפנימית של שלב המבצע: זימון הפעולה מחזיר את מחיר המוצר (חולצה/מכנסיים/ספר) לאחר ההנחה — בהתאם לכל מוצר.
Javapublic double getDiscountPrice()
C#public virtual double GetDiscountPrice()
1public class Clothing {
2    private int id;              // מספר זיהוי של המוצר
3    private String fabric;       // סוג הבד
4    private String color;        // צבע הבגד
5    private double price;        // מחיר
6}
7
8public class Shirt extends Clothing {
9    private String size;         // (S, M, L, XL, XXL) מידה
10}
11
12public class Pants extends Clothing {
13    private int length;          // אורך באינצ'ים
14    private int width;           // רוחב באינצ'ים
15}

משימות

אמשימה אcode

המחלקה Cart מייצגת סל קניות. למחלקה שלוש תכונות:

  • name — שם הקונה
  • arr — מערך המכיל גם חולצות וגם מכנסיים
  • current — מספר המוצרים הנוכחי בקנייה

כִּתבו את כותרת המחלקה Cart ואת התכונות שלה.

במשימה בdiagram

סרטטו תרשים הייררכייה המתאר את הקשר בין המחלקות: Clothing, Shirt, Pants, Cart. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

גמשימה גdiagram

בעקבות השלב השני (הוספת ספרים והמחלקה Product — ראו תיאור המערכת): סרטטו תרשים הייררכייה מעודכן המתאר את הקשר בין המחלקות: Clothing, Shirt, Pants, Book, Product, Cart. יש לסמן ירושה באמצעות החץ (◁———) והכלה באמצעות הסימן (◆——).

דמשימה דcode

כִּתבו את כותרת המחלקה Product ותכונותיה, וכִתבו מחדש את המחלקות שחל בהן שינוי בעקבות ההוספה של המחלקה Product.

שימו לב: יש להתייחס גם ליחסי הורשה חדשים וגם לשינוי שחל בתכונות המחלקות.

המשימה הcode

בעקבות המבצע (ראו שלב אחרון בתיאור המערכת) — נתונה הפעולה הפנימית GetDiscountPrice במחלקה Product (ראו פירוט הפעולות).

ממשו את הפעולה במחלקה Product, והוסיפו פעולה/ות במחלקה/ות המתאימה/ות כדי לבצע את הנדרש. ציינו בעבור כל פעולה שהוספתם באיזו מחלקה היא נוספה.

אין להשתמש בפעולה instanceof (ב-C#: is/as) ובפעולות המחלקה Object, ואין לשנות את תכונות המחלקות.