rendered paste bodyusing 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;
}
}
}