第一个简单的 计算器

设计步骤:
(1)设计应用程序界面
   新建windows应用程序项目,在windows窗体上添加一个文本框控件TextBox1,其余的控件均可在程序运行时自动建立。
(2)编写程序代码
   Form.cs中程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace windows_application
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //申明私有成员变量
        private Button[] BT_NUM;
        private Button[] Operator;
        private string sOper; bool bDot, bEqu;
        private double dblAcc, dblDes, dblResult;

        //添加窗体的Load事件
        private void Form1_Load_1(object sender, EventArgs e)
        {
            BT_NUM = new Button[10];  //10个数字按钮
            Operator = new Button[6]; //6个符号按钮
            int i;
            for (i = 0; i <= 9; i++)  //设置数字按钮的位置与属性、事件
            {
                BT_NUM[i] = new Button();
                this.Controls.Add(BT_NUM[i]);
                BT_NUM[i].Left = 10 + 50 * (i % 3);
                BT_NUM[i].Top = 50 * (int)(i / 3) + 70;
                BT_NUM[i].Width = 40;
                BT_NUM[i].Height = 40;
                BT_NUM[i].Name = "BT_NUM" + i.ToString();
                BT_NUM[i].Text = i.ToString();
                BT_NUM[i].Click += new System.EventHandler(bt_Click);
            }
            for (i = 0; i <=5; i++)  //设置符号按钮的位置与属性、事件
            {
                Operator[i] = new Button();
                this.Controls.Add(Operator[i]);
                Operator[i].Left = 10 + 50 * 3;
                Operator[i].Top = 50 * i + 70;
                Operator[i].Width = 40;
                Operator[i].Height = 40;
                Operator[i].Click += new System.EventHandler(bt_Click);
            }
            //设置符号按钮的Text属性
            Operator[0].Text = "+";
            Operator[1].Text = "-";
            Operator[2].Text = "*";
            Operator[3].Text = "/";
            Operator[4].Text = "=";
            Operator[5].Text = "CE";

            Operator[4].Left = 10 + 50 * 2;
            Operator[4].Top = 50 * 3 + 70;
            Operator[5].Left = 10 + 50 * 1;
            Operator[5].Top = 50 * 3 + 70;
        }
        //添加按钮控件的Click事件与处理方法
        private void bt_Click(object sender,System.EventArgs e)//这里是事件处理的方法
        {
            String sText;
            Button bClick = (Button)sender;  //将被单击的按钮赋给定义的bClick变量
            sText = bClick.Text;     //获取按钮的文字
            switch(sText)      //通过按钮文字属性判断哪个是Button被单击,并执行相应的操作
            {
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":
                case "0":   //输入为数字
                   //如果执行过一次计算,那么再次输入数字的时候,应该清空textBox1
                    if (bEqu) textBox1.Text = "";
                    bEqu = false;
                    textBox1.Text = textBox1.Text +sText;   //将输入的数字累加
                    break;
                case "+":
                case "-":
                case "*":
                case "/":
                    dblAcc = Convert.ToDouble(textBox1.Text);
                    textBox1.Text = "";
                    sOper = sText;   //记下***作的数及操作符
                    break;
                case "=":
                    if (!bEqu) dblDes = Convert.ToDouble(textBox1.Text);
                    //如果本次对“=”的单击是连续的第二次单击,那么操作数不变
                    bEqu = true;
                    switch(sOper) //根据操作的不同执行相应的计算
                    {
                        case "+":dblResult = dblAcc + dblDes;break;
                        case "-": dblResult = dblAcc - dblDes; break;
                        case "*": dblResult = dblAcc * dblDes; break;
                        case "/": dblResult = dblAcc / dblDes; break;
                    }
                    textBox1.Text = dblResult.ToString();
                    dblAcc = dblResult;   //将计算结果赋给***作数,以便执行连续的第二次操作
                    break;
                case "CE":
                    textBox1.Text = "";  //清除文本框的内容

                    break;

            }
        }
    }
}

结果