Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // Вспомогательный класс Рейс
- class Flight {
- private:
- double ticketPrice; // Цена билета
- int capacity; // Вместимость пассажиров
- public:
- // Инициализация
- void Init(double price, int cap) {
- ticketPrice = price;
- capacity = cap;
- }
- // Вычисление ожидаемого дохода
- double ExpectedIncome() const {
- return ticketPrice * capacity;
- }
- // Вывод информации о рейсе
- void Display() const {
- cout << "Цена билета: " << ticketPrice << ", Вместимость: " << capacity
- << ", Ожидаемый доход: " << ExpectedIncome() << endl;
- }
- };
- // Основной класс Маршрут
- class Route {
- private:
- Flight flights[3]; // Три рейса
- int loadPercent[3]; // Процент наполненности пассажирами
- public:
- // Инициализация маршрута
- void Init(const Flight &f1, const Flight &f2, const Flight &f3, int p1, int p2, int p3) {
- flights[0] = f1;
- flights[1] = f2;
- flights[2] = f3;
- loadPercent[0] = p1;
- loadPercent[1] = p2;
- loadPercent[2] = p3;
- }
- // Вычисление реального дохода от всех рейсов
- double RealIncome() const {
- double totalIncome = 0;
- for (int i = 0; i < 3; i++) {
- totalIncome += flights[i].ExpectedIncome() * loadPercent[i] / 100.0;
- }
- return totalIncome;
- }
- // Нахождение рейса с максимальным ожидаемым доходом
- int MaxExpectedIncomeFlight() const {
- int maxIndex = 0;
- for (int i = 1; i < 3; i++) {
- if (flights[i].ExpectedIncome() > flights[maxIndex].ExpectedIncome()) {
- maxIndex = i;
- }
- }
- return maxIndex;
- }
- // Вывод информации о маршруте
- void Display() const {
- cout << "Информация о рейсах:\n";
- for (int i = 0; i < 3; i++) {
- cout << "Рейс " << i + 1 << " (наполненность " << loadPercent[i] << "%):\n";
- flights[i].Display();
- }
- cout << "Общий реальный доход: " << RealIncome() << endl;
- int maxIndex = MaxExpectedIncomeFlight();
- cout << "Рейс с наибольшим ожидаемым доходом: " << maxIndex + 1 << endl;
- }
- };
- // Пример использования
- int main() {
- // Создание трех рейсов
- Flight f1, f2, f3;
- f1.Init(100.0, 150); // Цена билета 100, вместимость 150
- f2.Init(200.0, 100); // Цена билета 200, вместимость 100
- f3.Init(150.0, 120); // Цена билета 150, вместимость 120
- // Создание маршрута
- Route route;
- route.Init(f1, f2, f3, 80, 50, 90); // Наполненность рейсов: 80%, 50%, 90%
- // Вывод информации о маршруте
- route.Display();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement