C#做一个计算器
最好有源码的 ,谢谢邮箱:245462951@qq.com
追问:我想把它们的 式子放在一个textBox 里, 计算出来的效果为 :11.1+11=22.1 这样。怎样才能避免 点出两次+号, 代码是:每个按钮是 txtbox.text +="1"; 这样式的
最好有源码的 ,谢谢邮箱:245462951@qq.com
追问:我想把它们的 式子放在一个textBox 里, 计算出来的效果为 :11.1+11=22.1 这样。怎样才能避免 点出两次+号, 代码是:每个按钮是 txtbox.text +="1"; 这样式的
答案:老师布置的题吧,自己做吧,以后路还长。以下是思路之一:
我们分两部份来实现程序,
第一部份.程序界面
1,以下控件表
控件类型 Name Text
form calcForm 计算器
button button1 0
.....
button10 9
bDot .(小数点) 小数点按钮
bPlus +(加号) 加号按钮
bSub -(减号) 减号按钮
bMul *(乘号) 乘号按钮
bDiv /(除号) 除号按钮
bEqu =(等号) 等号按钮
bClr AC 清除按钮
textBox txtCalc (空值) 用来显示输入及输出结果
第二部份,程序结构
1,定义以下变量
Double dblAcc; //运算数A
Double dblSec; //运算数B
bool blnClear,blnFrstOpen;//布尔类型用来判断清除与否,以及第一个显示字符
String strOper;//通过获取strOper的值来决定运算+,-,*,/,=
2,用以下方法来实现按钮的动作
例: bDot.click+=net EventHandler(btn_clk);//EventHandler类是事件代表类,用来注册事件的处理方法.
//第一个参数是object类型,指向发出事件的对象;
//第二个参数是EventArgs类型,包含了关于这个事件的数据
3,用以下方法来判断运算以及运算操作
private void calc(){
switch(strOper){
case "+":
dblAcc+=dblSec;//加法运算
break;
case "-":
dblAcc-=dblSec;//减法运算
break;
case "*":
dblAcc*=dblSec;//乘法运算
break;
case "/":
dblAcc/=dblSec;//除法运算
break;
}
strOper="=";//等号运算
blnFrstOpen=true;
txtCalc.Text=Convert.ToString(dblAcc);//将运算结果转换成字符型,并输出结果
dblSec=dblAcc;
}
4,小数点运算
//先判断是否已经按了小数点按钮,如果按了,最0.x来代替运算变量,并且将转换成Double数型数值
private void btn_clk(object obj,EventArgs ea){
if(blnClear)
txtCalc.Text="";
Button b3=(Button)obj;
txtCalc.Text+=b3.Text;
if(txtCalc.Text==".")
txtCalc.Text="0.";
dblSec=Convert.ToDouble(txtCalc.Text);
blnClear=false;
}科学计算器(源代码)
http://www.zzzyk.com/grandydong/archive/2007/03/06/665435.html
呵呵 建议你看看大话设计模式 第一章抽象工厂模式 好像有这个例子
http://www.verycd.com/topics/2728696/
我又源码哈!马上发给你哈!
是不是要上面有数字按钮,下面一个文本框,按上面的按钮就显示计算式在文本框里面。
呵呵 你要是打算搞这行,就从简单的程序开始吧,尽量自己去完成!
上一个:C#读取二进制文件
下一个:C#中有类的继承性吗?