טוען...
טוען...
תשלום מיסֵי ארנונה (Property tax) הוא תשלום לרשויות המקומיות בעבור שטח המגורים והקרקע הנוספת שבבעלות התושבים. מחיר הארנונה הוא 10 ש"ח למ"ר של שטח המיועד למגורים ו-0.5 ש"ח למ"ר של קרקע נוספת.
לדוגמה, תושב שבבעלותו שטח למגורים בגודל 100 מ"ר ושטח קרקע בגודל 500 מ"ר משלם מיסי ארנונה בסכום של 100 · 10 + 500 · 0.5 = 1250.
התושבים חולקו לשלוש קבוצות:
| קבוצת התושבים | אופן חישוב הארנונה |
|---|---|
| תושב עיר | משלם מיסי ארנונה עבור שטח המגורים והקרקע שבבעלותו, ומקבל מענק בסך 250 ש"ח לתשלום הארנונה. |
| תושב עיר ותיק — תושב עיר בן 60 ומעלה | משלם מיסי ארנונה כפי שמשלם תושב עיר, ונוסף לכך זכאי להנחה בהתאם לגילו: 1% הנחה עבור כל שנת חיים לאחר גיל 60. ההנחה מחושבת לאחר הפחתת המענק מהסכום המקורי. |
| תושב כפר | משלם ארנונה עבור שטח המגורים והקרקע שבבעלותו וזכאי להנחה של 10%. תושב כפר בן 60 ומעלה אינו זכאי להנחה התלויה בגיל. |
אם לאחר הפחתת ההנחה והמענק הסכום לתשלום מיסי הארנונה הוא מספר שלילי, התושב פטור מהתשלום (משלם 0 ש"ח).
הוחלט לפתח תוכנה לחישוב מיסי ארנונה ולגבייתם מהתושבים, ולשם כך הוגדר הממשק שלפניך.
java1interface IData
2{
3 public String getName(); // מחזירה שם של תושב
4 public double getPropertyTax(); // מחזירה גובה של מס ארנונה
5}
בסעיפים א-ב שלפניך עליך להגדיר את המחלקות לפי עקרונות של תִכנות מונחה עצמים בהתאם לדרישות:
private).הגדר מחלקה Resident (המייצגת תושב), הממשת את הממשק IData, וכתוב בה את תכונות המחלקה (אין צורך לכתוב פעולה בונה).
הגדר שלוש מחלקות לכל אחת מקבוצות התושבים:
CityResident — תושב עירSeniorCityResident — תושב עיר ותיקVillageResident — תושב כפרכתוב את תכונות המחלקות ואת הפעולה getPropertyTax() שתאפשר לחשב את תשלום מס הארנונה לכל אחת משלוש קבוצות התושבים (אין צורך לכתוב פעולה בונה).
נתון גוף פעולה המקבל מערך a של נתוני התושבים, ומדפיס עבור כל תושב עיר ותיק את שמו ואת סכום הארנונה שהוא נדרש לשלם.
java1for (int i = 0; i < a.length; i++)
2{
3 if (a[i] instanceof SeniorCityResident)
4 {
5 System.out.println(a[i].getName()+" "+a[i].getPropertyTax());
6 }
7}
עבור כל אחת מכותרות הפעולה (1)-(3) שלפניך, ציין אם הפעולה תקינה או אינה תקינה. אם הפעולה אינה תקינה — נמק מדוע, תקן את הפעולה, והעתק את הפעולה המתוקנת למחברתך.
(1) public static void print(Object [] a)
(2) public static void print(IData [] a)
(3) public static void print(Resident [] a)
תשלום מיסֵי ארנונה (Property tax) הוא תשלום לרשויות המקומיות בעבור שטח המגורים והקרקע הנוספת שבבעלות התושבים. מחיר הארנונה הוא 10 ש"ח למ"ר של שטח המיועד למגורים ו-0.5 ש"ח למ"ר של קרקע נוספת.
לדוגמה, תושב שבבעלותו שטח למגורים בגודל 100 מ"ר ושטח קרקע בגודל 500 מ"ר משלם מיסי ארנונה בסכום של 100 · 10 + 500 · 0.5 = 1250.
התושבים חולקו לשלוש קבוצות:
| קבוצת התושבים | אופן חישוב הארנונה |
|---|---|
| תושב עיר | משלם מיסי ארנונה עבור שטח המגורים והקרקע שבבעלותו, ומקבל מענק בסך 250 ש"ח לתשלום הארנונה. |
| תושב עיר ותיק — תושב עיר בן 60 ומעלה | משלם מיסי ארנונה כפי שמשלם תושב עיר, ונוסף לכך זכאי להנחה בהתאם לגילו: 1% הנחה עבור כל שנת חיים לאחר גיל 60. ההנחה מחושבת לאחר הפחתת המענק מהסכום המקורי. |
| תושב כפר | משלם ארנונה עבור שטח המגורים והקרקע שבבעלותו וזכאי להנחה של 10%. תושב כפר בן 60 ומעלה אינו זכאי להנחה התלויה בגיל. |
אם לאחר הפחתת ההנחה והמענק הסכום לתשלום מיסי הארנונה הוא מספר שלילי, התושב פטור מהתשלום (משלם 0 ש"ח).
הוחלט לפתח תוכנה לחישוב מיסי ארנונה ולגבייתם מהתושבים, ולשם כך הוגדר הממשק שלפניך.
java1interface IData
2{
3 public String getName(); // מחזירה שם של תושב
4 public double getPropertyTax(); // מחזירה גובה של מס ארנונה
5}
בסעיפים א-ב שלפניך עליך להגדיר את המחלקות לפי עקרונות של תִכנות מונחה עצמים בהתאם לדרישות:
private).הגדר מחלקה Resident (המייצגת תושב), הממשת את הממשק IData, וכתוב בה את תכונות המחלקה (אין צורך לכתוב פעולה בונה).
הגדר שלוש מחלקות לכל אחת מקבוצות התושבים:
CityResident — תושב עירSeniorCityResident — תושב עיר ותיקVillageResident — תושב כפרכתוב את תכונות המחלקות ואת הפעולה getPropertyTax() שתאפשר לחשב את תשלום מס הארנונה לכל אחת משלוש קבוצות התושבים (אין צורך לכתוב פעולה בונה).
נתון גוף פעולה המקבל מערך a של נתוני התושבים, ומדפיס עבור כל תושב עיר ותיק את שמו ואת סכום הארנונה שהוא נדרש לשלם.
java1for (int i = 0; i < a.length; i++)
2{
3 if (a[i] instanceof SeniorCityResident)
4 {
5 System.out.println(a[i].getName()+" "+a[i].getPropertyTax());
6 }
7}
עבור כל אחת מכותרות הפעולה (1)-(3) שלפניך, ציין אם הפעולה תקינה או אינה תקינה. אם הפעולה אינה תקינה — נמק מדוע, תקן את הפעולה, והעתק את הפעולה המתוקנת למחברתך.
(1) public static void print(Object [] a)
(2) public static void print(IData [] a)
(3) public static void print(Resident [] a)