谁有C#计算器的源码?
最好是带键盘敲击的那种~
谢谢
推荐阅读
using system;
using system.windows.forms;
using system.drawing;
public class win:form {
button[] b = new button[10];
button bdot,bplus,bsub,bmul,bdiv,bequ,bclr;
panel pancalc;
textbox txtcalc;
double dblacc;
double dblsec;
bool blnclear,blnfrstopen;
string stroper;
public win() {
try {
this.text="calculator";
pancalc=new panel();
txtcalc = new textbox();
txtcalc.location = new point(10,10);
txtcalc.size=new size(150,10);
txtcalc.readonly=true;
txtcalc.righttoleft=righttoleft.yes;
pancalc.size=new size(200,200);
pancalc.backcolor=color.aqua;
pancalc.controls.add(txtcalc);
addbuttons(pancalc);
this.size=new size(200,225);
this.controls.add(pancalc);
dblacc=0;
dblsec=0;
blnfrstopen=true;
blnclear=false;
stroper=new string(=,1);
}
catch (exception e) {
console.writeline("error ...... " + e.stacktrace);
}
}
private void addbuttons(panel p) {
for (int i=0;i<=9;i++) {
b[i]=new button();
b[i].text=convert.tostring(i);
b[i].size=new size(25,25);
b[i].backcolor=color.white;
b[i].click+=new eventhandler(btn_clk);
p.controls.add(b[i]);
}
b[0].location=new point(10,160);
b[1].location=new point(10,120);
b[4].location=new point(10,80);
b[7].location=new point(10,40);
b[2].location=new point(50,120);
b[5].location=new point(50,80);
b[8].location=new point(50,40);
b[3].location=new point(90,120);
b[6].location=new point(90,80);
b[9].location=new point(90,40);
bdot=new button();
bdot.size=new size(25,25);
bdot.location=new point(50,160);
bdot.backcolor=color.white;
bdot.text=".";
bdot.click+=new eventhandler(btn_clk);
bplus=new button();
bplus.size=new size(25,25);
bplus.location=new point(130,160);
bplus.backcolor=color.white;
bplus.text="+";
bplus.click+=new eventhandler(btn_oper);
bsub=new button();
bsub.size=new size(25,25);
bsub.location=new point(130,120);
bsub.backcolor=color.white;
bsub.text="-";
bsub.click+=new eventhandler(btn_oper);
bmul=new button();
bmul.size=new size(25,25);
bmul.location=new point(130,80);
bmul.backcolor=color.white;
bmul.text="*";
bmul.click+=new eventhandler(btn_oper);
bdiv=new button();
bdiv.size=new size(25,25);
bdiv.location=new point(130,40);
bdiv.backcolor=color.white;
bdiv.text="/";
bdiv.click+=new eventhandler(btn_oper);
bequ=new button();
bequ.size=new size(25,25);
bequ.location=new point(90,160);
bequ.backcolor=color.white;
bequ.text="=";
bequ.click+=new eventhandler(btn_equ);
bclr=new button();
bclr.size=new size(20,45);
bclr.location=new point(170,40);
bclr.backcolor=color.orange;
bclr.text="ac";
bclr.click+=new eventhandler(btn_clr);
p.controls.add(bdot);
p.controls.add(bplus);
p.controls.add(bsub);
p.controls.add(bmul);
p.controls.add(bdiv);
p.controls.add(bequ);
p.controls.add(bclr);
}
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;
}
private static void main() {
application.run(new win());
}
private void btn_oper(object obj,eventargs ea) {
button tmp=(button)obj;
stroper=tmp.text;
if (blnfrstopen)
dblacc=dblsec;
else
calc();
blnfrstopen=false;
blnclear=true;
}
private void btn_clr(object obj,eventargs ea) {
clear();
}
private void btn_equ(object obj,eventargs ea) {
calc();
}
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;
}
private void clear() {
dblacc=0;
dblsec=0;
blnfrstopen=true;
txtcalc.text="";
txtcalc.focus();
}
}


讨论区