none
Ayuda en Forms!! RRS feed

  • Pregunta

  • Me encargaron un ejercicio en Forms, en el cual, debo ingresar varias calificaciones por textbox y mostrarlas en un list box, luego, debo sacar el promedio de ellas. Esto es lo que llevo, pero no tengo idea de como puedo sacar el promedio de los elementos. ¿Que debo cambiar, quitar o agregar? Porfaaaa!!!!

        ArrayList calificaciones;
            public Promedio()
            {
                InitializeComponent();
                calificaciones = new ArrayList();
            }

            private void btn_plus_Click(object sender, EventArgs e)
            {

                calificaciones.Add(tbx_cal.Text.ToString());
                tbx_cal.Clear();

            }

            private void btn_prom_Click(object sender, EventArgs e)
            {

                int i;
                for (i = 0; i < calificaciones.Count; i++)
                {

                    lbx_prom.Items.Add(calificaciones[i]);
                    double sum;

                }

                           
    domingo, 11 de junio de 2017 0:41

Respuestas

  • List<Int32> calificaciones = new List<int>();
    private void btn_plus_Click(object sender, EventArgs e)
    {
    	int calificacion;
    	if (Int32.TryParse(tbx_cal.Text, out calificacion)) //¿El valor ingresado es válido?
    	{
    		//Se agrega la calificación a la lista
    		calificaciones.Add(calificacion);
    
    		//El control ListBox muestra los datos contenidos en la lista
    		lbx_prom.DataSource = null;
    		lbx_prom.DataSource = calificaciones;
    	}
    }
    
    private void btn_prom_Click(object sender, EventArgs e)
    {
    	//Se obtiene el promedio de los elementos agregados en la lista
    	tbx_prom.Text = calificaciones.Average().ToString();
    }



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Pedro Ávila domingo, 11 de junio de 2017 18:55
    • Marcado como respuesta Joyce_ACModerator lunes, 12 de junio de 2017 14:10
    domingo, 11 de junio de 2017 1:25

Todas las respuestas

  • List<Int32> calificaciones = new List<int>();
    private void btn_plus_Click(object sender, EventArgs e)
    {
    	int calificacion;
    	if (Int32.TryParse(tbx_cal.Text, out calificacion)) //¿El valor ingresado es válido?
    	{
    		//Se agrega la calificación a la lista
    		calificaciones.Add(calificacion);
    
    		//El control ListBox muestra los datos contenidos en la lista
    		lbx_prom.DataSource = null;
    		lbx_prom.DataSource = calificaciones;
    	}
    }
    
    private void btn_prom_Click(object sender, EventArgs e)
    {
    	//Se obtiene el promedio de los elementos agregados en la lista
    	tbx_prom.Text = calificaciones.Average().ToString();
    }



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Pedro Ávila domingo, 11 de junio de 2017 18:55
    • Marcado como respuesta Joyce_ACModerator lunes, 12 de junio de 2017 14:10
    domingo, 11 de junio de 2017 1:25
  • Ohh muchísimas gracias!!!! Si me fue de mucha utilidad :D
    domingo, 11 de junio de 2017 17:30
  • Ohh muchísimas gracias!!!! Si me fue de mucha utilidad :D

    Más allá de que haya sido útil para tus propósitos espero se haya entendido el código, si hay dudas sólo debes comentarlas. 


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    domingo, 11 de junio de 2017 22:08
  • Solo me ha surgido una duda más, como puedo restringir la cantidad de datos que ingresan al ListBox? Por ejemplo, que solo pueda ingresar 5 calificaciones.

    viernes, 16 de junio de 2017 2:59
  • Cuentas con un origen de datos de tipo List<Int32> que contiene valores de tipo entero que representan las calificaciones de un alumno y que el control de tipo ListBox los muestra, por tanto, la expresión de validación deberá comparar un valor límite (propones el número 5) contra el número de elementos agregados a la colección, por ejemplo:

    if (Int32.TryParse(tbx_cal.Text, out calificacion) && calificaciones.Count() < 5)
    {
    	//...
    }


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 16 de junio de 2017 3:41