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

חברת Help14U נותנת שירותי תמיכה טלפונית. מוקד השירות כולל 15 עמדות תמיכה הממוספרות 0-14. שירותי התמיכה מתנהלים באופן הבא:

• כל מתקשר משאיר את שמו ואת מספר הטלפון שלו לרכז המערכת. • הרכז מצרף את פרטי המתקשר לאוסף הממתינים בעמדת התמיכה הכי פחות עמוסה. • כאשר עמדת התמיכה מסיימת טיפול במתקשר, פרטיו נמחקים מאוסף הממתינים בעמדה. מערכת לניהול שירות כוללת כמה מחלקות.

המחלקה Caller (מתקשר). למחלקה הוגדרו פעולה בונה ופעולות GetName() ו-GetPhone().

פעולהתיאור
Caller (string name, string phone)הפעולה בונה מתקשר חדש ששמו name ומספר הטלפון שלו phone

המחלקה Service מייצגת עמדת שירות. לפניכם ממשק חלקי של המחלקה Service:

פעולהתיאור
void AddCaller (Caller c)מוסיפה מתקשר c לאוסף הממתינים בעמדה
Caller Callback()הפעולה מחזירה את המתקשר הראשון מבין הממתינים בעמדה, ומוחקת את נתוניו מאוסף הממתינים. הנחה: יש ממתינים בעמדה
int GetNumOfCallers()הפעולה מחזירה את מספר הממתינים בעמדה

ניהול מוקד השירות נעשה בעזרת המחלקה Support. לפניכם ממשק חלקי של המחלקה Support:

פעולהתיאור
void StartSupport (string name, string phone)הפעולה מקבלת פרטים של מתקשר ומוסיפה אותו לסוף אוסף הממתינים של העמדה שמספר הממתינים בה הוא הנמוך ביותר. אם יש כמה עמדות כאלה, המתקשר יתווסף לראשונה מביניהן.
סעיף א

כתבו את כותרת המחלקה Service ואת התכונות שלה. לייצוג אוסף, אפשר להשתמש במחלקות Stack, Queue, Node. אפשר להוסיף תכונות נוספות. חובה לתעד את התכונות.

סעיף ב

Callback()

כתבו את הפעולה callback().

סעיף ג

כתבו את כותרת המחלקה Support ואת התכונות שלה.

סעיף ד

StartSupport()

כתבו את הפעולה startSupport().

סעיף ה

TheBest()

הנהלת החברה החליטה לציין בסוף כל יום עבודה את פקיד/ת השרות שטיפל/ה בהכי הרבה לקוחות. ציינו שינויים נדרשים במחלקה/מחלקות וכתבו פעולה במחלקה Support המחזירה את מספר העמדה של הפקיד הכי טוב ביותר (אפשר להניח שיש רק פקיד אחד).

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

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

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

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