All pastes #940839 Raw Edit

calculator

public text v1 · immutable
·published 2008-03-13 09:53 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace calculator
{
    public partial class calculator : Form
    {
        public calculator()
        {
            InitializeComponent();
        }
        private double valHolder1;
        private double valHolder2;
        private double tmpValue;
        private bool hasDecimal = false;
        private bool inputStatus = true;
        private string calcFunc;

        int fib(int m)
        {
            if (m <= 1)
            {
                return m;
            }
            return fib(m - 1) + fib(m - 2);
        }

        int fac(int n)
        {
            if (n == 1)
                return 1;
            else
                return (n * fac(n-1));
        }


        #region "Number Buttons"
        private void button3_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_3.Text;
            }
            else
            {
                tbInput.Text = bttn_3.Text;
                inputStatus = true;
            }
        }

        private void bttn_0_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                if (tbInput.Text.Length >= 1)
                {
                    tbInput.Text += bttn_0.Text;
                }
            }
        }

        private void bttn_1_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_1.Text;
            }
            else
            {
                tbInput.Text = bttn_1.Text;
                inputStatus = true;
            }

        }

        private void bttn_2_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_2.Text;
            }
            else
            {
                tbInput.Text = bttn_2.Text;
                inputStatus = true;
            }
        }

        private void bttn_3_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_3.Text;
            }
            else
            {
                tbInput.Text = bttn_3.Text;
                inputStatus = true;
            }
        }

        private void bttn_4_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_4.Text;
            }
            else
            {
                tbInput.Text = bttn_4.Text;
                inputStatus = true;
            }
        }

        private void bttn_5_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_5.Text;
            }
            else
            {
                tbInput.Text = bttn_5.Text;
                inputStatus = true;
            }
        }

        private void bttn_6_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_6.Text;
            }
            else
            {
                tbInput.Text = bttn_6.Text;
                inputStatus = true;
            }
        }

        private void bttn_7_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_7.Text;
            }
            else
            {
                tbInput.Text = bttn_7.Text;
                inputStatus = true;
            }
        }

        private void bttn_8_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_8.Text;
            }
            else
            {
                tbInput.Text = bttn_8.Text;
                inputStatus = true;
            }
        }

        private void bttn_9_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                tbInput.Text += bttn_9.Text;
            }
            else
            {
                tbInput.Text = bttn_9.Text;
                inputStatus = true;
            }
        }
        #endregion

        private void bttn_dot_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                if (!hasDecimal)
                {
                    if (tbInput.Text.Length != 0)
                    {
                        if (tbInput.Text != "0")
                        {
                            tbInput.Text += bttn_dot.Text;
                            hasDecimal = true;
                        }
                    }
                    else
                    {
                        tbInput.Text = "0,";
                    }
                }
            }
        }

        private void bttn_fib_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                int b;
                int number;

                number = System.Int32.Parse(tbInput.Text);
                b = fib(number);
                tbInput.Text = b.ToString();
                hasDecimal = false;
            }
        }
        
        private void bttn_fac_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                int a;
                int number;

                number = System.Int32.Parse(tbInput.Text);
                a = facultionary(number);
                tbInput.Text = a.ToString();
                hasDecimal = false;
            }
        }

        private void bttn_multiply_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
            }
            else
            {
                Calculatetotals();
            }
            calcFunc = "Multiply";
            hasDecimal = false;
        }

        private void bttn_sqrt_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
                else
                {
                    Calculatetotals();
                }
                calcFunc = "sqrt";
                hasDecimal = false;
            }
        }

        private void bttn_substract_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
                else
                {
                    Calculatetotals();
                }
                calcFunc = "Substract";
                hasDecimal = false;
            }
        }

        private void bttn_add_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
                else
                {
                    Calculatetotals();
                }
                calcFunc = "Add";
                hasDecimal = false;
            }
        }

        private void bttn_powerof_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
                else
                {
                    Calculatetotals();
                }
                calcFunc = "Power";
                hasDecimal = false;
            }
        
        }

        private void bttn_divide_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                if (calcFunc == string.Empty)
                {
                    valHolder1 = System.Double.Parse(tbInput.Text);
                    tbInput.Text = string.Empty;
                }
                else
                {
                    Calculatetotals();
                }
                calcFunc = "Divide";
                hasDecimal = false;
            }
        }

        private void bttn_1n_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0)
            {
                tmpValue = System.Double.Parse(tbInput.Text);
                tmpValue = 1 / tmpValue;
                tbInput.Text = tmpValue.ToString();
                hasDecimal = false;
            }
        }

        private void bttn_equal_Click(object sender, EventArgs e)
        {
            if (tbInput.Text.Length != 0 && valHolder1 != 0)
            {
                Calculatetotals();
                calcFunc = string.Empty;
                hasDecimal = false;
            }

        }

        private void bttn_ce_Click(object sender, EventArgs e)
        {
            tbInput.Text = string.Empty;
            valHolder1 = 0;
            valHolder2 = 0;
            hasDecimal = false;
        }

        private void bttn_c_Click(object sender, EventArgs e)
        {
            tbInput.Text = string.Empty;
            hasDecimal = false;
        }

        private void numbswitch_Click(object sender, EventArgs e)
        {
            if (inputStatus)
            {
                if (tbInput.Text.Length > 0)
                {
                    valHolder1 = -1 * System.Double.Parse(tbInput.Text);
                    tbInput.Text = valHolder1.ToString();
                }
            }
        }

        private void Calculatetotals()
        {
            valHolder2 = System.Double.Parse(tbInput.Text);
            switch (calcFunc)
            {
                case "Add":
                    valHolder1 = valHolder1 + valHolder2;
                    break;
                case "Substract":
                    valHolder1 = valHolder1 - valHolder2;
                    break;
                case "Multiply":
                    valHolder1 = valHolder1 * valHolder2;
                    break;
                case "Divide":
                    valHolder1 = valHolder1 / valHolder2;
                    break;
                case "Power":
                    valHolder1 = System.Math.Pow(valHolder1, valHolder2);
                    break;
                case "sqrt":
                    valHolder1 = System.Math.Sqrt(valHolder1);
                    break;
            }
            tbInput.Text = valHolder1.ToString();
            inputStatus = false;
        }
    }
}