Sei sulla pagina 1di 14

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 pequea
calculadora y ahora les explicare como hacer una, para los que recin empiezan a programar vean
como crear pequeas aplicaciones en c#.
Creamos un nuevo proyecto windows form en visual estudio y creamos el siguiente diseo

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 botn + y nos mostrara el cdigo 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 mtodos.
?

1
2
3
4
5
6
7
8

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 botn declare 2 variables x,y que servirn 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
tipodouble, luego de esto mostramos el resultado de la suma en txtresultado con un tipo de
formatostring.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 prcticamente hacemos lo mismo lo
nico que cambia es el operador para realizar la operacin.
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

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 raz y potencia cambia un poco el cdigo, pero no se
preocupen nada del otro mundo, ya que utilizamos la clase Match que sirve para realizar
operaciones matemticas.
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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);
}

16
Como se observa en el evento del botn raz solo necesitamos 1 numero, para calcular la raz
cuadrada usamos el mtodo Sqrt de la clase Match que sirve justamente para calcular la raz
cuadrada de un numero.
Tambin es lo mismo para el evento click del botn potencia solo que aqu usamos el
mtodoPow 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 faltara el evento del botn limpiar donde lo nico que aremos es limpiar los 3
textbox.
?

1
2
3
4
5
6

private void btnlimpiar_Click(object sender, EventArgs e)


{
txtnum1.Text = "";
txtnum2.Text = "";
txtresultado.Text = "";
}

Eso seria todo aqu les dejo imgenes del programa corriendo.

Tambin como siempre les dejo el cdigo.Descargar Codigo

Windows Forms Paso a Paso


Ejemplo 1 de Desarrollo de aplicaciones de escritorio con Windows
Forms

En este ejemplo, veremos cmo construir una aplicacin para escritorio usando
Windows Forms.
Para crear este ejemplo, iniciaremos el Visual Studio .NET y crearemos una
aplicacin de Windows usando el lenguaje de programacin C#, por tanto
empezaremos cargando el IDE de Visual Studio .NET y seleccionaremos este tipo
de aplicacin, veamos los pasos a seguir para conseguir nuestro objetivo:
1- Iniciamos el Visual Studio .NET
2- En el men de Archivo, seleccionamos Nuevo... y del men mostrado,
seleccionaremos Proyecto... (tambin podemos usar el acceso rpido Ctrl+N)

3- Se mostrar un cuadro de dilogo como el mostrado en la figura 1:

Figura 1: Nuevo proyecto de Aplicacin de Windows (C#)


4- En el nombre indicaremos: Ejemplo1, tal como se muestra en la figura
anterior. Ese ser el nombre que Visual Studio .NET utilizar como nombre del
ejecutable.
5- Cada vez que creamos un nuevo proyecto de aplicacin para Windows, el
entorno de desarrollo (IDE) aade un nuevo formulario, el cual, por defecto,
tendr el nombre Form1. Para este ejemplo, vamos a dejar el nombre indicado,
en otra ocasin veremos lo que tendremos que hacer para cambiar el nombre
asignado de forma predeterminada por el entorno de desarrollo, y utilizar el que
deseemos.
6- A este formulario vamos a aadirle una serie de controles con los que
interactuaremos para aprender las caractersticas ms bsicas que usaremos en
la mayora de las aplicaciones de Windows Forms (aplicaciones de Windows).
Estas mismas acciones sern las ms comunes en la mayora de las aplicaciones
de .NET Framework: Los eventos o mensajes producidos por los controles.
7- Los controles que aadiremos sern: dos etiquetas (Label), una caja de textos
(TextBox) y dos botones (Button).
8- Para aadir un nuevo control al formulario, tendremos que mostrar el cuadro
de herramientas situado, de forma predeterminada, en la parte izquierda del
entorno de desarrollo. Si no lo tuviramos visible podemos mostrarlo pulsando la
combinacin de teclas: Ctrl+Alt+X o bien seleccionando Cuadro de
herramientas del men Ver.

9- Seleccionaremos la ficha Windows Forms y de los controles mostrados,


haremos doble pulsacin (doble-click) en el icono del control que queremos
aadir, en esta ocasin empezaremos por un control de tipo Label.
10- A continuacin aadiremos un control TextBox el cual posicionaremos junto a
la etiqueta aadida anteriormente.
11- Seguiremos aadiendo el resto de controles, para que el aspecto sea el
mostrado en la figura 2:

Figura 2: El formulario en tiempo de diseo


12- Ahora vamos a asignar los valores a unas cuantas propiedades de los
controles, para ello seleccionaremos el control que queremos modificar y
mostraremos la ventana dePropiedades, si no la tenemos visible, pulsaremos
F4.
13- Empezaremos por la primera de las etiquetas, (label1), por tanto, la
seleccionaremos y pulsaremos F4, de forma predeterminada el cursor estar en
la propiedad Text, en ella escribiremos el texto a mostrar en esa etiqueta, en
esta ocasin ser: Saludo; tal como podemos ver en la figura 3:

Figura 3: La ventana de propiedades


14- Seguiremos asignando el texto del botn que est junto a la caja de textos
(button1) y lo cambiaremos a Saludar.
15- Haremos lo mismo con el otro botn (button2), al que asignaremos el texto
Cerrar.
16- Para que los controles se adapten al tamao del formulario, vamos a asignar
la propiedad Anchor de los mismos, de forma que tengan los siguientes valores:
Control

Valor de Anchor

Comentarios

label1

Top, Left

Valores predeterminados

Top, Left, Right

Para que se adapte al ancho


del formulario

button1

Top, Right

Para anclarlo a la derecha

label2

Top, Bottom, Left,


Right

Para que se adapte al ancho y


alto

Bottom, Right

Para anclarlo en la esquina


inferior derecha

textBox1

button2

17- Una vez asignados estos valores, si cambiamos el tamao del formulario,
comprobaremos que los controles se adaptan al tamao del mismo.
18- Lo siguiente que haremos ser asignar los eventos que vamos a interceptar,
en este caso slo interceptaremos la pulsacin (click) de los dos botones.
19- Para escribir el cdigo correspondiente al evento Click, podemos hacerlo de
dos formas diferentes, pero la ms sencilla (y vlida tanto para C# como para
Visual Basic .NET) es hacer doble pulsacin sobre el botn, de esa forma se
mostrar la ventana de cdigo con la "plantilla" del procedimiento de evento.

20- En el caso de que estemos usando C# (como es el caso de este ejemplo),


podemos asignar el evento de la siguiente forma:
- Seleccionamos el control, (por ejemplo button1),
- mostramos la ventana de propiedades (pulsa F4 si no est visible),
- seleccionamos el smbolo del rayo amarillo, (ver la figura 4),
- de forma predeterminada estar seleccionado el evento Click, (si no lo
estuviera, habra que seleccionarlo),
- hacemos doble pulsacin y se mostrar la "plantilla" del cdigo.
Nota:
Si quisiramos capturar otro evento, simplemente habra que seleccionarlo y
hacer doble pulsacin.

Figura 4: Los eventos de los controles en C#


21- Adems de la plantilla del mtodo (o funcin) que ser llamado cuando se
produzca el evento, en el caso de C#, tambin se crear una asignacin para
indicar cual es el manejador (handler) de dicho evento.
A continuacin se muestra el cdigo para asignar el mtodo que se usar para
interceptar el evento, as como el cdigo a ejecutar cuando ste se produzca; en
este caso, lo que hacemos es mostrar en la etiqueta label2 un saludo usando el
contenido de la caja de textos.
this.button1.Click += new System.EventHandler(this.button1_Click);
private void button1_Click(object sender, System.EventArgs e)
{
label2.Text = "Hola, " + textBox1.Text;
}
22- Debido a que C# tiene en cuenta la diferencia entre maysculas y
minsculas, podemos usar "this" para no cometer errores tipogrficos, en la
siguiente figura, vemos cmo al escribir this seguida de un punto, se muestran

las propiedades, mtodos y controles que pertenecen al formulario, ya


que this representa a la clase actual.

Figura 5: Usar Intellisense para ver los miembros de una clase.


23- Por ltimo, crearemos el cdigo para interceptar el evento Click del segundo
botn, (button2), de forma que cuando se procese, cerremos el formulario y de
paso se termine la ejecucin del programa.
El cdigo sera el siguiente:
private void button2_Click(object sender, System.EventArgs e)
{
this.Close();
}
24- Ahora podemos comprobar que todo funciona bien, para ello, pulsaremos F5
para que se compile y ejecute el proyecto.

Ejercicio:
A continuacin te propongo un pequeo ejercicio, el cual consiste en interceptar
el evento predeterminado de las cajas de texto: TextChanged, de forma que se
muestre en la etiqueta (label2) el contenido de la caja de textos (textBox1) cada
vez que se produzca dicho evento o lo que es lo mismo: cada vez que cambie el
contenido de la caja de textos.
Calculadora en C#
Para poder comenzar es necesario tener conocimiento previo en los siguientes
puntos:

1. Crear un proyecto windows form application.


2. Insercion de elementos del Toolbox en un windows form:
a) Textbox.
b) Label.
c) Button.
3. Tipo de datos:
a) Float.
b) String.
4. Operadores aritmetcos:
a) + Suma aritmtica.
b) - Resta aritmtica.
c) * Producto aritmtica.
d) / Divisin aritmtica.
e) Raz cuadrada.
5. Modificar propiedades de la forma y elementos del texbox.
6. Control de flujo condicional: ifelse.
7. Definicion de metodos.
Instrucciones
1.- Crear una aplicacion windows form y nombrarla Calculadora.
2.- Elaborar la interfaz de nuestra calculadora. Para este paso van a necesitar los
siguientes elementos:
10 botones para los numeros del 1 al 0.
2 botones para mostrar resultado y borrar pantalla.
4 botones para seleccionar la operacion que deseemos realizar.
Despues realizaremos los siguientes cambios en las siguientes propiedades de
los botones:
Text: numeros (1 al 0), clear (CE), igual (=) y operadores logicos (+, -, *, /,).
ForColor: Dependera del tipo de boton ejemplo: negro para operaciones, azul
para resultado e igual y rojo para digitos.
Font: Microsoft Sans Serif,regular,8
Size: 33,33.//tamao de los botones
Al final obtendr algo como se muestra en la figura.

3. A continuacin mostrar el cdigo de la calculadora.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Calculadora
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///Summary
///Calculator Program in C#.
///the objective of this program is put into practice everything
///that we have seen the last course for example:
///a)Declarations of variables.
///b)if-else(control structures)
//Declaration of global variables
double numero1 = 0, numero2 = 0, resultado = 0;
string Display = string.Empty, operador = string.Empty;
///The global variable is a variable that is access
///for all of methods in the program
//Declaration of methods
public void Operacion(string operacion)
{
if (operador == )
{

textboxDisplay.Clear();
resultado = Math.Sqrt(numero1);
}
else
{
numero2 = Convert.ToDouble(textboxDisplay.Text);
if (operador == +)
{
resultado = numero1 + numero2;
}
else if (operador == -)
{
resultado = numero1 numero2;
}
else if (operador == *)
{
resultado = numero1 * numero2;
}
else if (operador == /)
{
resultado = numero1 / numero2;
}
}
///if you want to check out about this method, you can do it throught
///of this website http://www.csharp-examples.net/string-format-double/
///the following line show how to format float numbers to string
///and you can limit the decimal places in C#.
this.textboxDisplay.Text = string.Format({0:#,###.##}, resultado);
}
private void button1_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 1;
}
private void button2_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 2;
}
private void button3_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 3;
}
private void button4_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 4;
}
private void button5_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 5;
}

private void button6_Click(object sender, EventArgs e)


{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 6;
}
private void button7_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 7;
}
private void button8_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 8;
}
private void button9_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 9;
}
private void button0_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + 0;
}
private void buttonSum_Click(object sender, EventArgs e)
{
numero1 = Convert.ToDouble(textboxDisplay.Text);
operador = +;
textboxDisplay.Clear();
}
private void buttonRes_Click(object sender, EventArgs e)
{
numero1 = Convert.ToDouble(textboxDisplay.Text);
operador = -;
textboxDisplay.Clear();
}
private void buttonMul_Click(object sender, EventArgs e)
{
numero1 = Convert.ToDouble(textboxDisplay.Text);
operador = *;
textboxDisplay.Clear();
}
private void buttonDiv_Click(object sender, EventArgs e)
{
numero1 = Convert.ToDouble(textboxDisplay.Text);
operador = /;
textboxDisplay.Clear();
}
private void buttonSQRT_Click(object sender, EventArgs e)
{
numero1 = Convert.ToDouble(textboxDisplay.Text);
operador = ;

Operacion(operador);
}
private void buttonR_Click(object sender, EventArgs e)
{
Operacion(operador);
}
private void buttonC_Click(object sender, EventArgs e)
{
textboxDisplay.Clear();
}
private void buttonP_Click(object sender, EventArgs e)
{
Display = textboxDisplay.Text;
textboxDisplay.Text = Display + .;
}
}
}

Potrebbero piacerti anche