Esempio n. 1
0
 private void SetTrafficLightForm_Load(object sender, EventArgs e)
 {
     greenLightNumericUpDown.Minimum = ConstrainsHolder.getConstrainsHolder().MINGREENLIGHTTIME;
     greenLightNumericUpDown.Value   = greenLightNumericUpDown.Minimum;
     greenLightNumericUpDown.Maximum = ConstrainsHolder.getConstrainsHolder().MAXGREENLIGHTTIME;
     redLightNumericUpDown.Minimum   = ConstrainsHolder.getConstrainsHolder().MINREDLIGHTTIME;
     redLightNumericUpDown.Value     = redLightNumericUpDown.Minimum;
     redLightNumericUpDown.Maximum   = ConstrainsHolder.getConstrainsHolder().MAXREDLIGHTTIME;
 }
Esempio n. 2
0
        public override double getSpeed()
        {
            double randomSpeed = distribution.getRandomNumber();

            if (randomSpeed < ConstrainsHolder.getConstrainsHolder().MINSPEED)
            {
                randomSpeed = ConstrainsHolder.getConstrainsHolder().MINSPEED;
            }
            else if (randomSpeed > ConstrainsHolder.getConstrainsHolder().MAXSPEED)
            {
                randomSpeed = ConstrainsHolder.getConstrainsHolder().MAXSPEED;
            }
            return(randomSpeed);
        }
Esempio n. 3
0
        public override double getTime()
        {
            double randomTime = distribution.getRandomNumber();

            if (randomTime < ConstrainsHolder.getConstrainsHolder().MINTIME)
            {
                randomTime = ConstrainsHolder.getConstrainsHolder().MINTIME;
            }
            else if (randomTime > ConstrainsHolder.getConstrainsHolder().MAXTIME)
            {
                randomTime = ConstrainsHolder.getConstrainsHolder().MAXTIME;
            }
            return(randomTime);
        }
Esempio n. 4
0
        private bool checkSpeedParamsForExceptions()
        {
            bool   result = true;
            int    outer  = 5;
            double outerD = 1.5;

            if (chooseSpeedTypeComboBox.SelectedIndex == 0)
            {
                if (!Int32.TryParse(speedTextBox.Text, out outer))
                {
                    MessageBox.Show("В скорости появления машин нужно ввести целое числовое значение");
                    result = false;
                }
                else if (Int32.Parse(speedTextBox.Text) > ConstrainsHolder.getConstrainsHolder().MAXSPEED ||
                         Int32.Parse(speedTextBox.Text) < ConstrainsHolder.getConstrainsHolder().MINSPEED)
                {
                    result = false;
                    MessageBox.Show("При данном типе дороги скорость должна быть от " + ConstrainsHolder.getConstrainsHolder().MINSPEED
                                    + " до " + ConstrainsHolder.getConstrainsHolder().MAXSPEED);
                }
            }
            else if (chooseSpeedTypeComboBox.SelectedIndex == 1)
            {
                if (chooseSpeedDistributionLawComboBox.SelectedIndex == 0)
                {
                    if (!Double.TryParse(speedsFirstParTextBox.Text, out outerD))
                    {
                        result = false;
                        MessageBox.Show("Математическое ожидание для нормального распределения скоростей было задано неверно");
                    }
                    else if (!Double.TryParse(speedsSecondParTextBox.Text, out outerD))
                    {
                        result = false;
                        MessageBox.Show("Дисперсия для нормального распределения скоростей была задана неверно");
                    }
                }
                else if (chooseSpeedDistributionLawComboBox.SelectedIndex == 1)
                {
                    if (!Double.TryParse(speedsFirstParTextBox.Text, out outerD))
                    {
                        result = false;
                        MessageBox.Show("Входная строка для параметра показательного распределения скоростей имела неверный формат");
                    }
                    else if (Double.Parse(speedsFirstParTextBox.Text) > ConstrainsHolder.getConstrainsHolder().MAXEXPPAROFSPEED ||
                             Double.Parse(speedsFirstParTextBox.Text) < ConstrainsHolder.getConstrainsHolder().MINEXPPAROFSPEED)
                    {
                        result = false;
                        MessageBox.Show("Параметр показательного распределения скоростей должен находиться в интервале [0.01;0.04]");
                    }
                }
                else if (chooseSpeedDistributionLawComboBox.SelectedIndex == 2)
                {
                    if (!Int32.TryParse(speedsFirstParTextBox.Text, out outer))
                    {
                        result = false;
                        MessageBox.Show("Входная строка для левой границы равномерного распределения имеет неверный формат");
                    }
                    else if (!Int32.TryParse(speedsSecondParTextBox.Text, out outer))
                    {
                        result = false;
                        MessageBox.Show("Входная строка для правой границы равномерного распределения имеет неверный формат");
                    }
                    else if (Int32.Parse(speedsFirstParTextBox.Text) < ConstrainsHolder.getConstrainsHolder().AFORSPEED ||
                             Int32.Parse(speedsSecondParTextBox.Text) > ConstrainsHolder.getConstrainsHolder().BFORSPEED)
                    {
                        result = false;
                        MessageBox.Show("Левая граница равномерного распределения скоростей должна быть не меньше " +
                                        ConstrainsHolder.getConstrainsHolder().AFORSPEED + " , а правая не больше " +
                                        ConstrainsHolder.getConstrainsHolder().BFORSPEED);
                    }
                    else if (Int32.Parse(speedsFirstParTextBox.Text) > Int32.Parse(speedsSecondParTextBox.Text))
                    {
                        result = false;
                        MessageBox.Show("Левая граница равномерного распределения скоростей не должна быть большей правой");
                    }
                }
            }
            else
            {
                result = false;
                MessageBox.Show("Необходимо установить параметры скорости машин");
            }
            return(result);
        }
Esempio n. 5
0
        private bool checkTimeParamsForException()
        {
            bool   result = true;
            int    outer  = 5;
            double outerD = 1.5;

            if (chooseTimeTypeComboBox.SelectedIndex == 0)
            {
                if (!Int32.TryParse(timeTextBox.Text, out outer))
                {
                    MessageBox.Show("В параметр времени нужно ввести целое числовое значение");
                    result = false;
                }
                else
                {
                    if (Int32.Parse(timeTextBox.Text) > ConstrainsHolder.getConstrainsHolder().MAXTIME ||
                        Int32.Parse(timeTextBox.Text) < ConstrainsHolder.getConstrainsHolder().MINTIME)
                    {
                        MessageBox.Show("Детерминированное время машин должно быть от 1 до 10");
                        result = false;
                    }
                }
            }
            else if (chooseTimeTypeComboBox.SelectedIndex == 1)
            {
                if (chooseTimeDistributionLawComboBox.SelectedIndex == 0)
                {
                    if (!Double.TryParse(timesFirstParTextBox.Text, out outerD))
                    {
                        result = false;
                        MessageBox.Show("Значение математического ожидания для нормального распределения времени машин имеет недопустимое значение");
                    }
                    else if (!Double.TryParse(timesSecondParTextBox.Text, out outerD))
                    {
                        result = false;
                        MessageBox.Show("Значение дисперсии для нормального распределения времени появления машин имеет недопустимое значение");
                    }
                }
                else if (chooseTimeDistributionLawComboBox.SelectedIndex == 1)
                {
                    if (!Double.TryParse(timesFirstParTextBox.Text, out outerD))
                    {
                        MessageBox.Show("Недопустимое значение параметра показательного распределения для времени");
                        result = false;
                    }
                    else
                    {
                        if (Double.Parse(timesFirstParTextBox.Text) > ConstrainsHolder.getConstrainsHolder().MAXEXPPARTOFTIME ||
                            Double.Parse(timesFirstParTextBox.Text) < ConstrainsHolder.getConstrainsHolder().MINEXPPARFORTIME)
                        {
                            result = false;
                            MessageBox.Show("Значения параметра показательного распределения для времени должны находиться в интвервале [0,1;1]");
                        }
                    }
                }
                else if (chooseTimeDistributionLawComboBox.SelectedIndex == 2)
                {
                    if (!Int32.TryParse(timesFirstParTextBox.Text, out outer))
                    {
                        result = false;
                        MessageBox.Show("Недопустимое значения для параметра а равномерного распределения времени появления машин.");
                    }
                    else if (!Int32.TryParse(timesSecondParTextBox.Text, out outer))
                    {
                        result = false;
                        MessageBox.Show("Недопустимое значения для параметра b равномерного распределения времени появления машин.");
                    }
                    else if (Int32.Parse(timesFirstParTextBox.Text) < ConstrainsHolder.getConstrainsHolder().AFORTIME ||
                             Int32.Parse(timesSecondParTextBox.Text) > ConstrainsHolder.getConstrainsHolder().BFORTIME)
                    {
                        result = false;
                        MessageBox.Show("Значения параметров для равномерного распредлеения времени появления машин не могут быть меньше 1 или больше 10");
                    }
                    else if (Int32.Parse(timesFirstParTextBox.Text) >= Int32.Parse(timesSecondParTextBox.Text))
                    {
                        result = false;
                        MessageBox.Show("Значение параметра а для равномерного распределения времени появления машин всегда должно быть меньше параметра b");
                    }
                }
            }
            else
            {
                result = false;
                MessageBox.Show("Необходимо установить время появления машин");
            }

            return(result);
        }
Esempio n. 6
0
 private void SetSignForm_Load(object sender, EventArgs e)
 {
     chooseSpeedNumericUpDown.Minimum = ConstrainsHolder.getConstrainsHolder().MINSPEED;
     chooseSpeedNumericUpDown.Value   = chooseSpeedNumericUpDown.Minimum;
     chooseSpeedNumericUpDown.Maximum = ConstrainsHolder.getConstrainsHolder().MAXSPEED - 10;
 }