コード例 #1
0
        static void Main()
        {
            string jsonString = File.ReadAllText("config.json");
            InternalCombustionEngineConfig config = JsonSerializer.Deserialize <InternalCombustionEngineConfig>(jsonString);
            InternalCombustionEngine       engine = new InternalCombustionEngine(config);

            Console.WriteLine("Введите значение температуры окружающей среды:");
            double external_T;

            try
            {
                external_T = Convert.ToDouble(Console.ReadLine());
            }
            catch (Exception e)
            {
                Console.WriteLine("Неверный формат температуры окружающей среды");
                return;
            }
            try
            {
                double time = engine.Start(external_T, 10000);
                Console.WriteLine($"Время перегрева - {time} секунд");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return;
            }
        }
コード例 #2
0
        Base.Temperature GetHeatingTemperature(InternalCombustionEngine engine)
        {
            double v  = engine.CrankshaftSpeed;
            double m  = GetTorque(v);
            double hm = parameters.HeatingSpeedOfTorqueCoeff;
            double hv = parameters.HeatingSpeedOfCrankshaftSpeedCoeff;

            engine.CrankshaftSpeed += modelTimeStep.Seconds * (m / parameters.MomentOfInertia);

            return(new Base.Temperature(modelTimeStep.Seconds * (m * hm + v * v * hv)));
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: helen612/OOP
    public override bool Equals(object obj)
    {
        if (obj == null)
        {
            return(false);
        }
        InternalCombustionEngine m = obj as InternalCombustionEngine; // возвращает null если объект нельзя привести к типу

        if (m as InternalCombustionEngine == null)
        {
            return(false);
        }
        return(base.Equals(obj) && m.TypeOfFuelUsed == this.TypeOfFuelUsed && m.MethodOfProcessingTheWorkingMixture == this.MethodOfProcessingTheWorkingMixture && m.Volume == this.Volume);
    }
コード例 #4
0
        static void Main()
        {
            Person[] passagers =
            {
                new Person()
                {
                    FirstName = "Sergei",
                    LastName  = "Bubka",
                    Age       = null
                },
                new Person()
                {
                    FirstName = "Kolio",
                    LastName  = "Paramov",
                    Age       = 55
                }
            };

            Person driver = new Person()
            {
                FirstName = "Josef",
                LastName  = "Prust",
                Age       = 34
            };

            var carEngine = new InternalCombustionEngine()
            {
                Model      = "Ferarri",
                FuelType   = "Diesel",
                HorsePower = 340
            };

            Car car = new Car()
            {
                Brand             = "Mazda",
                Doors             = 5,
                IsInMotion        = true,
                RegistrationPlate = new List <char>("H2354AS4"),
                Driver            = driver,
                ManifacturingDate = new DateTime(1990, 09, 06),
                Passagers         = passagers.ToList(),
                Engine            = carEngine
            };

            car.SomeShit.Add(driver);

            Mapper mapper       = new Mapper();
            Plane  makeMeAPlane = mapper.Map <Plane>(car);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: helen612/OOP
    static void Main(string[] args)
    {
        InternalCombustionEngine Engine1  = new InternalCombustionEngine("Двигатель внутреннего сгорания", 25, 1999, "Бензин", "Поршневой двигатель", 1500);
        Diesel                   Engine2  = new Diesel("Дизель", 30, 1995, "Грузовик", "Четырёхтактный двигатель", 1700);
        TurboJetEngine           Engine3  = new TurboJetEngine("Турбореактивный двигатель", 30, 2011, 40, 35, 25);
        TurboJetEngine           Engine4  = new TurboJetEngine("Турбореактивный двигатель", 32, 2014, 30, 21, 13);
        Diesel                   Engine5  = new Diesel("Дизель", 30, 1996, "Легковой", "Трехтактный двигатель", 1700);
        InternalCombustionEngine Engine6  = new InternalCombustionEngine("Двигатель внутреннего сгорания", 24, 1999, "Бензин", "Поршневой двигатель", 1500);
        TurboJetEngine           Engine7  = new TurboJetEngine("Турбореактивный двигатель", 32, 2014, 30, 21, 13);
        TurboJetEngine           Engine8  = new TurboJetEngine("Турбореактивный двигатель", 30, 2005, 28, 35, 25);
        Diesel                   Engine9  = new Diesel("Дизель", 30, 1995, "Мотоцикл", "Четырёхтактный двигатель", 1700);
        Diesel                   Engine10 = new Diesel("Дизель", 30, 1995, "Автобус", "Четырёхтактный двигатель", 1700);
        Diesel                   Engine11 = new Diesel("Дизель", 30, 1995, "Автобус", "Четырёхтактный двигатель", 1700);

        Engine[] arr = new Engine[100];
        arr[0]  = Engine1;
        arr[1]  = Engine2;
        arr[2]  = Engine3;
        arr[3]  = Engine4;
        arr[4]  = Engine5;
        arr[5]  = Engine6;
        arr[6]  = Engine7;
        arr[7]  = Engine8;
        arr[8]  = Engine9;
        arr[9]  = Engine10;
        arr[10] = Engine11;
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(arr[i]);
        }
        Diesel Naiti = new Diesel("Дизель", 30, 1995, "Автобус", "Четырёхтактный двигатель", 1700);

        for (int i = 0; i < 10; i++)
        {
            if (arr[i].Equals(Naiti) == true)
            {
                Console.WriteLine("");
                Console.WriteLine("");
                Console.WriteLine("найденный объект");
                Console.WriteLine(arr[i]);
            }
        }

        Console.ReadKey();
    }
コード例 #6
0
        Base.Temperature GetCoolingTemperature(InternalCombustionEngine engine)
        {
            double c = parameters.CoolingSpeedOfTemperaturesCoeff;

            return(new Base.Temperature(-modelTimeStep.Seconds * c * (ambientTemperature.Celsius - engine.Temperature.Celsius)));
        }
コード例 #7
0
        //Иправить двигатели
        public ProcessResult EditModification(Modification mod, int ice, int ee)
        {
            Modification m = GetModification(mod.Id);

            if (m == null)
            {
                return(ProcessResults.NoSuchModification);
            }
            if (ice == 0)
            {
                m.InternalCombustionEngineId = null;
                m.InternalCombustionEngine   = null;
            }
            else if (ice == 1)
            {
                InternalCombustionEngine i = mod.InternalCombustionEngine;
                if (i.Location <= 0)
                {
                    i.Location = null;
                }
                if (i.FuelTypeId <= 0)
                {
                    i.FuelTypeId = null;
                }
                if (i.ValvesArrangementId <= 0)
                {
                    i.ValvesArrangementId = null;
                }
                if (m.InternalCombustionEngineId == null)
                {
                    i = Data.InternalCombustionEngines.Add(i);
                    Data.SaveChanges();
                    m.InternalCombustionEngineId = i.Id;
                }
                else
                {
                    m.InternalCombustionEngine = i;
                }
            }
            else
            {
                m.InternalCombustionEngineId = mod.InternalCombustionEngineId;
            }
            if (ee == 0)
            {
                m.ElectricEngine   = null;
                m.ElectricEngineId = null;
            }
            else if (ee == 1)
            {
                ElectricEngine e = mod.ElectricEngine;
                if (e.BatteryTypeId <= 0)
                {
                    e.BatteryTypeId = null;
                }
                if (m.ElectricEngineId == null)
                {
                    e = Data.ElectricEngines.Add(e);
                    Data.SaveChanges();
                    m.ElectricEngineId = e.Id;
                }
                else
                {
                    m.ElectricEngine = e;
                }
            }
            else
            {
                m.ElectricEngineId = mod.ElectricEngineId;
            }
            if (mod.TransmissionTypeId <= 0)
            {
                mod.TransmissionTypeId = null;
            }
            if (mod.Drive <= 0)
            {
                mod.Drive = null;
            }
            if (mod.TireCarcassTypeId <= 0)
            {
                mod.TireCarcassTypeId = null;
            }
            m.BackTrackWidth       = mod.BackTrackWidth;
            m.CargoVolume          = mod.CargoVolume;
            m.CurbWeight           = mod.CurbWeight;
            m.Drive                = mod.Drive;
            m.FrontTrackWidth      = mod.FrontTrackWidth;
            m.Height               = mod.Height;
            m.Length               = mod.Length;
            m.MaxCargoVolume       = mod.MaxCargoVolume;
            m.MaxSpeed             = mod.MaxSpeed;
            m.Name                 = mod.Name;
            m.NumberOfDrivenWheels = mod.NumberOfDrivenWheels;
            m.NumberOfSeats        = mod.NumberOfSeats;
            m.NumberOfWheels       = mod.NumberOfWheels;
            m.TireCarcassTypeId    = mod.TireCarcassTypeId;
            m.TireMountingDiameter = mod.TireMountingDiameter;
            m.TireProfileHeight    = mod.TireProfileHeight;
            m.TireProfileWidth     = mod.TireProfileWidth;
            m.TotalWeight          = mod.TotalWeight;
            m.TransmissionStages   = mod.TransmissionStages;
            m.TransmissionTypeId   = mod.TransmissionTypeId;
            m.Velocity             = mod.Velocity;
            m.Wheelbase            = mod.Wheelbase;
            m.Width                = mod.Width;
            Data.SaveChanges();
            return(ProcessResults.ModificationChanged);
        }
コード例 #8
0
        public ProcessResult AddModification(Modification mod, int ice, int ee)
        {
            CarModel model = GetCarModel(mod.ModelId);

            if (model == null)
            {
                return(ProcessResults.NoSuchModel);
            }
            if (ice == 0)
            {
                mod.InternalCombustionEngineId = null;
                mod.InternalCombustionEngine   = null;
            }
            else if (ice == 1)
            {
                InternalCombustionEngine i = mod.InternalCombustionEngine;
                if (i.Location <= 0)
                {
                    i.Location = null;
                }
                if (i.FuelTypeId <= 0)
                {
                    i.FuelTypeId = null;
                }
                if (i.ValvesArrangementId <= 0)
                {
                    i.ValvesArrangementId = null;
                }
                i = Data.InternalCombustionEngines.Add(i);
                Data.SaveChanges();
                mod.InternalCombustionEngineId = i.Id;
            }
            if (ee == 0)
            {
                mod.ElectricEngine   = null;
                mod.ElectricEngineId = null;
            }
            else if (ee == 1)
            {
                ElectricEngine e = mod.ElectricEngine;
                if (e.BatteryTypeId <= 0)
                {
                    e.BatteryTypeId = null;
                }
                e = Data.ElectricEngines.Add(e);
                Data.SaveChanges();
                mod.ElectricEngineId = e.Id;
            }
            if (mod.TransmissionTypeId <= 0)
            {
                mod.TransmissionTypeId = null;
            }
            if (mod.Drive <= 0)
            {
                mod.Drive = null;
            }
            if (mod.TireCarcassTypeId <= 0)
            {
                mod.TireCarcassTypeId = null;
            }
            mod = Data.Modifications.Add(mod);
            Data.SaveChanges();
            ProcessResult result = ProcessResults.ModificationAdded;

            result.AffectedObjectId = mod.Id;
            return(result);
        }
コード例 #9
0
        static void Main(string[] args)
        {
            Dictionary <int, string> enginesID = new Dictionary <int, string> // словарь, содержащий список всех имеющихся типов двигателей
            {
                { 1, "1. ДСВ" }
            };
            Dictionary <int, string> testsID = new Dictionary <int, string> // словарь, содержащий список всех имеющихся типов тестовых стендов
            {
                { 1, "1. Рассчёт времени перегрева двигателя" }
            };

            double       tAmbient;         // температура окружающей среды в градусах °C
            int          selectedEngineID; // номер выбранного двигателя
            int          selectedTestID;   // номер выбранного теста
            IEngine      engine    = null;
            ITestFactory testStand = null;

            Console.Write("Введите температуру окружающей среды в градусах °C: ");

            #region// проверка на корректность ввода температуры
            while (true)
            {
                try
                {
                    tAmbient = Convert.ToDouble(Console.ReadLine());
                    break;
                }
                catch (FormatException)
                {
                    Console.Write("Введено некорректное значение! Введите число: ");
                }
            }
            #endregion

            #region//выбор типа двигателя, проверка на корректность ввода и наличия двигателя в словаре
            Console.WriteLine("\nВыберите тип двигателя, для проведения тестирования:");

            foreach (var eng in enginesID)
            {
                Console.WriteLine(eng.Value);
            }

            Console.Write("Введите число: ");

            // проверка на корректность ввода и наличие двигателя в словаре
            while (true)
            {
                try
                {
                    selectedEngineID = Convert.ToInt32(Console.ReadLine());

                    foreach (int ind in enginesID.Keys)
                    {
                        if (selectedEngineID == ind)
                        {
                            switch (selectedEngineID)
                            {
                            case 1:
                                engine = new InternalCombustionEngine(tAmbient);
                                break;
                            }
                        }
                        else
                        {
                            throw new Exception("Такого двигателя не существует!");
                        }
                    }
                    break;
                }
                catch (FormatException)
                {
                    Console.Write("Введено некорректное значение! Введите число целое: ");
                }
                catch (Exception)
                {
                    Console.Write("Такого двигателя не существует! Попробуйте снова: ");
                }
            }
            #endregion

            #region//выбор типа тестового стенда, проверка на корректность ввода и наличия тестового стенда в словаре
            Console.WriteLine("\nВыберите тип теста:");

            foreach (var eng in testsID)
            {
                Console.WriteLine(eng.Value);
            }

            Console.Write("Введите число: ");

            // проверка на корректность ввода и наличие теста в словаре
            while (true)
            {
                try
                {
                    selectedTestID = Convert.ToInt32(Console.ReadLine());

                    foreach (int ind in testsID.Keys)
                    {
                        if (selectedTestID == ind)
                        {
                            switch (selectedTestID)
                            {
                            case 1:
                                testStand = new OverheatTimeTest(engine);
                                break;
                            }
                        }
                        else
                        {
                            throw new Exception("Такого теста не существует!");
                        }
                    }
                    break;
                }
                catch (FormatException)
                {
                    Console.Write("Введено некорректное значение! Введите число целое: ");
                }
                catch (Exception)
                {
                    Console.Write("Такого теста не существует! Попробуйте снова: ");
                }
            }
            #endregion

            testStand.StartSimulation();
            testStand.Controller();

            Console.ReadKey();
        }