C#写计算器的时候遇到一个问题请高手帮忙解决一下代码写下\
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Cale
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
foreach (Control con in Controls)
{
if (con is Button)
{
con.Click += new EventHandler(Button_CLick);
}
}
}
private double a, b, sum;
private string p; private void Button_CLick(object sender, EventArgs e)
{
switch ((((Button)sender).Text))
{
default:
{
textBox1.Text += textBox1.Text;
break;
}
case "*":
{
a = int.Parse((((Button)sender).Text));
p=(((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "+":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "-":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "/":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "=":
{
if (p == "+")
{
sum = a + b;
textBox1.Text = sum.ToString();
}
if (p == "-")
{
sum = a - b;
textBox1.Text =sum.ToString();
}
if (p == "*")
{
sum = a * b;
textBox1.Text = sum.ToString() ;
}
if (p == "/")
{
textBox1.Text = (a / b).ToString();
}
break;
{
}
} }
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Cale
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
foreach (Control con in Controls)
{
if (con is Button)
{
con.Click += new EventHandler(Button_CLick);
}
}
}
private double a, b, sum;
private string p; private void Button_CLick(object sender, EventArgs e)
{
switch ((((Button)sender).Text))
{
default:
{
textBox1.Text += textBox1.Text;
break;
}
case "*":
{
a = int.Parse((((Button)sender).Text));
p=(((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "+":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "-":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "/":
{ a = int.Parse((((Button)sender).Text));
p = (((Button)sender).Text); ((Button)sender).Text = "";
break;
}
case "=":
{
if (p == "+")
{
sum = a + b;
textBox1.Text = sum.ToString();
}
if (p == "-")
{
sum = a - b;
textBox1.Text =sum.ToString();
}
if (p == "*")
{
sum = a * b;
textBox1.Text = sum.ToString() ;
}
if (p == "/")
{
textBox1.Text = (a / b).ToString();
}
break;
{
}
} }
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Cale
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
foreach (Control con in Controls)
{
if (con is Button)
{
con.Click += new EventHandler(Button_CLick);
}
}
}
private double a, b, sum;
private string p;
private bool count = false;//输入数据
private bool pic = true;//是否已输入点
private bool _num = false;//是否已输入算术符
private void Button_CLick(object sender, EventArgs e)
{
switch ((((Button)sender).Text))
{
default:
{
textBox1.Text += (((Button)sender).Text);
count = true;
break;
}
case ".":
{
if (pic)
{
textBox1.Text += (((Button)sender).Text);
pic = false;
}
break;
}
case "*":
{
if (count != true)
{
break;
}
try
{
a = Convert.ToDouble(textBox1.Text);
}
catch
{
break;
}
p=(((Button)sender).Text); textBox1.Text = "";
_num = true;
break;
}
case "+":
{
if (count!=true)
{
break;
}
try
{
a = Convert.ToDouble(textBox1.Text);
}
catch
{
break;
}
p = (((Button)sender).Text); textBox1.Text = "";
_num = true;
break;
}
case "-":
{
if (count != true)
{
break;
}
try
{
a = Convert.ToDouble(textBox1.Text);
}
catch
{
break;
}
p = (((Button)sender).Text); textBox1.Text = "";
_num = true;
break;
}
case "/":
{
if (count != true)
{
break;
}
try
{
a = Convert.ToDouble(textBox1.Text);
}
catch
{
break;
}
p = (((Button)sender).Text);
if (a.Equals(0.0))
{
System.Windows.Forms.MessageBox.Show("除数不能为零", "华仔提示", MessageBoxButtons.OKCancel);
break;
}
textBox1.Text = "";
_num = true;
break;
}
case "=":
{
if (count != true || _num!=true)
{
textBox1.Text = "";
break;
} try
{
b = Convert.ToDouble(textBox1.Text);
}
catch
{
break;
}
if (p == "+")
{
sum = a + b;
textBox1.Text = sum.ToString();
}
if (p == "-")
{
sum = a - b;
textBox1.Text =sum.ToString();
}
if (p == "*")
{
sum = a * b;
textBox1.Text = sum.ToString() ;
a = sum;
}
if (p == "/")
{
sum = (a / b);
textBox1.Text = sum.ToString();
a = sum;
}
pic = true;
_num = false;
break;
} }
}
}
}