Тема: Розрахунок палива для всіх транспортів
Привіт я роблю завдання в польський універ але що правда з цим завдання виникли складнощі, вже декілька днів сиджу і не можу його зробити. Я вже писав і на польські форуми але що правда не сильно вони мені допомогли тільки підкинули ідею що це можна якось зробити за допомогою векторів але я не зміг знайти інформації як. Тому буду вдячний за будь які ідеї або ссилки на матеріали де можна про це почитати і зрозуміти куди мені рухатись далі
Завдання виглядає так:
Створіть ієрархію класів, що описують міський транспорт, використовуючи концепцію успадкування.
Виразіть у цій ієрархії наступне:
1. Всі транспортні засоби громадського транспорту є транспортними засобами,
2.Міський транспорт використовує трамваї та автобуси,
3. Транспортні засоби зберігаються у трамвайних та автобусних депо відповідно,
4. Кожен автомобіль знає свою максимальну швидкість,
5.Кожен транспортний засіб громадського транспорту знає свій номер,
6.Кожен транспортний засіб громадського транспорту знає своє депо,
7.Кожен трамвай - це набір від 1 до 3 вагонів (і знає, зі скількох вагонів він складається),
8.Кожен автобус знає, скільки пального було спожито за поточний місяць,
9. Кожне депо знає свою назву,
10. Кожне депо знає, які транспортні засоби до нього належать,
11. Кожне депо має назву.
Кожен транспортний засіб повинен мати можливість надати свій опис у вигляді напису. Опис повинен містити всю інформацію, яку знає транспортний засіб (наприклад, номер або максимальна швидкість). Опис депо — це назва депо, його тип(трамвайне депо або автобусне) та описи окремих транспортних засобів(трамваїв і автобусів). Автобусне депо описує скільки палива спожили всі автобуси в цьому місяці. Трамвайне депо описує загальну кількість вагонів із всіх трамваїв.
Напишіть програму, яка створить кілька об’єктів, що представляють усі транспортні засоби та два депо (автобусне і трамвайне депо), присвойте транспортні засоби до депо, а потім напишіть опис обох депо.
По суті мені задається що в цьому коді мені вдалося все реалізувати крім підрахунку палива в депо і загальної кількості вагонів
#include <iostream>
#include <string>
using namespace std;
class Public_Transport {
public:
void MaxSpeed(int speed) {
cout << "Максимальна швидкість: " << speed << " км/г" << endl;
}
};
class Autobus : Public_Transport {
public:
void Autobus_1_typu(int numer_transportu, int paliwo) {
cout << "Автобус 1 типу " << endl;
cout << "Номер транспорту: " << numer_transportu << endl;
MaxSpeed(171); // Цей тип транспорту має сталу швидкість
cout << "Автобус використав: " << paliwo << " л. палива в цьому місяці" << endl;
}
void Autobus_2_typu(int numer_transportu, int paliwo) {
cout << "Автобус 2 типу " << endl;
cout << "Номер транспорту: " << numer_transportu << endl;
MaxSpeed(190); // Цей тип транспорту має сталу швидкість
cout << "Автобус використав: " << paliwo << " л. палива в цьому місяці" << endl;
}
void Autobus_3_typu(int numer_transportu, int paliwo) {
cout << "Автобус 3 типу " << endl;
cout << "Номер транспорту: " << numer_transportu << endl;
MaxSpeed(230); // Цей тип транспорту має сталу швидкість
cout << "Автобус використав: " << paliwo << " л. палива в цьому місяці" << endl;
}
};
class DepotWoronicza : Autobus {
public:
void Woronicza_AutobusTypu1(int numer, int paliwo) {
Autobus_1_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Вороніча \n" << endl;
}
void Woronicza_AutobusTypu2(int numer, int paliwo) {
Autobus_2_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Вороніча \n" << endl;
}
void Woronicza_AutobusTypu3(int numer, int paliwo) {
Autobus_3_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Вороніча \n" << endl;
}
};
class DepotStalowa : Autobus {
public:
void Stalowa_AutobusTypu1(int numer, int paliwo) {
Autobus_1_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Сталева \n" << endl;
}
void Stalowa_AutobusTypu2(int numer, int paliwo) {
Autobus_2_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Сталева \n" << endl;
}
void Stalowa_AutobusTypu3(int numer, int paliwo) {
Autobus_3_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Сталева \n" << endl;
}
};
class DepotRedutowa : Autobus {
public:
void Redutowa_AutobusTypu1(int numer, int paliwo) {
Autobus_1_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Редутова \n" << endl;
}
void Redutowa_AutobusTypu2(int numer, int paliwo) {
Autobus_2_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Редутова \n" << endl;
}
void Redutowa_AutobusTypu3(int numer, int paliwo) {
Autobus_3_typu(numer, paliwo); // В цьому місці вписуємо номер транспорту і скільки використав палива
cout << "Депо цього транспорту є: Редутова \n" << endl;
}
};
class Tramwaj : Public_Transport {
public:
void Tramwaj_1_typu(int numer_pojazdu, int wagony) {
cout << "Трамвай 1 типу: " << endl;
cout << "Номер транспорту: " << numer_pojazdu << endl;
MaxSpeed(120); // Цей тип транспорту має сталу швидкість
cout << "Трамвай має: " << wagony << " вагонів" << endl;
}
void Tramwaj_2_typu(int numer_pojazdu, int wagony) {
cout << "Трамвай 2 типу: " << endl;
cout << "Номер транспорту: " << numer_pojazdu << endl;
MaxSpeed(150); // Цей тип транспорту має сталу швидкість
cout << "Трамвай має: " << wagony << " вагонів" << endl;
}
void Tramwaj_3_typu(int numer_pojazdu, int wagony) {
cout << "Трамвай 3 типу: " << endl;
cout << "Номер транспорту: " << numer_pojazdu << endl;
MaxSpeed(180); // Цей тип транспорту має сталу швидкість
cout << "Трамвай має: " << wagony << " вагонів" << endl;
}
};
class DepotMokotow : Tramwaj {
public:
void Mokotow_TramwajTypu1(int numer, int wagony) {
Tramwaj_1_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Депо цього транспорту є: Мокотув \n" << endl;
}
void Mokotow_TramwajTypu2(int numer, int wagony) {
Tramwaj_2_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Депо цього транспорту є: Мокотув \n" << endl;
}
void Mokotow_TramwajTypu3(int numer, int wagony) {
Tramwaj_3_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Депо цього транспорту є: Мокотув \n" << endl;
}
};
class DepotZoliborz : Tramwaj {
public:
void Zoliborz_TramwajTypu1(int numer, int wagony) {
Tramwaj_1_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Депо цього транспорту є: Жолібож \n" << endl;
}
void Zoliborz_TramwajTypu2(int numer, int wagony) {
Tramwaj_2_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Zajezdnia tego pojazdu jest: Жолібож \n" << endl;
}
void Zoliborz_TramwajTypu3(int numer, int wagony) {
Tramwaj_3_typu(numer, wagony); // В цьому місці вписуємо номер транспорту і кількість вагонів
cout << "Zajezdnia tego pojazdu jest: Жолібож \n" << endl;
}
};
int main()
{
DepotWoronicza bus1;
DepotStalowa bus2;
DepotRedutowa bus3;
DepotMokotow tram1;
DepotZoliborz tram2;
bus1.Woronicza_AutobusTypu1(1, 33);
bus1.Woronicza_AutobusTypu2(2, 25);
bus1.Woronicza_AutobusTypu3(3, 54);
bus2.Stalowa_AutobusTypu1(4, 34);
bus2.Stalowa_AutobusTypu2(5, 67);
bus2.Stalowa_AutobusTypu3(6, 37);
bus3.Redutowa_AutobusTypu1(7, 56);
bus3.Redutowa_AutobusTypu2(8, 67);
bus3.Redutowa_AutobusTypu3(9, 76);
tram1.Mokotow_TramwajTypu1(10, 3);
tram1.Mokotow_TramwajTypu2(11, 2);
tram1.Mokotow_TramwajTypu2(12, 1);
tram2.Zoliborz_TramwajTypu1(10, 3);
tram2.Zoliborz_TramwajTypu2(11, 2);
tram2.Zoliborz_TramwajTypu3(12, 1);
}
Сорі якщо що за помилки якщо є так як я це все мусив перекладати з польської