במערכת לניהול מסעדה יש כמה מחלקות:
לקוח Client המאופיין בשם (string name) ומספר סועדים (int diners), שולחן Table המאופיין במספר שולחן (int num), מספר מקומות בשולחן (int places) ומספר מקומות פנויים (int free). מספר המקומות בשולחן (גודל השולחן) הוא אחד משלוש אפשרויות: 2 (שולחנות קטנים), 4 (שולחנות בינוניים) ו-8 (שולחנות גדולים). בשתי המחלקות קיימות הפעולות הבונות המקבלות את ערכי התכונות ופעולות Get/Set לכל תכונה. המחלקה Restaurant מאופיינת בתור של לקוחות וברשימה מקושרת של שולחנות.
class Restaurant
{
private Queue<Client> clients;
private Node<Table> tables;
….
}
(א)כתבו במחלקה Restaurant את הפעולה הבונה המקבלת את מספר השולחנות הקטנים, את מספר השולחנות הבינוניים ואת מספר השולחנות הגדולים שיש במסעדה.
הפעולה הבונה מייצרת מסעדה חדשה עם תור הלקוחות ריק, ובה שולחנות בכמות שהועברה כפרמטר. סדר הכנסת השולחנות לרשימה הוא לבחירתכם.
כותרת הפעולה:
```csharp
public Restaurant(int small, int medium, int large)
```
הפעולה הבונה מייצרת מסעדה חדשה עם תור הלקוחות ריק, ובה שולחנות בכמות שהועברה כפרמטר. סדר הכנסת השולחנות לרשימה הוא לבחירתכם.
כותרת הפעולה:
```csharp
public Restaurant(int small, int medium, int large)
```
(ב)כתבו פעולה במחלקה Restaurant המקבלת מספר סועדים ומחזירה את מספר השולחן שיש בו מספיק מקומות הפנויים. אם אין שולחן כזה, הפעולה תחזיר ערך (-1).
כותרת הפעולה:
```csharp
public int FindAvailableTable(int numOfDiners)
```
כותרת הפעולה:
```csharp
public int FindAvailableTable(int numOfDiners)
```
(ג)כתבו פעולה במחלקה Restaurant המטפלת בהושבת לקוח בשולחן. הפעולה תושיב לקוח אחד מתוך הלקוחות הממתינים בתור, בשולחן שבו יש מספיק מקומות פנויים, תוך שמירה על סדר התור – לקוח מתאים שהגיע קודם, יטופל קודם.
אם יימצא שולחן מתאים, יש להוציא את הלקוח מהתור, לעדכן את מספר מקומות הפנויים בשולחן ולהחזיר true. אם הפעולה לא תצליח להושיב אף לקוח מהלקוחות בתור, הפעולה תחזיר false.
כותרת הפעולה:
```csharp
public bool SeatNextClient()
```
אם יימצא שולחן מתאים, יש להוציא את הלקוח מהתור, לעדכן את מספר מקומות הפנויים בשולחן ולהחזיר true. אם הפעולה לא תצליח להושיב אף לקוח מהלקוחות בתור, הפעולה תחזיר false.
כותרת הפעולה:
```csharp
public bool SeatNextClient()
```
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות