המשימה
בדואר ישראל יש תור לקבלת שירות בדלפק. על פי החוק, אזרחים בני 80 ומעלה
פטורים מהתור ומקבלים שירות לפני כולם. כל השאר עומדים לפי סדר הגעתם.
בנו שתי מחלקות:
**Customer** — לקוח, עם חמשת יסודות המחלקה:
• name — שם
• age — גיל
**PostOffice** — מנהלת את התור. חשבו בעצמכם על התכונות.
• addCustomer(c) — מוסיפה לקוח לתור, לפי כלל הקדימות.
• callCustomer() — מדפיסה את שם הלקוח הבא ומסירה אותו מהתור.
אם אין לקוחות — מדפיסה "אין לקוחות בתור".
בפעולה הראשית, הכניסו לפי סדר הגעה: אזרח בן 23, אזרח בן 82, אזרח בן 34.
אחר כך בצעו קריאה ללקוח **ארבע** פעמים.
הפלט הצפוי:
דוד (בן 82 — פטור מהתור)
אבי (בן 23 — הראשון מבין הרגילים)
רונית (בן 34)
אין לקוחות בתור
הנחיות:
• רמז לתכונות: תור אחד לא מספיק כדי לתת קדימות בלי לשבור את סדר
ההגעה של השאר.
• 80 בדיוק כלול בפטור.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:table
{"title":"סדר ההגעה מול סדר השירות","rows":[["סדר הגעה","שם","גיל","פטור?","סדר שירות"],["1","אבי","23","לא","2"],["2","דוד","82","כן","1"],["3","רונית","34","לא","3"]]}
```
```ds:queue
{"title":"תור הפטורים אחרי שלוש ההוספות","items":["דוד"]}
```
```ds:queue
{"title":"תור הרגילים אחרי שלוש ההוספות","items":["אבי","רונית"]}
```
קוד הפתיחה
using System;
class Customer {
private string name;
private int age;
public Customer(string name, int age) {
// אתחל את התכונות
}
public string GetName() { return ""; }
public int GetAge() { return 0; }
public void SetName(string name) { }
public void SetAge(int age) { }
public override string ToString() { return ""; }
}
class PostOffice {
// הגדר כאן את התכונות
public PostOffice() {
// אתחל את התכונות
}
/** מוסיפה לקוח לתור, לפי כלל הקדימות. */
public void AddCustomer(Customer c) {
// כתוב את הפתרון כאן
}
/** מדפיסה את שם הלקוח הבא ומסירה אותו. אם אין — "אין לקוחות בתור". */
public void CallCustomer() {
// כתוב את הפתרון כאן
}
}
class Program {
static void Main() {
PostOffice po = new PostOffice();
po.AddCustomer(new Customer("אבי", 23));
po.AddCustomer(new Customer("דוד", 82));
po.AddCustomer(new Customer("רונית", 34));
po.CallCustomer(); // דוד
po.CallCustomer(); // אבי
po.CallCustomer(); // רונית
po.CallCustomer(); // אין לקוחות בתור
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.