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

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

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

callerClassNoteHebrew: המחלקה Caller (מתקשר). למחלקה הוגדרו לה פעולה בונה ופעולות get לשם ולטלפון.

callerGetterCasingConfidenceFlag: The inline prose referencing Caller's already-defined getters was hard to read with full certainty at this render resolution (appeared as capitalized 'GetName()'/'GetPhOne()'-style text even in the Java-section printing) — LOW/MEDIUM confidence on that one inline phrase specifically; the constructor row and the full Service/Support method tables below it are unambiguous and HIGH confidence (clearly camelCase in Java: addCaller/callback/getNumOfCallers/startSupport; clearly PascalCase in C#: AddCaller/Callback/GetNumOfCallers/StartSupport).

callerTable: constructor: Caller (string name, string phone)

constructorDocHebrew: הפעולה בונה מתקשר חדש ששמו name ומספר הטלפון שלו phone.

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

serviceTable:

  • java: void addCaller (Caller c)

csharp: void AddCaller (Caller c)

descHebrew: מוסיפה מתקשר c לאוסף הממתינים בעמדה.

  • java: Caller callback()

csharp: Caller Callback()

descHebrew: הפעולה מחזירה את המתקשר הראשון מבין הממתינים בעמדה, ומוחקת את נתוניו מאוסף הממתינים בעמדה. הנחה: יש ממתינים בעמדה.

  • java: int getNumOfCallers()

csharp: int GetNumOfCallers()

descHebrew: הפעולה מחזירה את מספר הממתינים בעמדה.

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

supportTable:

  • java: void startSupport (String name, String phone)

csharp: void StartSupport (string name, string phone)

descHebrew: הפעולה מקבלת פרטים של מתקשר ומוסיפה אותו לסוף אוסף הממתינים בעמדה שמספר הממתינים בה הוא הנמוך ביותר. אם יש כמה עמדות כאלה, המתקשר יתווסף לראשונה מביניהן.

סעיף א

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

סעיף ב

Callback()

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

סעיף ג

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

סעיף ד

StartSupport()

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

סעיף ה

TheBest()

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

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

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

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

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