במפעל מסוים יש שני סוגים של עובדים: פועלים ומהנדסים. שכרו של כל עובד מחושב כך: 160 שעות עבודה או פחות נקראות "שעות בסיס" (basic), והעובד מקבל עבור כל שעה שכר לפי תפקידו: פועל מקבל 50 ש''ח לשעת עבודה ומהנדס – 90 ש''ח. עבור כל שעה נוספת (extra) מקבל העובד (ללא תלות בתפקיד) 100 ש''ח. לדוגמה: מהנדס שעבד בחודש מסוים 200 שעות יקבל משכורת של 18,400=(16090+40100) ₪.
במפעל מסוים יש שני סוגים של עובדים: פועלים ומהנדסים. שכרו של כל עובד מחושב כך: 160 שעות עבודה או פחות נקראות "שעות בסיס" (basic), והעובד מקבל עבור כל שעה שכר לפי תפקידו: פועל מקבל 50 ש''ח לשעת עבודה ומהנדס – 90 ש''ח. עבור כל שעה נוספת (extra) מקבל העובד (ללא תלות בתפקיד) 100 ש''ח. לדוגמה: מהנדס שעבד בחודש מסוים 200 שעות יקבל משכורת של 18,400=(16090+40100) ₪.
class Worker
{
private string id;// ת.ז. של עובד
private int status; //1-מהנדס, 2-פועל
private int basic; // מספר שעות בסיס בחודש
private int extra; // מספר שעות נוספות בחודש
public Worker(string id, int status) //פעולה בונה
{
this.id = id;
this.status = status;
this.basic = 0;
this.extra = 0;
}
// במחלקה הוגדרו כל הפעולות Set ו-Get וגם הפעולה ToString()
}
נתונה כותרת של פעולה לחישוב המשכורת של עובד. השלם את גוף הפעולה.
public int GetSalary (){…}
כתוב במחלקה Worker פעולה input() לקליטת נתוני עבודה של עובד מסוים: עבור כל אחד מ-20 ימי העבודה בחודש ייקלטו שעת תחילת העבודה ושעת סיום העבודה. לאחר קליטת הנתונים יש לעדכן את התכונות הרלוונטיות. אפשר להניח ששעת תחילת העבודה קטנה תמיד משעת הסיום.
public void Input()
כתוב פעולה אשר מקבלת מערך עצמים מסוג Worker השומר את נתוני השכר של כל עובדי המפעל. על הפעולה להדפיס, עבור כל אחד מהעובדים, את מספר תעודת הזהות שלו, את מספר שעות העבודה ואת משכורתו. הפעולה גם תדפיס את השכר הכולל של כל המהנדסים ואת השכר הכולל של כל הפועלים.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.