Предмет: Информатика, автор: apelsinn00

Нужно создать класс на С++
Commutator: Производитель. Количество портов. Скорость порта. Скорость коммутационной матрицы. Цена.
Создать массив объектов. Вывести:
(Чтобы можно было вручную вписать эти 5 параметров)
а) список коммутаторов, имеющих максимальное количество портов.
б) список коммутаторов, имеющих минимальную цену.
30 баллов

Ответы

Автор ответа: vokerenjoyer
1

Вот пример класса Commutator и программы, которая создает массив объектов этого класса, выводит список коммутаторов, имеющих максимальное количество портов, и список коммутаторов, имеющих минимальную цену:

#include <iostream>

#include <string>

#include <vector>

// Класс "Commutator"

class Commutator

{

public:

   // Конструктор

   Commutator(std::string manufacturer, int portCount, int portSpeed, int matrixSpeed, int price)

       : manufacturer(manufacturer), portCount(portCount), portSpeed(portSpeed), matrixSpeed(matrixSpeed), price(price)

   {

   }

   // Методы доступа к членам данных класса

   std::string getManufacturer() const { return manufacturer; }

   int getPortCount() const { return portCount; }

   int getPortSpeed() const { return portSpeed; }

   int getMatrixSpeed() const { return matrixSpeed; }

   int getPrice() const { return price; }

private:

   std::string manufacturer;  // Производитель

   int portCount;             // Количество портов

   int portSpeed;             // Скорость порта

   int matrixSpeed;           // Скорость коммутационной матрицы

   int price;                 // Цена

};

int main()

{

   // Создаем массив объектов класса "Commutator"

   std::vector<Commutator> commutators;

   commutators.push_back(Commutator("Cisco", 24, 1000, 10000, 500));

   commutators.push_back(Commutator("HP", 48, 1000, 20000, 750));

   commutators.push_back(Commutator("D-Link", 16, 100, 1000, 300));

   commutators.push_back(Commutator("TP-Link", 8, 10, 100, 200));

   // Поиск коммутаторов, имеющих максимальное количество портов

   int maxPortCount = 0;

   for (const auto& commutator : commutators)

   {

       if (commutator.getPortCount() > maxPortCount)

           maxPortCount = commutator.getPortCount();

   }

   std::cout << "Список коммутаторов, имеющих максимальное количество портов (" << maxPortCount << "):" << std::endl;

   for (const auto& commutator : commutators)

   {

       if (commutator.getPortCount() == maxPortCount)

           std::cout << commutator.getManufacturer() << std::endl;

   }

   // Поиск коммутаторов, имеющих минимальную цену

   int minPrice = commutators[0].getPrice();

   for (const auto& commutator : commutators)

   {

       if (commutator.getPrice() < minPrice)

           minPrice = commutator.getPrice();

   }

   std::cout << "Список коммутаторов, имеющих минимальную цену (" << minPrice << "):" << std::endl;

   for (const auto& commutator : commutators)

   {

       if (commutator.getPrice() == minPrice)

           std::cout << commutator.getManufacturer() << std::endl;

   }

   return 0;

}

это обычный пример

вот пример класса с вводом с клавиатуры:

#include <iostream>

#include <string>

#include <vector>

// Класс "Commutator"

class Commutator

{

public:

   // Конструктор

   Commutator(std::string manufacturer, int portCount, int portSpeed, int matrixSpeed, int price)

       : manufacturer(manufacturer), portCount(portCount), portSpeed(portSpeed), matrixSpeed(matrixSpeed), price(price)

   {

   }

   // Методы доступа к членам данных класса

   std::string getManufacturer() const { return manufacturer; }

   int getPortCount() const { return portCount; }

   int getPortSpeed() const { return portSpeed; }

   int getMatrixSpeed() const { return matrixSpeed; }

   int getPrice() const { return price; }

private:

   std::string manufacturer;  // Производитель

   int portCount;             // Количество портов

   int portSpeed;             // Скорость порта

   int matrixSpeed;           // Скорость коммутационной матрицы

   int price;                 // Цена

};

int main()

{

   // Создаем массив объектов класса "Commutator"

   std::vector<Commutator> commutators;

   // Вводим 5 параметров для каждого объекта

   std::string manufacturer;

   int portCount, portSpeed, matrixSpeed, price;

   for (int i = 0; i < 3; ++i)

   {

       std::cout << "Введите параметры для коммутатора " << i + 1 << ":" << std::endl;

       std::cout << "Производитель: ";

       std::cin >> manufacturer;

       std::cout << "Количество портов: ";

       std::cin >> portCount;

       std::cout << "Скорость порта: ";

       std::cin >> portSpeed;

       std::cout << "Скорость коммутационной матрицы: ";

       std::cin >> matrixSpeed;

       std::cout << "Цена: ";

       std::cin >> price;

       commutators.push_back(Commutator(manufacturer, portCount, portSpeed, matrixSpeed, price));

}

// Поиск коммутаторов, имеющих максимальное количество портов

int maxPortCount = 0;

for (const auto& commutator : commutators)

{

   if (commutator.getPortCount() > maxPortCount)

       maxPortCount = commutator.getPortCount();

}

std::cout << "Список коммутаторов, имеющих максимальное количество портов (" << maxPortCount << "):" << std::endl;

for (const auto& commutator : commutators)

{

   if (commutator.getPortCount() == maxPortCount)

       std::cout << commutator.getManufacturer() << std::endl;

}

// Поиск коммутаторов, имеющих минимальную цену

int minPrice = commutators[0].getPrice();

for (const auto& commutator : commutators)

{

   if (commutator.getPrice() < minPrice)

       minPrice = commutator.getPrice();

}

std::cout << "Список коммутаторов, имеющих минимальную цену (" << minPrice << "):" << std::endl;

for (const auto& commutator : commutators)

{

   if (commutator.getPrice() == minPrice)

       std::cout << commutator.getManufacturer() << std::endl;

}

return 0;

}

В этом коде используется цикл for для ввода параметров коммутаторов с клавиатуры

Похожие вопросы
Предмет: История, автор: vasssjjjjj