public MasCortoPrimero(FormGrafica formGrafica) : base(formGrafica)
 {
 }
 public RoundRobin(FormGrafica formGrafica) : base(formGrafica)
 {
 }
 public SISTEMA(FormGrafica formGrafica)//agregacion de la form que lleva la grafica
 {
     this.formGrafica = formGrafica;
 }
 public FIFO(FormGrafica formGrafica) : base(formGrafica)
 {
 }
Esempio n. 5
0
        private void button1_Click(object sender, EventArgs e)//click inicio de la simulacion
        {
            FormGrafica fGrafica     = new FormGrafica();
            SISTEMA     sistema      = new SISTEMA(fGrafica);
            Boolean     flagFunciona = true;

            switch (comboBoxPrioridad.SelectedIndex)
            {
            case 0:
                sistema = new FIFO(fGrafica);
                break;

            case 1:
                sistema = new MasCortoPrimero(fGrafica);
                break;

            case 2:
                sistema = new MasCortoPrimeroCD(fGrafica);
                break;

            case 3:
                sistema = new RoundRobin(fGrafica);
                try
                {
                    sistema.TiempodeRoundRobin = Convert.ToInt32(textBoxTiempodeRafaga.Text);
                }
                catch (FormatException)
                {
                    flagFunciona = false;
                }

                break;
            }


            try
            {
                sistema.TiempoIO = Convert.ToInt32(textBox_IO.Text);
            }
            catch (Exception)
            {
                flagFunciona = false;
                MessageBox.Show("El tiempo de I/O no es valido");
            }

            if (P1checkBox.Checked)
            {
                if (P1textBoxInicio.Text != "")
                {
                    PROCESO p1 = new PROCESO();
                    try
                    {
                        p1.Inicio = Convert.ToInt32(P1textBoxInicio.Text);
                        p1.Nombre = "Proceso 1";
                        p1.agregarRafaga(P1textBox1.Text);
                        p1.agregarRafaga(P1textBox2.Text);
                        p1.agregarRafaga(P1textBox3.Text);
                        p1.agregarRafaga(P1textBox4.Text);
                        sistema.AgregarProceso(p1);
                    }
                    catch (ExcepcionNoAnda)
                    {
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("El inicio 1 no es valido");
                    }
                }
                else
                {
                    MessageBox.Show("El inicio 1 no es valido");
                }
            }


            if (P2checkBox.Checked)
            {
                if (P2textBoxInicio.Text != "")
                {
                    PROCESO p2 = new PROCESO();
                    try
                    {
                        p2.Inicio = Convert.ToInt32(P2textBoxInicio.Text);
                        p2.Nombre = "Proceso 2";
                        p2.agregarRafaga(P2textBox1.Text);
                        p2.agregarRafaga(P2textBox2.Text);
                        p2.agregarRafaga(P2textBox3.Text);
                        p2.agregarRafaga(P2textBox4.Text);
                        sistema.AgregarProceso(p2);
                    }
                    catch (ExcepcionNoAnda)
                    {
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("El inicio 2 no es valido");
                    }
                }
                else
                {
                    MessageBox.Show("El inicio 2 no es valido");
                }
            }

            if (P3checkBox.Checked)
            {
                if (P3textBoxInicio.Text != "")
                {
                    PROCESO p3 = new PROCESO();
                    try
                    {
                        p3.Inicio = Convert.ToInt32(P3textBoxInicio.Text);
                        p3.Nombre = "Proceso 3";
                        p3.agregarRafaga(P3textBox1.Text);
                        p3.agregarRafaga(P3textBox2.Text);
                        p3.agregarRafaga(P3textBox3.Text);
                        p3.agregarRafaga(P3textBox4.Text);
                        sistema.AgregarProceso(p3);
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("El inicio 3 no es valido");
                    }
                    catch (ExcepcionNoAnda)
                    {
                    }
                }
                else
                {
                    MessageBox.Show("El inicio 3 no es valido");
                }
            }

            if (P4checkBox.Checked)
            {
                if (P4textBoxInicio.Text != "")
                {
                    PROCESO p4 = new PROCESO();
                    try
                    {
                        p4.Inicio = Convert.ToInt32(P4textBoxInicio.Text);
                        p4.Nombre = "Proceso 4";
                        p4.agregarRafaga(P4textBox1.Text);
                        p4.agregarRafaga(P4textBox2.Text);
                        p4.agregarRafaga(P4textBox3.Text);
                        p4.agregarRafaga(P4textBox4.Text);
                        sistema.AgregarProceso(p4);
                    }
                    catch (ExcepcionNoAnda)
                    {
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("El inicio 4 no es valido");
                    }
                }
                else
                {
                    MessageBox.Show("El inicio 4 no es valido");
                }
            }


            if (sistema.CantidaddeProcesos() > 0 && flagFunciona)
            {
                sistema.Ejecucion(); //comienzo de la simulacion
                fGrafica.ShowDialog();
            }
        }