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 Scientific_Calculator
{
public partial class Form1: Form
{
private double valHolder1;
private double valHolder2;
private double result;
private bool hasDecimal = false;
private bool inputStatus = true;
private string calcFunc;
private string opr;
Double resultValue = 0;
String operationPerformed = "";
bool isOperationPerformed = false;
bool blCheck;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,
EventArgs e)
{
textBox.Enabled = true;
textBox.Text = "0";
label3.Text = "";
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;
button10.Enabled = true;
button12.Enabled = true;
button14.Enabled = true;
button15.Enabled = true;
button13.Enabled = true;
button16.Enabled = true;
button11.Enabled = true;
button30.Enabled = true;
button31.Enabled = true;
button29.Enabled = true;
button17.Enabled = true;
button20.Enabled = true;
button21.Enabled = true;
button23.Enabled = true;
button27.Enabled = true;
button22.Enabled = true;
button24.Enabled = true;
button26.Enabled = true;
}
private void button23_Click(object sender,
EventArgs e) //√
{
label3.Text = "sqrt(" + textBox.Text +
")";
if (textBox.Text.Length != 0)
{
resultValue = System.Double.Parse(
textBox.Text);
resultValue = System.Math.Sqrt(
resultValue);
textBox.Text = resultValue.ToString();
opr = "√";
hasDecimal = false;
}
}
private void button30_Click(object sender,
EventArgs e) //<-
{
string str;
int loc;
if (textBox.Text.Length > 0)
{
str = textBox.Text.Substring(
textBox.Text.Length - 1);
if (str == ".")
{
hasDecimal = false;
}
loc = textBox.Text.Length;
textBox.Text = textBox.Text.Remove(
loc - 1, 1);
}
}
private void button17_Click(object sender,
EventArgs e) //+-
{
textBox.Text = Convert.ToString(-
Convert.ToInt32(textBox.Text));
inputStatus = false;
}
private void button27_Click(object sender,
EventArgs e) //x2
{
label3.Text = "sqr(" + textBox.Text +
")";
textBox.Text = Convert.ToString(
Convert.ToInt32(textBox.Text) *
Convert.ToInt32(textBox.Text));
inputStatus = false;
}
private void button_click(object sender,
EventArgs e) //number buttons
{
if ((textBox.Text == "0") || (
isOperationPerformed))
textBox.Clear();
isOperationPerformed = false;
Button button = (Button) sender;
if (button.Text == ".")
{
if (!textBox.Text.Contains("."))
textBox.Text = textBox.Text +
button.Text;
}
else
textBox.Text = textBox.Text +
button.Text;
label3.Text = textBox.Text;
}
private void operator_click(object sender,
EventArgs e) //+,-,/,x,% buttons
{
Button button = (Button) sender;
if (resultValue != 0)
{
button12.PerformClick();
operationPerformed = button.Text;
label3.Text = resultValue.ToString() +
" " + operationPerformed;
isOperationPerformed = true;
}
else
{
operationPerformed = button.Text;
resultValue = Double.Parse(
textBox.Text);
label3.Text = resultValue + " " +
operationPerformed;
isOperationPerformed = true;
}
}
private void button29_Click(object sender,
EventArgs e) //c
{
textBox.Text = "";
label3.Text = "";
}
private void button31_Click(object sender,
EventArgs e) //ce
{
textBox.Text = "0";
resultValue = 0;
label3.Text = "";
textBox.Text = string.Empty;
}
private void button12_Click(object sender,
EventArgs e) //=
{
switch (operationPerformed)
{
case "+":
textBox.Text = (resultValue +
Double.Parse(textBox.Text)).ToString();
break;
case "-":
textBox.Text = (resultValue -
Double.Parse(textBox.Text)).ToString();
break;
case "÷":
textBox.Text = (resultValue /
Double.Parse(textBox.Text)).ToString();
break;
case "x":
textBox.Text = (resultValue *
Double.Parse(textBox.Text)).ToString();
break;
case "%":
textBox.Text = (resultValue %
Double.Parse(textBox.Text)).ToString();
break;
case "^":
textBox.Text = Convert.ToString(
System.Math.Pow(Convert.ToDouble(
resultValue), Convert.ToDouble(
textBox.Text)));
break;
default:
break;
}
resultValue = Double.Parse(textBox
.Text);
label3.Text = "";
}
private void textBox_TextChanged(
object sender, EventArgs e)
{}
private void label1_Click(object sender,
EventArgs e)
{}
private void textBox1_TextChanged(
object sender, EventArgs e)
{}
private void copyToolStripMenuItem_Click
(object sender, EventArgs e)
{
Clipboard.SetText(textBox.Text);
}
private void pasteToolStripMenuItem_Click
(object sender, EventArgs e)
{
textBox.Text += Clipboard.GetText();
}
private void Form1_KeyPress(object sender,
KeyPressEventArgs e)
{
if (blCheck == true)
{
textBox.Text = " ";
}
textBox.Text += e.KeyChar;
blCheck = false;
}
private void label3_Click(object sender,
EventArgs e)
{}
private void exitToolStripMenuItem_Click
(object sender, EventArgs e)
{
Application.Exit();
}
private void semiScientificCalculatorToolStripMenuItem_Click
(object sender, EventArgs e)
{}
private void button18_Click(object sender,
EventArgs e) //log10
{
if (textBox.Text.Length != 0)
{
resultValue = System.Double.Parse(
textBox.Text);
resultValue = System.Math.Log10(
resultValue);
textBox.Text = resultValue.ToString();
hasDecimal = false;
}
}
private void button19_Click(object sender,
EventArgs e) //off
{
textBox.Enabled = false;
textBox.Text = "";
label3.Text = "";
button1.Enabled = false;
button2.Enabled = false;
button3.Enabled = false;
button4.Enabled = false;
button5.Enabled = false;
button6.Enabled = false;
button7.Enabled = false;
button8.Enabled = false;
button9.Enabled = false;
button10.Enabled = false;
button12.Enabled = false;
button14.Enabled = false;
button15.Enabled = false;
button13.Enabled = false;
button16.Enabled = false;
button11.Enabled = false;
button30.Enabled = false;
button31.Enabled = false;
button29.Enabled = false;
button17.Enabled = false;
button20.Enabled = false;
button21.Enabled = false;
button23.Enabled = false;
button27.Enabled = false;
button22.Enabled = false;
button24.Enabled = false;
button26.Enabled = false;
button32.Enabled = false;
button33.Enabled = false;
radioButton1.Enabled = false;
radioButton2.Enabled = false;
}
private void button25_Click(object sender,
EventArgs e) //on
{
textBox.Enabled = true;
textBox.Text = "0";
label3.Text = "";
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;
button10.Enabled = true;
button12.Enabled = true;
button14.Enabled = true;
button15.Enabled = true;
button13.Enabled = true;
button16.Enabled = true;
button11.Enabled = true;
button30.Enabled = true;
button31.Enabled = true;
button29.Enabled = true;
button17.Enabled = true;
button20.Enabled = true;
button21.Enabled = true;
button23.Enabled = true;
button27.Enabled = true;
button22.Enabled = true;
button24.Enabled = true;
button26.Enabled = true;
button32.Enabled = true;
button33.Enabled = true;
radioButton1.Enabled = true;
radioButton2.Enabled = true;
}
private void digitalScientificCalculatorToolStripMenuItem_Click
(object sender, EventArgs e)
{
MessageBox.Show(
"Digital Scientific Calculator\n(using Visual Studio 2010, C#)\nby Asri Azman"
);
}
private void button24_Click(object sender,
EventArgs e) //log
{
label3.Text = "log(" + textBox.Text +
")";
if (textBox.Text.Length != 0)
{
resultValue = System.Double.Parse(
textBox.Text);
resultValue = System.Math.Log10(
resultValue);
textBox.Text = resultValue.ToString();
hasDecimal = false;
}
}
private void button21_Click(object sender,
EventArgs e) //sin
{
label3.Text = "sind(" + textBox.Text +
")";
if (radioButton1.Checked == true)
{
textBox.Text = Convert.ToString(
System.Math.Sin(Convert.ToDouble(
textBox.Text)));
}
else
{
textBox.Text = Convert.ToString(
System.Math.Sin((Convert.ToDouble(
System.Math.PI) / 180) * (
Convert.ToDouble(textBox.Text)
)));
}
}
private void button20_Click(object sender,
EventArgs e) //cos
{
label3.Text = "cosd(" + textBox.Text +
")";
if (radioButton1.Checked == true)
{
textBox.Text = Convert.ToString(
System.Math.Cos(Convert.ToDouble(
textBox.Text)));
}
else
{
textBox.Text = Convert.ToString(
System.Math.Cos((Convert.ToDouble(
System.Math.PI) / 180) * (
Convert.ToDouble(textBox.Text)
)));
}
}
private void button22_Click(object sender,
EventArgs e) //tan
{
label3.Text = "tand(" + textBox.Text +
")";
if (radioButton1.Checked == true)
{
textBox.Text = Convert.ToString(
System.Math.Tan(Convert.ToDouble(
textBox.Text)));
}
else
{
textBox.Text = Convert.ToString(
System.Math.Tan((Convert.ToDouble(
System.Math.PI) / 180) * (
Convert.ToDouble(textBox.Text)
)));
}
}
private void button28_Click(object sender,
EventArgs e) //round
{
label3.Text = textBox.Text +
"round";
if (textBox.Text.Length != 0)
{
label3.Text = textBox.Text +
"round";
resultValue = System.Double.Parse(
textBox.Text);
resultValue = System.Math.Round(
resultValue);
textBox.Text = resultValue.ToString();
hasDecimal = false;
}
}
private void button33_Click(object sender,
EventArgs e)
{
label3.Text = "cube(" + textBox.Text +
")";
textBox.Text = Convert.ToString(
Convert.ToInt32(textBox.Text) *
Convert.ToInt32(textBox.Text) *
Convert.ToInt32(textBox.Text));
inputStatus = false;
}
private void button26_Click(object sender,
EventArgs e)
{}
}
}It will look like this: