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