Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
3.9 kB
3
Indexable
Never
using System;

// Интерфейс "Конвертер"
interface IConverter
{
    string SourceScale { get; set; }
    string TargetScale { get; set; }

    double Convert(double value);
}

// Интерфейс "Вывод в консоль"
interface IPrintable
{
    void Print();
}

// Класс для конвертации в мили
class KilometersToMilesConverter : IConverter, IPrintable
{
    private string _sourceScale;
    private string _targetScale;

    public string SourceScale
    {
        get { return _sourceScale; }
        set { _sourceScale = value; }
    }

    public string TargetScale
    {
        get { return _targetScale; }
        set { _targetScale = value; }
    }

    public KilometersToMilesConverter(string sourceScale, string targetScale)
    {
        _sourceScale = sourceScale;
        _targetScale = targetScale;
    }

    public double Convert(double value)
    {
        return value * 1.609344;
    }

    public void Print()
    {
        Console.WriteLine($"Исходная шкала: {_sourceScale}, Целевая шкала: {_targetScale}");
    }
}

// Класс для конвертации в версты
class KilometersToVerstsConverter : IConverter, IPrintable
{
    private string _sourceScale;
    private string _targetScale;

    public string SourceScale
    {
        get { return _sourceScale; }
        set { _sourceScale = value; }
    }

    public string TargetScale
    {
        get { return _targetScale; }
        set { _targetScale = value; }
    }

    public KilometersToVerstsConverter(string sourceScale, string targetScale)
    {
        _sourceScale = sourceScale;
        _targetScale = targetScale;
    }

    public double Convert(double value)
    {
        return value * 1.066799997;
    }

    public void Print()
    {
        Console.WriteLine($"Исходная шкала: {_sourceScale}, Целевая шкала: {_targetScale}");
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine("Введите название исходной шкалы для конвертации в мили:");
        string sourceScaleForMiles = Console.ReadLine();

        Console.WriteLine("Введите название целевой шкалы для конвертации в мили:");
        string targetScaleForMiles = Console.ReadLine();

        KilometersToMilesConverter milesConverter = new KilometersToMilesConverter(sourceScaleForMiles, targetScaleForMiles);

        Console.WriteLine("Введите расстояние в километрах:");
        double distanceInKilometers = Convert.ToDouble(Console.ReadLine());
        double distanceInMiles = milesConverter.Convert(distanceInKilometers);
        milesConverter.Print();
        Console.WriteLine($"Расстояние в милях: {distanceInMiles}");

        Console.WriteLine("\nВведите название исходной шкалы для конвертации в версты:");
        string sourceScaleForVersts = Console.ReadLine();

        Console.WriteLine("Введите название целевой шкалы для конвертации в версты:");
        string targetScaleForVersts = Console.ReadLine();

        KilometersToVerstsConverter verstsConverter = new KilometersToVerstsConverter(sourceScaleForVersts, targetScaleForVersts);

        Console.WriteLine("Введите расстояние в километрах:");
        double distanceInKilometersForVersts = Convert.ToDouble(Console.ReadLine());
        double distanceInVersts = verstsConverter.Convert(distanceInKilometersForVersts);
        verstsConverter.Print();
        Console.WriteLine($"Расстояние в верстах: {distanceInVersts}");
    }
}
Leave a Comment