Пример #1
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                c = form_cantidadservidores.nro + 1;

                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();

                cli_cola1    = new List <double>();
                dem_prom1    = new List <double>();
                utilizacion1 = new List <double>();

                cli_cola2    = new List <double>();
                dem_prom2    = new List <double>();
                utilizacion2 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidoresSerie MultiplesServidores;
                    TEA = new List <double>();
                    TDS = new List <double>();

                    if (chkArribo.Checked == true)
                    {
                        if (txtTEA_a.Text.Contains("."))
                        {
                            txtTEA_a.Text = txtTEA_a.Text.Replace('.', ',');
                        }
                        if (txtTEA_b.Text.Contains("."))
                        {
                            txtTEA_b.Text = txtTEA_b.Text.Replace('.', ',');
                        }

                        TEA.Add(Convert.ToDouble(txtTEA_a.Text));
                        TEA.Add(Convert.ToDouble(txtTEA_b.Text));
                        if (cbxDTDS.SelectedItem.ToString() == "Exponencial")
                        {
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'u', TEA, 'e', TDS);
                        }
                        else
                        {
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            TDS.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'u', TEA, 'w', TDS);
                        }
                    }
                    else
                    {
                        if (txtTDS1_a.Text.Contains("."))
                        {
                            txtTDS1_a.Text = txtTDS1_a.Text.Replace('.', ',');
                        }
                        if (txtTDS1_b.Text.Contains("."))
                        {
                            txtTDS1_b.Text = txtTDS1_b.Text.Replace('.', ',');
                        }
                        if (txtTDS2_a.Text.Contains("."))
                        {
                            txtTDS2_a.Text = txtTDS2_a.Text.Replace('.', ',');
                        }
                        if (txtTDS2_b.Text.Contains("."))
                        {
                            txtTDS2_b.Text = txtTDS2_b.Text.Replace('.', ',');
                        }

                        TDS.Add(Convert.ToDouble(txtTDS1_a.Text));
                        TDS.Add(Convert.ToDouble(txtTDS1_b.Text));
                        TDS.Add(Convert.ToDouble(txtTDS2_a.Text));
                        TDS.Add(Convert.ToDouble(txtTDS2_b.Text));
                        if (cbxDTEA.SelectedItem.ToString() == "Exponencial")
                        {
                            TEA.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'e', TEA, 'u', TDS);
                        }
                        else
                        {
                            TEA.Add(tiempos[i]);
                            TEA.Add(tiempos[i]);
                            MultiplesServidores = new ServidoresSerie(c, 'w', TEA, 'u', TDS);
                        }
                    }

                    while (MultiplesServidores.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = MultiplesServidores.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            MultiplesServidores.arribo();
                        }
                        else if (proximo_evento == 'b')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'c')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else if (proximo_evento == 'd')
                        {
                            MultiplesServidores.partida_arribo(proximo_evento);
                        }
                        else
                        {
                            MultiplesServidores.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(1)));
                    cli_cola1.Add(MultiplesServidores.CantPromClientesColaS(0));
                    cli_cola2.Add(MultiplesServidores.CantPromClientesColaS(1));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(1)));
                    dem_prom1.Add(MultiplesServidores.DemPromedioS(0));
                    dem_prom2.Add(MultiplesServidores.DemPromedioS(1));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(1)));
                    utilizacion1.Add(MultiplesServidores.UtilServidor(0));
                    utilizacion2.Add(MultiplesServidores.UtilServidor(1));

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "El TEA tiene que ser un decimal entre 0,1 y 1.";
                    break;

                case (7):
                    mensaje = "Debe ingresar el TEA o los TDS";
                    break;

                case (8):
                    mensaje = "El valor de a no puede ser mayor que el de b";
                    break;

                case (9):
                    mensaje = "Debe tildar el tiempo que desea ingresar.";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, " ¡ Atención !", MessageBoxButtons.OK);
            }
        }
Пример #2
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            int msj = Validar(this.Controls);

            if (msj == 0)
            {
                c = form_cantidadservidores.nro + 1;

                String nom_graf = "Weibull";

                cli_en_cola_s1.Series.Clear();
                cli_en_cola_s2.Series.Clear();

                dem_prom_cli_s1.Series.Clear();
                dem_prom_cli_s2.Series.Clear();

                utilizacion_serv1.Series.Clear();
                utilizacion_serv2.Series.Clear();

                cli_cola1    = new List <double>();
                dem_prom1    = new List <double>();
                utilizacion1 = new List <double>();

                cli_cola2    = new List <double>();
                dem_prom2    = new List <double>();
                utilizacion2 = new List <double>();

                cli_en_cola_s1.Series.Add(nom_graf);
                cli_en_cola_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s1.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s1.Series[nom_graf].BorderWidth = 3;

                cli_en_cola_s2.Series.Add(nom_graf);
                cli_en_cola_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                cli_en_cola_s2.Series[nom_graf].Color       = Color.Green;
                cli_en_cola_s2.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s1.Series.Add(nom_graf);
                dem_prom_cli_s1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s1.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s1.Series[nom_graf].BorderWidth = 3;

                dem_prom_cli_s2.Series.Add(nom_graf);
                dem_prom_cli_s2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                dem_prom_cli_s2.Series[nom_graf].Color       = Color.Red;
                dem_prom_cli_s2.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv1.Series.Add(nom_graf);
                utilizacion_serv1.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv1.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv1.Series[nom_graf].BorderWidth = 3;

                utilizacion_serv2.Series.Add(nom_graf);
                utilizacion_serv2.Series[nom_graf].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
                utilizacion_serv2.Series[nom_graf].Color       = Color.Blue;
                utilizacion_serv2.Series[nom_graf].BorderWidth = 3;

                NrosAleatorios.GenerarNros(Convert.ToInt32(txtHs.Text));

                for (int i = 0; i < tiempos.Length; i++)
                {
                    ServidoresParalelo MultiplesServidores;
                    TEA   = new List <double>();
                    TDS_a = new List <double>();
                    TDS_b = new List <double>();

                    if (arribo)
                    {
                        TEA.Add(Convert.ToDouble(txtTEA_a.Text));
                        TEA.Add(Convert.ToDouble(txtTEA_b.Text));
                        TDS_a.Add(tiempos[i]);
                        TDS_a.Add(tiempos[i]);
                        TDS_b.Add(tiempos[i]);
                        TDS_b.Add(tiempos[i]);
                        MultiplesServidores = new ServidoresParalelo('w', c, TEA, TDS_a, TDS_b);
                    }
                    else
                    {
                        TEA.Add(tiempos[i]);
                        TEA.Add(tiempos[i]);
                        TDS_a.Add(Convert.ToDouble(this.txtTDS1_a.Text));
                        TDS_a.Add(Convert.ToDouble(this.txtTDS2_a.Text));
                        TDS_b.Add(Convert.ToDouble(this.txtTDS1_b.Text));
                        TDS_b.Add(Convert.ToDouble(this.txtTDS2_b.Text));
                        MultiplesServidores = new ServidoresParalelo('w', c, TEA, TDS_a, TDS_b);
                    }

                    while (MultiplesServidores.reloj < Convert.ToDouble(txtHs.Text))
                    {
                        char proximo_evento = MultiplesServidores.rutinadetiempo();
                        if (proximo_evento == 'a')
                        {
                            MultiplesServidores.arribo();
                        }
                        else
                        {
                            MultiplesServidores.partida();
                        }
                    }

                    cli_en_cola_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(0)));
                    cli_en_cola_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.CantPromClientesColaS(1)));
                    cli_cola1.Add(MultiplesServidores.CantPromClientesColaS(0));
                    cli_cola2.Add(MultiplesServidores.CantPromClientesColaS(1));

                    dem_prom_cli_s1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(0)));
                    dem_prom_cli_s2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.DemPromedioS(1)));
                    dem_prom1.Add(MultiplesServidores.DemPromedioS(0));
                    dem_prom2.Add(MultiplesServidores.DemPromedioS(1));

                    utilizacion_serv1.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(0)));
                    utilizacion_serv2.Series[nom_graf].Points.Add(new DataPoint(tiempos[i], MultiplesServidores.UtilServidor(1)));
                    utilizacion1.Add(MultiplesServidores.UtilServidor(0));
                    utilizacion2.Add(MultiplesServidores.UtilServidor(1));

                    NrosAleatorios.ReiniciarR();
                }

                cli_en_cola_s1.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola1) * 1.2;
                dem_prom_cli_s1.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom1) * 1.2;
                utilizacion_serv1.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion1) * 1.2;

                cli_en_cola_s2.ChartAreas[0].AxisY.Maximum    = DameMaximo(cli_cola2) * 1.2;
                dem_prom_cli_s2.ChartAreas[0].AxisY.Maximum   = DameMaximo(dem_prom2) * 1.2;
                utilizacion_serv2.ChartAreas[0].AxisY.Maximum = DameMaximo(utilizacion2) * 1.2;

                NrosAleatorios.ReiniciarN();
            }
            else
            {
                string mensaje = null;
                switch (msj)
                {
                case (1):
                    mensaje = "Existen campos vacíos.";
                    break;

                case (2):
                    mensaje = "Verifique el formato las horas: deben ser enteras.";
                    break;

                case (3):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (4):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (5):
                    mensaje = "Los parámetros del TDS tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (6):
                    mensaje = "Los parámetros del TEA tienen que ser números decimales entre 0,1 y 1.";
                    break;

                case (7):
                    mensaje = "Debe ingresar los parámetros del TEA o del TDS";
                    break;

                default: break;
                }
                MessageBox.Show(mensaje, "¡ Atención !", MessageBoxButtons.OK);
            }
        }