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

המחלקה Product מייצגת מוצר בחנות מוצרים חשמליים. תכונות: name (מחרוזת), category (מחרוזת), count (מספר שלם, מספר יחידות), price (מספר ממשי). במחלקה Product הוגדרה פעולה בונה (constructor) המקבלת פרמטר של כל תכונה וקובעת את הערכים, וכן פעולות get/set לכל תכונה.

סעיף א

כתבו פעולה פנימית במחלקה Product המקבלת הפניה למוצר other. הפעולה מחזירה true אם המוצר הנוכחי (עצם המפעיל את הפעולה) זול יותר ממוצר other. כותרת הפעולה: public boolean isCheaper(Product other)

כתבו פעולה נוספת פנימית במחלקה Product המקבלת מוצר other ובודקת אם הוא זהה למוצר הנוכחי (עצם המפעיל את הפעולה) פרט למחיר ולמספר היחידות. כותרת הפעולה: public boolean isSame(Product other)

סעיף ב

המחלקה Stock מייצגת את המלאי בחנות, ומיוצגת באמצעות מערך ששומר את המוצרים. התכונות: Product[] stock, int numOfProducts (אפשר להניח שאין יותר מ-100 מוצרים שונים).

  1. כתבו בנאי ברירת-מחדל (default constructor) של המחלקה Stock היוצר אובייקט שבו מערך בגודל המקסימלי של 100 מוצרי חשמל. בהתחלה המערך ריק ומספר המוצרים שבו שווה ל-0.

  2. כתבו פעולה במחלקה Stock המקבלת סוג מוצר ומחזירה הפניה למוצר הכי זול מאותו סוג. כותרת הפעולה: public Product mostCheaper(String category). אם במלאי אין מוצרים מאותו סוג category, הפעולה תחזיר null.

  3. כתבו במחלקה Stock פעולה המקבלת פרטים של מוצר ומוסיפה אותו למלאי. כותרת הפעולה: public void updateStock(String name, String category, int count, double price). אם מוצר כבר קיים במלאי (אותו name וגם category) הפעולה תעדכן את מספר היחידות של המוצר במלאי (תוסיף את count), והמחיר במלאי יהיה הזול בין המחיר הקיים והפרמטר price. אם מוצר לא קיים במלאי הפעולה תוסיף מוצר חדש לפי פרמטרי הפעולה. אפשר להניח שיש מקום להוספת מוצר חדש במערך.

public Stock() / public Product mostCheaper(String category) / public void updateStock(String name, String category, int count, double price)

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

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

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

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