GGG
Просветленный
(36141)
7 месяцев назад
Ваш код выглядит правильно с точки зрения синтаксиса и структуры. Он соответствует вашему описанию задачи. Ваш код создает систему, в которой электрические источники (в данном случае, солнечная батарея) могут подключать к себе электрические приборы (в данном случае, чайник).
Однако, стоит отметить, что в вашем коде отсутствуют некоторые классы, которые вы упомянули в описании задачи (такие как DieselGenerator, NuclearPowerPlant, Lathe, Refrigerator, ElectricPowerStrip, HighLine, StepDownTransformer). Если вы планируете использовать эти классы, вам нужно будет их реализовать.
Также, ваш код в текущем виде не проверяет, не превышает ли мощность подключаемого прибора максимальную мощность источника. Это может быть важным аспектом для реализации, если вы хотите симулировать реальную систему электроснабжения.
соединенных между собой через шнуры. В интерфейсах должны быть
предусмотрена возможность получения информации о напряжении и
максимальной мощности, которую поддерживает элемент. Прибор должен
иметь наименование, потребляемую мощность, а источник и провод – списки
подключенных приборов.
Интерфейсы:
IElectricSource (источник тока)
IElectricAppliance (электрический прибор)
IElectricWire (электрический шнур)
Классы:
SolarBattery (солнечная батарея)
DieselGenerator (дизельный генератор)
NuclearPowerPlant (атомная электростанция)
Kettle (чайник)
Lathe (токарный станок)
Refrigerator (холодильник)
ElectricPowerStrip (электрический удлинитель)
HighLine (высоковольтная линия)
StepDownTransformer (понижающий трансформатор, должен
реализовывать интерфейсы и потребителя и источника тока)
Сам код:
using System;
using System.Collections;
namespace ElectricSystem
{
interface IElectricSource
{
double Voltage { get; }
double MaxPower { get; }
ArrayList ConnectedDevices { get; }
void ConnectDevice(IElectricAppliance device);
void DisconnectDevice(IElectricAppliance device);
}
interface IElectricAppliance
{
string Name { get; }
double Power { get; }
}
interface IElectricWire
{
ArrayList ConnectedDevices { get; }
void ConnectDevice(IElectricAppliance device);
void DisconnectDevice(IElectricAppliance device);
}
class SolarBattery : IElectricSource
{
public double Voltage { get; } = 12;
public double MaxPower { get; } = 100;
public ArrayList ConnectedDevices { get; } = new ArrayList();
public void ConnectDevice(IElectricAppliance device)
{
ConnectedDevices.Add(device);
}
public void DisconnectDevice(IElectricAppliance device)
{
ConnectedDevices.Remove(device);
}
}
class DieselGenerator : IElectricSource
{
public double Voltage { get; } = 220;
public double MaxPower { get; } = 500;
public ArrayList ConnectedDevices { get; } = new ArrayList();
public void ConnectDevice(IElectricAppliance device)
{
ConnectedDevices.Add(device);
}
public void DisconnectDevice(IElectricAppliance device)
{
ConnectedDevices.Remove(device);
}
}
class Kettle : IElectricAppliance
{
public string Name { get; } = "Kettle";
public double Power { get; } = 1500;
}
class ElectricPowerStrip : IElectricWire
{
public ArrayList ConnectedDevices { get; } = new ArrayList();
public void ConnectDevice(IElectricAppliance device)
{
ConnectedDevices.Add(device);
}
public void DisconnectDevice(IElectricAppliance device)
{
ConnectedDevices.Remove(device);
}
}
class Program
{
static void Main(string[] args)
{
SolarBattery solarBattery = new SolarBattery();
Kettle kettle = new Kettle();
solarBattery.ConnectDevice(kettle);
Console.WriteLine("Connected devices to solar battery:");
foreach (IElectricAppliance device in solarBattery.ConnectedDevices)
{
Console.WriteLine(device.Name);
}
}
}
}