בי מאסטר (Bmaster)מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
תפריט

חומרי לימוד

מאגר שאלות בגרותשאלות נפוצותמדריכיםארכיון בגרויות
חזרה למאגר2016 קיץ מועד ב

מימוש מערכת כלי תחבורה

שאלה קודמתשאלה הבאה
שאלה 15מבני נתונים2016 קיץ מועד ב

מימוש מערכת כלי תחבורה

לפניכם חלק מפרויקט העוסק בכלֵי תחבורה, הכולל את המחלקות האלה:

מחלקהתפקיד
Vehicleמייצגת כלי תחבורה
Trainמייצגת רכבת שהיא כלי תחבורה
Boatמייצגת סירה שהיא כלי תחבורה
Airplaneמייצגת מטוס שהוא כלי תחבורה
TransportationCompanyמייצגת חברה שיש לה כלֵי תחבורה מסוגים שונים
1public class Vehicle {
2    private String type;      // מיקום (יבשה / מים / אוויר)
3    private String way;       // סוג הדרך (כביש / מסילה / נהר / ...)
4    private int maxSpeed;     // מהירות מקסימלית
5
6    public Vehicle(String type, String way, int maxSpeed) {
7        this.type = type;
8        this.way = way;
9        this.maxSpeed = maxSpeed;
10    }
11}
12
13public class Train extends Vehicle {
14    private int numOfCarriages;    // מספר הקרונות
15
16    public Train(int maxSpeed, int numOfCarriages) {
17        super("land", "tracks", maxSpeed);
18        this.numOfCarriages = numOfCarriages;
19    }
20    // מגדילה ב-n את מספר הקרונות ברכבת
21    public void incNumOfCarriages(int n) {
22        this.numOfCarriages = this.numOfCarriages + n;
23    }
24}
25
26public class Boat extends Vehicle {
27    public Boat(String way, int maxSpeed) {
28        super("water", way, maxSpeed);
29    }
30}
31
32public class Airplane extends Vehicle {
33    private int maxHeight;    // גובה טיסה מקסימלי
34
35    public Airplane(int maxSpeed, int maxHeight) {
36        super("sky", "air", maxSpeed);
37        this.maxHeight = maxHeight;
38    }
39}
40
41public class TransportationCompany {
42    private Vehicle[] vehicles = new Vehicle[50];  // מערך כלֵי התחבורה בחברה
43    private int counter = 0;                       // מספר כלֵי התחבורה שיש בפועל
44
45    public TransportationCompany() { }
46
47    // מוסיפה כלִי תחבורה למערך כלֵי התחבורה של החברה. הנח שיש מקום להוסיף.
48    public void addVehicle(Vehicle v) {
49        this.vehicles[counter] = v;
50        this.counter++;
51    }
52}

משימות

אמשימה אcode

ממשו מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה:

  1. בנייה של עצם מטיפוס חברה של כלֵי תחבורה — TransportationCompany — הנקרא company1.
  2. הוספה של סירה אחת ורכבת אחת לחברה company1.

בחרו לתכונות ערכים כרצונכם.

במשימה בcode

במחלקה TransportationCompany הוגדרה הפעולה:

csharp
1public void Display()
2{
3    for (int i = 0; i < this.counter; i++)
4    {
5        Console.WriteLine((i + 1) + ":" + this.vehicles[i]);
6    }
7}
java
1public void display()
2{
3    for (int i = 0; i < this.counter; i++)
4    {
5        System.out.println((i + 1) + ":" + this.vehicles[i]);
6    }
7}

ממשו פעולות שיאפשרו ביצוע תקין של הפעולה, כך שבעבור כל כלִי תחבורה יודפסו כל התכונות שלו. הגדירו את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים (הכמסה — encapsulation, הורשה — inheritance, פולימורפיזם — polymorphism).

בעבור כל פעולה שאתם מממשים, רִשמו לאיזו מחלקה היא שייכת. אין לשנות את הפעולה הנתונה.

גמשימה גcode

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

שאלה 15מבני נתונים2016 קיץ מועד ב

מימוש מערכת כלי תחבורה

לפניכם חלק מפרויקט העוסק בכלֵי תחבורה, הכולל את המחלקות האלה:

מחלקהתפקיד
Vehicleמייצגת כלי תחבורה
Trainמייצגת רכבת שהיא כלי תחבורה
Boatמייצגת סירה שהיא כלי תחבורה
Airplaneמייצגת מטוס שהוא כלי תחבורה
TransportationCompanyמייצגת חברה שיש לה כלֵי תחבורה מסוגים שונים
1public class Vehicle {
2    private String type;      // מיקום (יבשה / מים / אוויר)
3    private String way;       // סוג הדרך (כביש / מסילה / נהר / ...)
4    private int maxSpeed;     // מהירות מקסימלית
5
6    public Vehicle(String type, String way, int maxSpeed) {
7        this.type = type;
8        this.way = way;
9        this.maxSpeed = maxSpeed;
10    }
11}
12
13public class Train extends Vehicle {
14    private int numOfCarriages;    // מספר הקרונות
15
16    public Train(int maxSpeed, int numOfCarriages) {
17        super("land", "tracks", maxSpeed);
18        this.numOfCarriages = numOfCarriages;
19    }
20    // מגדילה ב-n את מספר הקרונות ברכבת
21    public void incNumOfCarriages(int n) {
22        this.numOfCarriages = this.numOfCarriages + n;
23    }
24}
25
26public class Boat extends Vehicle {
27    public Boat(String way, int maxSpeed) {
28        super("water", way, maxSpeed);
29    }
30}
31
32public class Airplane extends Vehicle {
33    private int maxHeight;    // גובה טיסה מקסימלי
34
35    public Airplane(int maxSpeed, int maxHeight) {
36        super("sky", "air", maxSpeed);
37        this.maxHeight = maxHeight;
38    }
39}
40
41public class TransportationCompany {
42    private Vehicle[] vehicles = new Vehicle[50];  // מערך כלֵי התחבורה בחברה
43    private int counter = 0;                       // מספר כלֵי התחבורה שיש בפועל
44
45    public TransportationCompany() { }
46
47    // מוסיפה כלִי תחבורה למערך כלֵי התחבורה של החברה. הנח שיש מקום להוסיף.
48    public void addVehicle(Vehicle v) {
49        this.vehicles[counter] = v;
50        this.counter++;
51    }
52}

משימות

אמשימה אcode

ממשו מחלקה ראשית Program ובה פעולה ראשית, שתבצע את המשימות האלה:

  1. בנייה של עצם מטיפוס חברה של כלֵי תחבורה — TransportationCompany — הנקרא company1.
  2. הוספה של סירה אחת ורכבת אחת לחברה company1.

בחרו לתכונות ערכים כרצונכם.

במשימה בcode

במחלקה TransportationCompany הוגדרה הפעולה:

csharp
1public void Display()
2{
3    for (int i = 0; i < this.counter; i++)
4    {
5        Console.WriteLine((i + 1) + ":" + this.vehicles[i]);
6    }
7}
java
1public void display()
2{
3    for (int i = 0; i < this.counter; i++)
4    {
5        System.out.println((i + 1) + ":" + this.vehicles[i]);
6    }
7}

ממשו פעולות שיאפשרו ביצוע תקין של הפעולה, כך שבעבור כל כלִי תחבורה יודפסו כל התכונות שלו. הגדירו את הפעולות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים (הכמסה — encapsulation, הורשה — inheritance, פולימורפיזם — polymorphism).

בעבור כל פעולה שאתם מממשים, רִשמו לאיזו מחלקה היא שייכת. אין לשנות את הפעולה הנתונה.

גמשימה גcode

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