Objetivo.
Poder programar una calculadora, aprendiendo el uso de cadenas y creación de clases.
Código.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace calculadora_2._0
{
public partial class Form1 : Form
{
Calculos miscalculos = new Calculos();
public Form1()
{
InitializeComponent();
}
private void btn1_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("1");
}
private void btn2_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("2");
}
private void btn3_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("3");
}
private void btn4_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("4");
}
private void btn5_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("5");
}
private void btn6_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("6");
}
private void btn7_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("7");
}
private void btn8_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("8");
}
private void btn9_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("9");
}
private void btn0_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("0");
}
private void btn00_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena("00");
}
private void btnPunto_Click(object sender, EventArgs e)
{
textBox1.Text = miscalculos.concatena(".");
}
private void btnSuma_Click(object sender, EventArgs e)
{
miscalculos.suma(textBox1.Text);
}
private void btnResta_Click(object sender, EventArgs e)
{
miscalculos.resta(textBox1.Text);
}
private void btnMulti_Click(object sender, EventArgs e)
{
miscalculos.multiplicacion(textBox1.Text);
}
private void btnDiv_Click(object sender, EventArgs e)
{
miscalculos.division(textBox1.Text);
}
private void btnIgual_Click(object sender, EventArgs e)
{
//si contatenamos una cadena vacia a un numero
//automaticamente la expresion se convierte en cadena
textBox1.Text = "" + miscalculos.resultado(textBox1.Text);
}
private void btnClear_Click(object sender, EventArgs e)
{
miscalculos.clear();
textBox1.Text = "0";
}
}
}
Código de a clase "cálculos".
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace calculadora_2._0
{
class Calculos
{
private string _cadena;
private double _resultado;
private bool _suma;
private bool _resta;
private bool _division;
private bool _multiplicacion;
public Calculos()
{
_cadena = "";
}
private void apagabanderas()
{
_suma = false;
_resta = false;
_multiplicacion = false;
_division = false;
}
public string concatena(string cadena)
{
_cadena += cadena;
return _cadena;
}
public void suma(string cadena)
{
_resultado = Convert.ToDouble(cadena);
_suma = true;
_cadena = "";
}
public void resta(string cadena)
{
_resultado = Convert.ToDouble(cadena);
_resta = true;
_cadena = "";
}
public void multiplicacion(string cadena)
{
_resultado = Convert.ToDouble(cadena);
_multiplicacion = true;
_cadena = "";
}
public void division(string cadena)
{
_resultado = Convert.ToDouble(cadena);
_division = true;
_cadena = "";
}
public double resultado(string numero)
{
if (_suma)
{
_resultado += Convert.ToDouble(numero);
}
else if (_resta)
{
_resultado -= Convert.ToDouble(numero);
}
else if (_multiplicacion)
{
_resultado *= Convert.ToDouble(numero);
}
else if (_division)
{
_resultado /= Convert.ToDouble(numero);
}
apagabanderas();
return _resultado;
}
public void clear()
{
_resultado = 0;
_cadena = "";
apagabanderas();
}
}
}
Autor: Eduardo Saavedra Pérez
No hay comentarios:
Publicar un comentario