Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите проверить правильно ли работает? Не понимаю.

рр сс Ученик (48), на голосовании 6 месяцев назад
1. Реализовать системы электрических источников и приборов,
соединенных между собой через шнуры. В интерфейсах должны быть
предусмотрена возможность получения информации о напряжении и
максимальной мощности, которую поддерживает элемент. Прибор должен
иметь наименование, потребляемую мощность, а источник и провод – списки
подключенных приборов.
Интерфейсы:
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);
}
}
}
}
Голосование за лучший ответ
morrowind Мастер (1378) 7 месяцев назад
using System;
using System.Collections;

namespace ElectricSystem
{
interface IElectricSource : IElectricWire
{
double Voltage { get; }
double MaxPower { get; }
}

interface IElectricAppliance
{
string Name { get; }
double Power { get; }
}

interface IElectricWire
{
ArrayList ConnectedDevices { get; }
void ConnectDevice(IElectricWire device);
void DisconnectDevice(IElectricWire device);
}

class SolarBattery : IElectricSource
{
public double Voltage { get; } = 12;
public double MaxPower { get; } = 100;
public ArrayList ConnectedDevices { get; } = new ArrayList();

public void ConnectDevice(IElectricWire device)
{
ConnectedDevices.Add(device);
}

public void DisconnectDevice(IElectricWire 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(IElectricWire device)
{
ConnectedDevices.Add(device);
}

public void DisconnectDevice(IElectricWire 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(IElectricWire device)
{
ConnectedDevices.Add(device);
}

public void DisconnectDevice(IElectricWire device)
{
ConnectedDevices.Remove(device);
}
}

class Program
{
static void Main(string[] args)
{
SolarBattery solarBattery = new SolarBattery();
Kettle kettle = new Kettle();
ElectricPowerStrip powerStrip = new ElectricPowerStrip();

solarBattery.ConnectDevice(powerStrip);
powerStrip.ConnectDevice(kettle);

Console.WriteLine("Connected devices to solar battery:");
foreach (IElectricWire device in solarBattery.ConnectedDevices)
{
Console.WriteLine(device.GetType().Name);
}
}
}
}
GGG Просветленный (36141) 7 месяцев назад
Ваш код выглядит правильно с точки зрения синтаксиса и структуры. Он соответствует вашему описанию задачи. Ваш код создает систему, в которой электрические источники (в данном случае, солнечная батарея) могут подключать к себе электрические приборы (в данном случае, чайник).

Однако, стоит отметить, что в вашем коде отсутствуют некоторые классы, которые вы упомянули в описании задачи (такие как DieselGenerator, NuclearPowerPlant, Lathe, Refrigerator, ElectricPowerStrip, HighLine, StepDownTransformer). Если вы планируете использовать эти классы, вам нужно будет их реализовать.

Также, ваш код в текущем виде не проверяет, не превышает ли мощность подключаемого прибора максимальную мощность источника. Это может быть важным аспектом для реализации, если вы хотите симулировать реальную систему электроснабжения.
Похожие вопросы