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; }
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); }
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); }
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); }
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); }
private void SetSignForm_Load(object sender, EventArgs e) { chooseSpeedNumericUpDown.Minimum = ConstrainsHolder.getConstrainsHolder().MINSPEED; chooseSpeedNumericUpDown.Value = chooseSpeedNumericUpDown.Minimum; chooseSpeedNumericUpDown.Maximum = ConstrainsHolder.getConstrainsHolder().MAXSPEED - 10; }