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