请各种高手帮忙做个计算器.... 就是windows系统上自带的计算器我是C#初学者,是一名北大青鸟的学生,请高手帮我讲讲思路。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://search.download.csdn.net/search/c%23%20%E8%AE%A1%E7%AE%97%E5%99%A8 http://www.dnbcw.com/biancheng/c/fdmt69777.htmlhttp://download.csdn.net/source/1706464 public class Operation { private double _numberA = 0; private double _numberB = 0; public double NumberA { get { return _numberA; } set { _numberA = value; } } public double NumberB { get { return _numberB; } set { _numberB = value; } } public virtual double GetResult() { double result = 0; return result; } public static string checkNumberInput(string currentNumber, string inputString) { string result = ""; if (inputString == ".") { if (currentNumber.IndexOf(".") < 0) { if (currentNumber.Length == 0) result = "0" + inputString; else result = currentNumber + inputString; } } else if (currentNumber == "0") { result = inputString; } else { result = currentNumber + inputString; } return result; } } class OperationAdd : Operation { public override double GetResult() { double result = 0; result = NumberA + NumberB; return result; } } class OperationSub : Operation { public override double GetResult() { double result = 0; result = NumberA - NumberB; return result; } } class OperationMul : Operation { public override double GetResult() { double result = 0; result = NumberA * NumberB; return result; } } class OperationDiv : Operation { public override double GetResult() { double result = 0; if (NumberB == 0) throw new Exception("除数不能为0。"); result = NumberA / NumberB; return result; } } class OperationSqr : Operation { public override double GetResult() { double result = 0; result = NumberB * NumberB; return result; } } class OperationSqrt : Operation { public override double GetResult() { double result = 0; if (NumberB < 0) throw new Exception("负数不能开平方根。"); result = Math.Sqrt(NumberB); return result; } } class OperationReverse : Operation { public override double GetResult() { double result = 0; result = -NumberB; return result; } } public class OperationFactory { public static Operation createOperate(string operate) { Operation oper = null; switch (operate) { case "+": { oper = new OperationAdd(); break; } case "-": { oper = new OperationSub(); break; } case "*": { oper = new OperationMul(); break; } case "/": { oper = new OperationDiv(); break; } case "sqr": { oper = new OperationSqr(); break; } case "sqrt": { oper = new OperationSqrt(); break; } case "+/-": { oper = new OperationReverse(); break; } } return oper; } private void buttonAdd_Click(object sender, EventArgs e) { if (txtShow.Text != "") { oper = OperationFactory.createOperate(((Button)sender).Text); oper.NumberA = Convert.ToDouble(txtShow.Text); bOperate = true; } } private void buttonEqual_Click(object sender, EventArgs e) { if (txtShow.Text != "") { if (((Button)sender).Text != "=") { oper = OperationFactory.createOperate(((Button)sender).Text); } oper.NumberB = Convert.ToDouble(txtShow.Text); txtShow.Text = oper.GetResult().ToString(); bOperate = true; } } 5楼的同学,我刚学,get set 的用法还不明白。能不能讲下思路 我自己做的namespace WindowsApplication1{ public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { double A, B; string C=comboBox1.Text; if (textBox1.Text == "") { MessageBox.Show("请输入第一个数", "错误提示"); } else if (comboBox1.Text == "") { MessageBox.Show("请选择运算符", "错误提示"); } else if (textBox2.Text == "") { MessageBox.Show("请输入第二个数", "错误提示"); } A = Convert.ToDouble(textBox1.Text); B = Convert.ToDouble(textBox2.Text); switch (C) { case "+": textBox3.Text = Convert.ToString((A + B)); break; case "-": textBox3.Text = Convert.ToString((A - B)); break; case "*": textBox3.Text = Convert.ToString((A * B)); break; case "/": textBox3.Text = Convert.ToString((A / B)); break; } } private void button2_Click(object sender, EventArgs e) { DialogResult button2 = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (button2 == DialogResult.Yes) { Application.Exit(); } } } } 如何让gridview在页面重载时不自动刷新 测试题:静态构造函数执行了几次?为什么? 有关字符串数组的两个问题 toolStrip控件问题 急~~大家帮看看,简单的问题! 关于类继承接口的问题 如何将VBScript中的数组作为参数传入c#? C#如何产生随机数字的程序 求一c# winform日历控件 如何調用兩個服務? 关于statusStrip控件边角样式的问题 幼儿软件方面的问题
{
private double _numberA = 0;
private double _numberB = 0;
public double NumberA
{
get
{
return _numberA;
}
set
{
_numberA = value;
}
}
public double NumberB
{
get
{
return _numberB;
}
set
{
_numberB = value;
}
}
public virtual double GetResult()
{
double result = 0;
return result;
}
public static string checkNumberInput(string currentNumber, string inputString)
{
string result = "";
if (inputString == ".")
{
if (currentNumber.IndexOf(".") < 0)
{
if (currentNumber.Length == 0)
result = "0" + inputString;
else
result = currentNumber + inputString;
}
}
else if (currentNumber == "0")
{
result = inputString;
}
else
{
result = currentNumber + inputString;
} return result;
}
}
class OperationAdd : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberA + NumberB;
return result;
}
}
class OperationSub : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberA - NumberB;
return result;
}
}
class OperationMul : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberA * NumberB;
return result;
}
}
class OperationDiv : Operation
{
public override double GetResult()
{
double result = 0;
if (NumberB == 0)
throw new Exception("除数不能为0。");
result = NumberA / NumberB;
return result;
}
}
class OperationSqr : Operation
{
public override double GetResult()
{
double result = 0;
result = NumberB * NumberB;
return result;
}
}
class OperationSqrt : Operation
{
public override double GetResult()
{
double result = 0;
if (NumberB < 0)
throw new Exception("负数不能开平方根。");
result = Math.Sqrt(NumberB);
return result;
}
}
class OperationReverse : Operation
{
public override double GetResult()
{
double result = 0;
result = -NumberB;
return result;
}
}
public class OperationFactory
{
public static Operation createOperate(string operate)
{
Operation oper = null;
switch (operate)
{
case "+":
{
oper = new OperationAdd();
break;
}
case "-":
{
oper = new OperationSub();
break;
}
case "*":
{
oper = new OperationMul();
break;
}
case "/":
{
oper = new OperationDiv();
break;
}
case "sqr":
{
oper = new OperationSqr();
break;
}
case "sqrt":
{
oper = new OperationSqrt();
break;
}
case "+/-":
{
oper = new OperationReverse();
break;
}
} return oper;
}
private void buttonAdd_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
oper = OperationFactory.createOperate(((Button)sender).Text);
oper.NumberA = Convert.ToDouble(txtShow.Text);
bOperate = true;
}
}
private void buttonEqual_Click(object sender, EventArgs e)
{
if (txtShow.Text != "")
{
if (((Button)sender).Text != "=")
{
oper = OperationFactory.createOperate(((Button)sender).Text);
}
oper.NumberB = Convert.ToDouble(txtShow.Text);
txtShow.Text = oper.GetResult().ToString();
bOperate = true;
}
}
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
} private void textBox1_TextChanged(object sender, EventArgs e)
{ } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{ } private void textBox2_TextChanged(object sender, EventArgs e)
{
} private void button1_Click(object sender, EventArgs e)
{ double A, B;
string C=comboBox1.Text;
if (textBox1.Text == "")
{
MessageBox.Show("请输入第一个数", "错误提示");
}
else if (comboBox1.Text == "")
{
MessageBox.Show("请选择运算符", "错误提示");
} else if (textBox2.Text == "")
{
MessageBox.Show("请输入第二个数", "错误提示");
}
A = Convert.ToDouble(textBox1.Text);
B = Convert.ToDouble(textBox2.Text);
switch (C)
{
case "+":
textBox3.Text = Convert.ToString((A + B));
break;
case "-":
textBox3.Text = Convert.ToString((A - B));
break;
case "*":
textBox3.Text = Convert.ToString((A * B));
break;
case "/":
textBox3.Text = Convert.ToString((A / B));
break;
}
} private void button2_Click(object sender, EventArgs e)
{
DialogResult button2 = MessageBox.Show("确定要退出吗?", "提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (button2 == DialogResult.Yes) { Application.Exit(); }
} }
}