domingo, 18 de septiembre de 2016

Práctica 8. Calculadora básica Versión 2.0


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 Practica_8
{
    public partial class FrmCalculadora : Form
    {
        Calculos misCalculos= new Calculos();
        public FrmCalculadora()
        {
            InitializeComponent();
        }

        private void button18_Click(object sender, EventArgs e)
        {
            misCalculos.clear();
            txtDisplay.Text = "0";
        }

        private void btn8_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("8");
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("1");
        }

        private void btn2_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("2");
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("3");
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("4");
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("5");
        }

        private void btn6_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("6");
        }

        private void btn7_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("7");
        }

        private void btn9_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("9");
        }

        private void btn0_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("0");
        }

        private void btn000_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena("000");
        }

        private void btnPunto_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = misCalculos.concatena(".");
        }

        private void btnMas_Click(object sender, EventArgs e)
        {
            misCalculos.suma(txtDisplay.Text);
        }

        private void btnResta_Click(object sender, EventArgs e)
        {
            misCalculos.resta(txtDisplay.Text);
        }

        private void btnPor_Click(object sender, EventArgs e)
        {
            misCalculos.multilicacion(txtDisplay.Text);
        }

        private void btnEntre_Click(object sender, EventArgs e)
        {
            misCalculos.divicion(txtDisplay.Text);
        }

        private void btnIgual_Click(object sender, EventArgs e)
        {
            //si concatenamos una cadena vacia a un numero
            //automaticamentela expresion se convierte en cadena
            txtDisplay.Text = ""+misCalculos.resultado(txtDisplay.Text);
        }
    }
}

Clase:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Practica_8
{
    class Calculos
    {
        private string _cadenas;
        private double _resultado;
        private bool _suma;
        private bool _resta;
        private bool _divicion;
        private bool _multiplicacion;

        public Calculos()
        {
            _cadenas = "";
        }
        private void apagaBanderas()
        {
            _suma = false;
            _resta = false;
            _multiplicacion = false;
            _divicion = false;
        }
        public string concatena(string cadena)
        {
            _cadenas += cadena;
            return _cadenas;
        }
        public void suma(string cadena)
        {
            _resultado = Convert.ToDouble(cadena);
            _suma = true;
            _cadenas = "";
        }
        public void resta(string cadena)
        {
            _resultado = Convert.ToDouble(cadena);
            _resta = true;
            _cadenas = "";
        }
        public void divicion(string cadena)
        {
            _resultado = Convert.ToDouble(cadena);
            _divicion = true;
            _cadenas = "";
        }
        public void multilicacion(string cadena)
        {
            _resultado = Convert.ToDouble(cadena);
            _multiplicacion = true;
            _cadenas = "";
        }
        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 (_divicion)
            {
                _resultado /= Convert.ToDouble(numero);
            }
            apagaBanderas();
            return _resultado;
        }
        public void clear()
        {
            _resultado = 0;
            _cadenas = "";
            apagaBanderas();
        }
    }
}

No hay comentarios:

Publicar un comentario