Crear Una Calculadora En C#

lunes, 23 de abril de 2012

Bueno me encontraba sin hacer nada así que me puse a programar un rato y cree una pequeña calculadora y ahora les explicare como hacer una, para los que recién empiezan a programar vean como crear pequeñas aplicaciones en c#.

Creamos un nuevo proyecto windows form en visual estudio y creamos el siguiente diseño

switch

como funcionara, el usuario ingresara datos en los 2 primeros textbox (txtnum1 y txtnum2) y el 3 textbox (txtresultado) se mostrara el resultado.

Lo que tenemos que hacer es programar los eventos de los botones, comenzaremos con el primero damos doble click en el botón + y nos mostrara el código para programar el evento.
antes de programar el evento declaremos 2 variables x, y a nivel de la clase para que podamos usarlas en todos los métodos.
        double x,y;

private void btnsumar_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
y = Convert.ToDouble(txtnum2.Text);
txtresultado.Text = string.Format("{0:f2}", x+y);
}

Como pueden observar antes del evento del botón declare 2 variables x,y que servirán para capturar los datos que introduzca el usuarios.Luego dentro del evento click lo que aremos es capturar los datos ingresados en txtnum1 y txtnum2 y de una sola vez convertirlos en tipo double, luego de esto mostramos el resultado de la suma en txtresultado con un tipo de formato string.Format("{0:f2}", x+y); esto quiere decir que mostraremos la respuesta con 2 decimales.

En los eventos de los botones restar, multiplicar y dividir prácticamente hacemos lo mismo lo único que cambia es el operador para realizar la operación.
       private void btnrestar_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
y = Convert.ToDouble(txtnum2.Text);
txtresultado.Text = string.Format("{0:f2}", x - y);

}

private void btnmultiplicar_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
y = Convert.ToDouble(txtnum2.Text);
txtresultado.Text = string.Format("{0:f2}", x * y);
}

private void btndivision_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
y = Convert.ToDouble(txtnum2.Text);
txtresultado.Text = string.Format("{0:f2}", x / y);
}

En el caso de los eventos de los botones raíz y potencia cambia un poco el código, pero no se preocupen nada del otro mundo, ya que utilizamos la clase Match que sirve para realizar operaciones matemáticas.
       private void btnraiz_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
double resultado = Math.Sqrt(x);
txtresultado.Text = string.Format("{0:f2}", resultado);


}

private void btnpotencia_Click(object sender, EventArgs e)
{
x = Convert.ToDouble(txtnum1.Text);
y = Convert.ToDouble(txtnum2.Text);
double resultado = Math.Pow(x,y);
txtresultado.Text = string.Format("{0:f2}", resultado);
}

Como se observa en el evento del botón raíz solo necesitamos 1 numero, para calcular la raíz cuadrada usamos el método Sqrt de la clase Match que sirve justamente para calcular la raíz cuadrada de un numero.

También es lo mismo para el evento click del botón potencia solo que aquí usamos el método Pow de la clase Match donde decimos que el valor de x (valor de txtnum1) se elevara a la potencia y (valor de txtnum2).
Por ultimo solo nos faltaría el evento del botón limpiar donde lo único que aremos es limpiar los 3 textbox.
       private void btnlimpiar_Click(object sender, EventArgs e)
{
txtnum1.Text = "";
txtnum2.Text = "";
txtresultado.Text = "";
}

Eso seria todo aquí les dejo imágenes del programa corriendo.

switch

switch
También como siempre les dejo el código.Descargar Codigo

3 comentarios:

jose roberto batres hernandez dijo...

gracias por su ayuda nesesito hacer un formulario de 4 notas cada uan equivalente a el 25%

Cristian Torres dijo...

Y cual seria el problema?

Anónimo dijo...

hola quisiera saber como hacer una calculadora pero que tenga los numeros de botones, osea k se pueda oprimir el 1,2,3,4...... asi
grax

Publicar un comentario en la entrada

Nota: solo los miembros de este blog pueden publicar comentarios.