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