Calculator Coding
Calculator Coding
namespace WindowsFormsApplication1 { public partial class Form6 : Form { public Form6() { InitializeComponent(); } Double op1, op2; //Op1 is operand1 //Op2 is operand2 Boolean entry,equal,backNo; //Entry mentions the entry of the first operand (operand1) char operator_; //Operator_ stores the value of operator specified by the user private void _cmdDigit_7_Click(object sender, EventArgs e) { enter_digit('7'); } private void cmdCancel_Click(object sender, EventArgs e) { txtDisplay.Text = "0"; op1 = 0.0; op2 = 0.0;
} private void cmdCancelEntry_Click(object sender, EventArgs e) { txtDisplay.Text = "0"; } private void Form6_Load(object sender, EventArgs e) { op1 = 0.0; op2 = 0.0; entry = false; operator_ =' '; txtDisplay.Text = "0"; equal = false; } private void _cmdDigit_8_Click(object sender, EventArgs e) { enter_digit('8'); } private void _cmdDigit_9_Click(object sender, EventArgs e) { enter_digit('9'); } private void _cmdDigit_4_Click(object sender, EventArgs e) { enter_digit('4'); } public void enter_digit(char n) {
if (equal) { op1 = 0.0; op2 = 0.0; } if ((txtDisplay.Text == "0") || entry||equal) { txtDisplay.Text = n.ToString(); entry = false; equal = false; } else { txtDisplay.Text = txtDisplay.Text + n.ToString(); } backNo = false; } private void _cmdDigit_5_Click(object sender, EventArgs e) { enter_digit('5'); } private void _cmdDigit_6_Click(object sender, EventArgs e) { enter_digit('6'); } private void _cmdDigit_1_Click(object sender, EventArgs e) { enter_digit('1'); } private void _cmdDigit_2_Click(object sender, EventArgs e)
{ enter_digit('2'); } private void _cmdDigit_3_Click(object sender, EventArgs e) { enter_digit('3'); } private void _cmdDigit_0_Click(object sender, EventArgs e) { enter_digit('0'); } private void cmdAdd_Click(object sender, EventArgs e) { operation('+'); } private void cmdEqual_Click(object sender, EventArgs e) { if (equal) { op1 = double.Parse(txtDisplay.Text); switch (operator_) { case '+': txtDisplay.Text = (op1 + op2).ToString(); break; case '-': txtDisplay.Text = (op1 - op2).ToString(); break; case '/': txtDisplay.Text = (op1 / op2).ToString();
break; case '*': txtDisplay.Text = (op1 * op2).ToString(); break; } } else { if (op1 == 0) { txtDisplay.Text = txtDisplay.Text; } else { op2 = Double.Parse(txtDisplay.Text); switch (operator_) { case '+': txtDisplay.Text = (op1 + op2).ToString(); break; case '-': txtDisplay.Text = (op1 - op2).ToString(); break; case '/': txtDisplay.Text = (op1 / op2).ToString(); break; case '*': txtDisplay.Text = (op1 * op2).ToString(); break; } } } entry = false; equal = true;
backNo = true; } private void cmdMinus_Click(object sender, EventArgs e) { operation('-'); } public void operation(char operator__) { if (txtDisplay.Text.Length > 0) { char[] a = txtDisplay.Text.ToCharArray(); if (a[a.Length - 1] == '.') { txtDisplay.Text = txtDisplay.Text.Remove(txtDisplay.Text.Length - 1); } } if (op1 == 0.0) { op1 = Double.Parse(txtDisplay.Text); } else { op2 = Double.Parse(txtDisplay.Text); switch (operator_) { case '+': txtDisplay.Text = (op1 + op2).ToString(); break; case '-': txtDisplay.Text = (op1 - op2).ToString(); break; case '/':
txtDisplay.Text = (op1 / op2).ToString(); break; case '*': txtDisplay.Text = (op1 * op2).ToString(); break; case '%': txtDisplay.Text = (op2 / 100).ToString(); break; } backNo = true; } operator_ = operator__; op1 = Double.Parse(txtDisplay.Text); entry = true; equal = false; } private void cmdDivision_Click(object sender, EventArgs e) { operation('/'); } private void cmdMultiply_Click(object sender, EventArgs e) { operation('*'); } Double val; private void cmdPercent_Click(object sender, EventArgs e) { if (op1 == 0) { txtDisplay.Text = txtDisplay.Text; } else
{ op2 = Double.Parse(txtDisplay.Text); switch (operator_) { case '+': txtDisplay.Text = (op1 + op2).ToString(); break; case '-': txtDisplay.Text = (op1 - op2).ToString(); break; case '/': txtDisplay.Text = (op1 / op2).ToString(); break; case '*': txtDisplay.Text = (op1 * op2).ToString(); break; } } val = Double.Parse(txtDisplay.Text) / 100; txtDisplay.Text = val.ToString(); equal = true; } private void cmdSign_Click(object sender, EventArgs e) { val = Double.Parse(txtDisplay.Text); if (val != 0) val *= (-1); txtDisplay.Text = val.ToString(); } private void cmdDecimal_Click(object sender, EventArgs e) { if (!txtDisplay.Text.Contains('.'))
{ txtDisplay.Text = txtDisplay.Text + "."; } } private void button1_Click(object sender, EventArgs e) { if (!backNo) { if (txtDisplay.Text.Length > 0) { txtDisplay.Text = txtDisplay.Text.Remove(txtDisplay.Text.Length - 1); if (txtDisplay.Text.Length == 0) { txtDisplay.Text = "0"; } } } } } }