בעלי חנות מזון רוצים למחשב את מלאי המצרכים שברשותם. לצורך כך הוגדרו שלוש מחלקות: המחלקה Date שתייצג תאריך; המחלקה FoodItem שתייצג מוצר מזון; המחלקה Stock שתייצג את המלאי בחנות המזון.
בעלי חנות מזון רוצים למחשב את מלאי המצרכים שברשותם. לצורך כך הוגדרו שלוש מחלקות: המחלקה Date שתייצג תאריך; המחלקה FoodItem שתייצג מוצר מזון; המחלקה Stock שתייצג את המלאי בחנות המזון.
למחלקה Date יש את התכונות הפרטיות הבאות: int day (שלמים בין 1 ל-31); int month (שלמים בין 1 ל-12); int year (שלמים חיוביים בני ארבע ספרות). למחלקה הוגדרו פעולה בונה (constructor), פעולות get/set והפעולה toString. כתוב פעולה equals המקבלת כפרמטר תאריך מסוים ובודקת אם עצם שמתקבל כפרמטר זהה לתאריך הנוכחי (התאריך שמיוצג על ידי האובייקט עליו מופעלת הפעולה).
public bool Equals(Date other)
כתוב פעולה before המקבלת כפרמטר תאריך מסוים ובודקת אם התאריך הנוכחי (התאריך שמיוצג באמצעות האובייקט שעליו מופעלת הפעולה) קודם (בלוח השנה) לתאריך שהתקבל כפרמטר.
public bool Before(Date other)
בחנות יש מוצרי מזון שונים. הוגדרה מחלקה בשם FoodItem המייצגת מוצר מזון. למחלקה FoodItem יש את התכונות הפרטיות הבאות: שם המוצר (name) מטיפוס String; כמות המוצר במלאי (quantity) מטיפוס int; תאריך הייצור של המוצר (productionDate); תאריך התפוגה של המוצר (expiryDate); הטמפרטורה המינימלית שבה המוצר יכול להתקיים (minTemperature) מטיפוס int; הטמפרטורה המקסימלית שבה המוצר יכול להתקיים (maxTemperature) מטיפוס int; מחיר המוצר (price) מטיפוס double. למחלקה הוגדרו פעולה בונה (constructor), פעולות get/set והפעולה toString. כתוב פעולה בוליאנית isFresh המקבלת תאריך מסוים d כפרמטר, ומחזירה true אם בתאריך הזה המוצר טרי (כלומר, נמצא לאחר תאריך הייצור שלו ולפני תאריך התפוגה שלו, כולל). אם לא הפעולה מחזירה false.
public bool IsFresh(Date d)
כתוב פעולה howManyItems המקבלת מספר שלם שמייצג סכום של כסף, ומחזירה כמה פריטים של המוצר אפשר לקנות בסכום זה. הערה: יש לשים לב אם קיימת כמות מספיקה של פריטים במלאי. לדוגמה: אם מחירו של המוצר הוא שני שקלים ויש במלאי ארבעה פריטים, והסכום שמתקבל כפרמטר לפעולה הוא עשרה, אפשר אמנם לקנות בסכום זה חמישה פריטים, אבל מכיוון שיש רק ארבעה פריטים במלאי, השיטה תחזיר את הערך ארבע.
public int HowManyItems(int money)
המחלקה Stock מייצגת את המלאי בחנות. הייצוג נעשה באמצעות מערך ששומר את מוצרי המזון. התכונות במחלקה הן: מערך של המוצרים FoodItem[] stock; מספר המוצרים שיש בחנות int numOfItems. אפשר להניח שאין יותר מ-100 מוצרים שונים. כתוב בנאי ברירת-מחדל (default constructor) של המחלקה היוצר אובייקט שבו מערך בגודל המקסימלי של 100 מוצרי מזון. בהתחלה המערך ריק ומספר המוצרים שבו שווה ל-0.
public Stock()
כתוב פעולה howMany המקבלת מספר שלם temp שהוא הטמפרטורה שיש במקרר מסוים, ומחזירה את מספר המוצרים שאפשר לאחסן במקרר זה (כלומר, שהטמפרטורה של המקרר מתאימה לאחסון שלהם). שימו לב, אם במלאי יש חמישה יוגורטים שניתן לאחסן במקרר, אז צריך לספור אותם כחמישה (5) ולא כמוצר אחד (יוגורט). אם המערך ריק יש להחזיר 0.
public int HowMany(int temp)
כתוב פעולה removeAfterDate המקבלת כפרמטר תאריך d ומוחקת מהמלאי את כל מוצרי המזון שתאריך התפוגה שלהם הוא לפני התאריך d (כלומר, את כל המוצרים שהם מקולקלים בתאריך d, כי תאריך התפוגה שלהם כבר עבר).
public void RemoveAfterDate(Date d)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.