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

{{claim:DST-QUEUE-CHOOSE}}לא רלוונטי כאן — זה מבנה מבוסס-שרשראות, לא תור{{/claim}} מערך של 30 שרשראות (יום בחודש יוני, לפי התיקון הרשמי — ראו contentIssues על 'אפריל'), פלוס שרשרת נהגים ושרשרת רכבים; שלוש הפעולות בונות זו על גבי זו: הוספה (א'), סכימה חוצת-ימים (ב'), והדפסה חוצת-נהגים שמשתמשת בפעולה נתונה (ג').

class Payment
{
    private String name;
    private int num;
    private double fuel;
    public Payment(String name, int num, double fuel)
    {
        this.name = name;
        this.num = num;
        this.fuel = fuel;
    }
    // get/set לכל תכונה, ו-toString המחזירה מחרוזת המתארת את מצב החשבונית
}
class TrickTruck
{
    private Node<String> drivers;
    private Node<Integer> cars;
    private Node<Payment>[] payments; // מערך בגודל 30 (יוני), כל תא = שרשרת חשבוניות של אותו יום
    // במחלקה הוגדרו פעולה בונה, פעולות get/set, ושלוש פעולות בוליאניות נוספות:
    // existDriver(String name), existCar(int num), worked(String name, int day)
}
סעיף א

כתבו פעולה במחלקת TrickTruck בשם addPayment שתקבל כפרמטר את היום בחודש day, את מספר הרכב num, את שם הנהג name ואת כמות הדלק fuel שתודלקה. אם כל הפרמטרים שהפעולה מקבלת הם תקינים, הפעולה מוסיפה חשבונית חדשה לרשימה המתאימה במערך payments ומחזירה true; אם לא, הפעולה מחזירה false ולא מבצעת דבר.

public boolean addPayment(int day, int num, String name, double fuel)

סעיף ב

כתבו במחלקת TrickTruck את הפעולה totalFuel(int num) המקבלת מספר רכב ומחזירה את כמות הדלק הכללית שתודלקה עבור הרכב.

public double totalFuel(int num)

סעיף ג

כתבו במחלקת TrickTruck את הפעולה printWorkDays() המדפיסה עבור כל נהג את מספר הימים שעבורם הוא הגיש קבלות (חשבוניות).

public void printWorkDays()

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

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

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

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