using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string op = "";
Double value = 0;
bool op_flag = true;
private void num_click(object sender, EventArgs e)
{
//当高位有0的时候先清除
if(result.Text == "0")
{
if (value == 0)
{
result.Clear();
}
}
Button b = (Button)sender;
if(b.Text == ".")
{
//检查小数点,如果已经有了就不能再次输入
if (!result.Text.Contains("."))
{
result.Text = result.Text + b.Text;
}
}
else
{
result.Text = result.Text + b.Text;
}
}
private void operator_click(object sender, EventArgs e)
{
Button b = (Button)sender;
if (value != 0)
{
equal.PerformClick();
op = b.Text;
result.Text = "";
}
else
{
value = Double.Parse(result.Text);
op = b.Text;
result.Text = "";
}
}
private void equal_click(object sender, EventArgs e)
{
switch (op)
{
case "+":
result.Text = (value + Double.Parse(result.Text)).ToString();
break;
case "-":
result.Text = (value - Double.Parse(result.Text)).ToString();
break;
case "*":
result.Text = (value * Double.Parse(result.Text)).ToString();
break;
case "/":
result.Text = (value / Double.Parse(result.Text)).ToString();
break;
default:
break;
}
//连续运算时操作
value = Double.Parse(result.Text);
op = "";
}
private void del_Click(object sender, EventArgs e)
{
value = 0;
result.Text = "0";
}
private void clear_Click(object sender, EventArgs e)
{
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar.ToString())
{
case "0":
zero.PerformClick();
break;
case "1":
one.PerformClick();
break;
case "2":
two.PerformClick();
break;
case "3":
three.PerformClick();
break;
case "4":
four.PerformClick();
break;
case "5":
five.PerformClick();
break;
case "6":
six.PerformClick();
break;
case "7":
seven.PerformClick();
break;
case "8":
eight.PerformClick();
break;
case "9":
nine.PerformClick();
break;
case ".":
dot.PerformClick();
break;
case "+":
add.PerformClick();
break;
case "-":
sub.PerformClick();
break;
case "*":
multiply.PerformClick();
break;
case "/":
divide.PerformClick();
break;
case "=":
equal.PerformClick();
break;
case "ENTER":
equal.PerformClick();
break;
default:
break;
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string op = "";
Double value = 0;
bool op_flag = true;
private void num_click(object sender, EventArgs e)
{
//当高位有0的时候先清除
if(result.Text == "0")
{
if (value == 0)
{
result.Clear();
}
}
Button b = (Button)sender;
if(b.Text == ".")
{
//检查小数点,如果已经有了就不能再次输入
if (!result.Text.Contains("."))
{
result.Text = result.Text + b.Text;
}
}
else
{
result.Text = result.Text + b.Text;
}
}
private void operator_click(object sender, EventArgs e)
{
Button b = (Button)sender;
if (value != 0)
{
equal.PerformClick();
op = b.Text;
result.Text = "";
}
else
{
value = Double.Parse(result.Text);
op = b.Text;
result.Text = "";
}
}
private void equal_click(object sender, EventArgs e)
{
switch (op)
{
case "+":
result.Text = (value + Double.Parse(result.Text)).ToString();
break;
case "-":
result.Text = (value - Double.Parse(result.Text)).ToString();
break;
case "*":
result.Text = (value * Double.Parse(result.Text)).ToString();
break;
case "/":
result.Text = (value / Double.Parse(result.Text)).ToString();
break;
default:
break;
}
//连续运算时操作
value = Double.Parse(result.Text);
op = "";
}
private void del_Click(object sender, EventArgs e)
{
value = 0;
result.Text = "0";
}
private void clear_Click(object sender, EventArgs e)
{
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar.ToString())
{
case "0":
zero.PerformClick();
break;
case "1":
one.PerformClick();
break;
case "2":
two.PerformClick();
break;
case "3":
three.PerformClick();
break;
case "4":
four.PerformClick();
break;
case "5":
five.PerformClick();
break;
case "6":
six.PerformClick();
break;
case "7":
seven.PerformClick();
break;
case "8":
eight.PerformClick();
break;
case "9":
nine.PerformClick();
break;
case ".":
dot.PerformClick();
break;
case "+":
add.PerformClick();
break;
case "-":
sub.PerformClick();
break;
case "*":
multiply.PerformClick();
break;
case "/":
divide.PerformClick();
break;
case "=":
equal.PerformClick();
break;
case "ENTER":
equal.PerformClick();
break;
default:
break;
}
}
}
}