[ Foro de C# ]

proyecto de C#: ayuda con clases.

12-Feb-2014 00:53
Invitado (rolando tarqui)
6 Respuestas

Hola me llamo rolando, estudio informática en una escuela técnica, y esta es mi primer aplicación de windows from.

el programa se trata de los 4 continentes (América, Europa,   Asía, África )
y sus respectivos países que van al mundial 2014.

al ejecutar el programa nos aperase una ventana con 4 botones cada botón corresponde a un continente,

al hacer clic en un continente se abrirá  una ventaba con las banderas de los países que van al mundial únicamente de ese continente.

el usuario tiene que ingresar el nombre del país que corresponda a su bandera,
cada continente tiene su contador de correctos e incorrectos.

bueno el programa es simple, pero hay algo que no tengo idea como hacerlo.
-Tengo que pasar todo la aplicación a clases.
ose agrupar el código de cada pais en una clase.
CONTINENTE ASIA:


namespace WindowsFormsApplication1
{
    public partial class Asia : Form
    {
        int correcto, incorrecto;
        public Asia()
        {
            InitializeComponent();
            correcto = 0;
            incorrecto = 0;
        }


-como paso a clases este codigo-


        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "japon")
            {
                MessageBox.Show("Correcto");
                textBox1.Enabled = false;
                correcto++;
                textBox6.Text = correcto.ToString();
                button1.Enabled = false;
            }

            else
            {
                MessageBox.Show("incorrecto");

                incorrecto++;
                textBox7.Text = incorrecto.ToString();

            }
        }
--------------------------------------------------------------------------------------------------------
        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox2.Text == "nueva zelanda")
            {
                MessageBox.Show("Correcto");
                textBox2.Enabled = false;
                correcto++;
                textBox6.Text = correcto.ToString();
                button2.Enabled = false;
            }

            else
            {
                MessageBox.Show("incorrecto");

                incorrecto++;
                textBox7.Text = incorrecto.ToString();

            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (textBox3.Text == "iran")
            {
                MessageBox.Show("Correcto");
                textBox3.Enabled = false;
                correcto++;
                textBox6.Text = correcto.ToString();
                button3.Enabled = false;
            }

            else
            {
                MessageBox.Show("incorrecto");

                incorrecto++;
                textBox7.Text = incorrecto.ToString();

            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (textBox4.Text == "australia")
            {
                MessageBox.Show("Correcto");
                textBox4.Enabled = false;
                correcto++;
                textBox6.Text = correcto.ToString();
                button4.Enabled = false;
            }

            else
            {
                MessageBox.Show("incorrecto");

                incorrecto++;
                textBox7.Text = incorrecto.ToString();

            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (textBox5.Text == "corea del sur")
            {
                MessageBox.Show("Correcto");
                textBox5.Enabled = false;
                correcto++;
                textBox6.Text = correcto.ToString();
                button5.Enabled = false;
            }

            else
            {
                MessageBox.Show("incorrecto");

                incorrecto++;
                textBox7.Text = incorrecto.ToString();

            }
        }
    }
}


desde ya muchas gracias.


12-Feb-2014 22:49
Nacho Cabanes (+83)

El "pasar un programa a clases" supone un cambio de mentalidad total: tienes que plantear el programa como una serie de objetos que colaboran entre ellos, pensar qué acciones (métodos) tiene que realizar cada objeto y qué datos (atributos) tiene que manipular.

Eso es lo primero que tienes que pensar. Tu fuente de momento no es importante, sino pensar en cómo va a ser la descomposición "a nivel lógico".


17-Feb-2014 00:07
Invitado (rolando tarqui)

gracias por responder, pero sigo igual que antes, no tengo idea como hacerlo,
me ayudarías mucho con un ejemplo,


PD: disculpen pero es mi primer año de programación y no entiendo mucho.


17-Feb-2014 11:49
Nacho Cabanes (+83)

Si no has visto nada de "Diseño Orientado a Objetos", no es fácil que lo hagas bien. Yo ahí "no veo" una clase para cada continente, porque como todos ellos son continentes, todos pertenecen a una misma clase, son instancias (objetos) de una misma clase.

Cada continente contiene varios países, luego "País" es otra clase. Cada país tiene detalles como su nombre y su bandera.

Pero insisto, para algo así deberías pedir primero unas pautas más detalladas al profesor que te va a evaluar, porque si él ser refiere a una clase distinta para cada continente, tendrás que hacerlo como él te pida, independientemente de si a mí me parece la forma más correcta o no.


18-Feb-2014 03:58
Invitado (rolando)

la consigna  es, pasar a clases los países ...


18-Feb-2014 05:06
Invitado (rolando tarqui )

la consigna que me dijeron,, aser clases por pais


19-Feb-2014 11:19
Nacho Cabanes (+83)

Siguen faltando detalles: si cada país tiene un "formulario" dedicado para él, ya está en una clase cada país. Aun así, a mí me parece "más natural" separar la lógica de la parte visible tanto como sea posible, así que yo crearía una clase "Pais", con métodos que te devuelvan su nombre, su capital y su bandera (supongo que el nombre del fichero, para que lo puedas mostrar desde la parte visual de tu programa).

Aquí tienes las nociones de cómo crear clases y objetos en C#:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=404






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)