如何使用c#实现简单计算器

以下代码可作为初学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;				breakcase "-":				dblAcc-=dblSec;				breakcase "*":				dblAcc*=dblSec;				breakcase "/":				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();	}}

posted @ 2014-05-24 12:36  zzg168  阅读(290)  评论(0)    收藏  举报