C#编写的windows计算器的实例代码

代码如下:

using System;
using System.Drawing;
using System.Windows;
using System.Windows.Forms;
using System.Collections;
using System.ComponentModel;
using System.Data;
namespace comput
{
    /// <summary>
    /// 这是一个计算器的简单实现。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        #region 控件声明
        private System.Windows.Forms.TextBox txtShow;
        private System.Windows.Forms.GroupBox groupBox1;
        private System.Windows.Forms.Button btn_rev;
        private System.Windows.Forms.Button btn_dot;
        private System.Windows.Forms.Button btn_add;
        private System.Windows.Forms.Button btn_equ;
        private System.Windows.Forms.Button btn_sign;
        private System.Windows.Forms.Button btn_sub;
        private System.Windows.Forms.Button btn_mul;
        private System.Windows.Forms.Button btn_0;
        private System.Windows.Forms.Button btn_3;
        private System.Windows.Forms.Button btn_2;
        private System.Windows.Forms.Button btn_1;
        private System.Windows.Forms.Button btn_6;
        private System.Windows.Forms.Button btn_5;
        private System.Windows.Forms.Button btn_4;
        private System.Windows.Forms.Button btn_sqrt;
        private System.Windows.Forms.Button btn_div;
        private System.Windows.Forms.Button btn_7;
        private System.Windows.Forms.Button btn_8;
        private System.Windows.Forms.Button btn_9;
        private System.Windows.Forms.MainMenu mainMenu1;
        private System.Windows.Forms.MenuItem menuItem1;
        private System.Windows.Forms.Button btn_sqr;
        private System.Windows.Forms.MenuItem menuItem2;
        private System.Windows.Forms.MenuItem menuItem3;
        private System.Windows.Forms.MenuItem menuItem4;
        private System.Windows.Forms.MenuItem menuItem5;
        private System.Windows.Forms.MenuItem menuItem6;
        private System.Windows.Forms.Button c;
        private System.Windows.Forms.Button ce;
        private System.Windows.Forms.MenuItem menuItem8;
        private System.Windows.Forms.MenuItem menuItem9;
        private System.Windows.Forms.MenuItem menuItem10;
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.Container components = null;
        public Form1()
        {
            //
            // Windows 窗体设计器支持所必需的
            //
            InitializeComponent();
            //
            // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            //
        }
        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }
       #endregion
        #region 各控件的属性的方法Windows Form Designer generated code
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
            this.txtShow = new System.Windows.Forms.TextBox();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.c = new System.Windows.Forms.Button();
            this.ce = new System.Windows.Forms.Button();
            this.btn_rev = new System.Windows.Forms.Button();
            this.btn_dot = new System.Windows.Forms.Button();
            this.btn_add = new System.Windows.Forms.Button();
            this.btn_equ = new System.Windows.Forms.Button();
            this.btn_sign = new System.Windows.Forms.Button();
            this.btn_sub = new System.Windows.Forms.Button();
            this.btn_mul = new System.Windows.Forms.Button();
            this.btn_0 = new System.Windows.Forms.Button();
            this.btn_3 = new System.Windows.Forms.Button();
            this.btn_2 = new System.Windows.Forms.Button();
            this.btn_1 = new System.Windows.Forms.Button();
            this.btn_6 = new System.Windows.Forms.Button();
            this.btn_5 = new System.Windows.Forms.Button();
            this.btn_4 = new System.Windows.Forms.Button();
            this.btn_sqrt = new System.Windows.Forms.Button();
            this.btn_div = new System.Windows.Forms.Button();
            this.btn_7 = new System.Windows.Forms.Button();
            this.btn_8 = new System.Windows.Forms.Button();
            this.btn_9 = new System.Windows.Forms.Button();
            this.btn_sqr = new System.Windows.Forms.Button();
            this.mainMenu1 = new System.Windows.Forms.MainMenu();
            this.menuItem1 = new System.Windows.Forms.MenuItem();
            this.menuItem2 = new System.Windows.Forms.MenuItem();
            this.menuItem3 = new System.Windows.Forms.MenuItem();
            this.menuItem4 = new System.Windows.Forms.MenuItem();
            this.menuItem5 = new System.Windows.Forms.MenuItem();
            this.menuItem6 = new System.Windows.Forms.MenuItem();
            this.menuItem8 = new System.Windows.Forms.MenuItem();
            this.menuItem9 = new System.Windows.Forms.MenuItem();
            this.menuItem10 = new System.Windows.Forms.MenuItem();
            this.groupBox1.SuspendLayout();
            this.SuspendLayout();
            //
            // txtShow
            //
            this.txtShow.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(192)), ((System.Byte)(255)));
            this.txtShow.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.txtShow.ForeColor = System.Drawing.Color.Purple;
            this.txtShow.Location = new System.Drawing.Point(25, 8);
            this.txtShow.Name = "txtShow";
            this.txtShow.Size = new System.Drawing.Size(228, 23);
            this.txtShow.TabIndex = 1;
            this.txtShow.Text = "0.";
            this.txtShow.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
            //
            // groupBox1
            //
            this.groupBox1.Controls.Add(this.c);
            this.groupBox1.Controls.Add(this.ce);
            this.groupBox1.Controls.Add(this.btn_rev);
            this.groupBox1.Controls.Add(this.btn_dot);
            this.groupBox1.Controls.Add(this.btn_add);
            this.groupBox1.Controls.Add(this.btn_equ);
            this.groupBox1.Controls.Add(this.btn_sign);
            this.groupBox1.Controls.Add(this.btn_sub);
            this.groupBox1.Controls.Add(this.btn_mul);
            this.groupBox1.Controls.Add(this.btn_0);
            this.groupBox1.Controls.Add(this.btn_3);
            this.groupBox1.Controls.Add(this.btn_2);
            this.groupBox1.Controls.Add(this.btn_1);
            this.groupBox1.Controls.Add(this.btn_6);
            this.groupBox1.Controls.Add(this.btn_5);
            this.groupBox1.Controls.Add(this.btn_4);
            this.groupBox1.Controls.Add(this.btn_sqrt);
            this.groupBox1.Controls.Add(this.btn_div);
            this.groupBox1.Controls.Add(this.btn_7);
            this.groupBox1.Controls.Add(this.btn_8);
            this.groupBox1.Controls.Add(this.btn_9);
            this.groupBox1.Controls.Add(this.btn_sqr);
            this.groupBox1.Location = new System.Drawing.Point(24, 40);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(232, 184);
            this.groupBox1.TabIndex = 21;
            this.groupBox1.TabStop = false;
            this.groupBox1.Text = "计算机区";
            //
            // c
            //
            this.c.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.c.ForeColor = System.Drawing.Color.Red;
            this.c.Location = new System.Drawing.Point(178, 48);
            this.c.Name = "c";
            this.c.Size = new System.Drawing.Size(36, 61);
            this.c.TabIndex = 41;
            this.c.Text = "C";
            this.c.Click += new System.EventHandler(this.btn_Oper);
            //
            // ce
            //
            this.ce.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.ce.ForeColor = System.Drawing.Color.Red;
            this.ce.Location = new System.Drawing.Point(138, 16);
            this.ce.Name = "ce";
            this.ce.Size = new System.Drawing.Size(76, 29);
            this.ce.TabIndex = 40;
            this.ce.Text = "CE";
            this.ce.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_rev
            //
            this.btn_rev.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_rev.ForeColor = System.Drawing.Color.Blue;
            this.btn_rev.Location = new System.Drawing.Point(178, 112);
            this.btn_rev.Name = "btn_rev";
            this.btn_rev.Size = new System.Drawing.Size(36, 29);
            this.btn_rev.TabIndex = 39;
            this.btn_rev.Text = "1/x";
            this.btn_rev.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_dot
            //
            this.btn_dot.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_dot.Location = new System.Drawing.Point(98, 144);
            this.btn_dot.Name = "btn_dot";
            this.btn_dot.Size = new System.Drawing.Size(36, 29);
            this.btn_dot.TabIndex = 38;
            this.btn_dot.Tag = "0";
            this.btn_dot.Text = ".";
            this.btn_dot.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_add
            //
            this.btn_add.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_add.ForeColor = System.Drawing.Color.Red;
            this.btn_add.Location = new System.Drawing.Point(138, 144);
            this.btn_add.Name = "btn_add";
            this.btn_add.Size = new System.Drawing.Size(36, 29);
            this.btn_add.TabIndex = 37;
            this.btn_add.Text = "+";
            this.btn_add.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_equ
            //
            this.btn_equ.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_equ.ForeColor = System.Drawing.Color.Red;
            this.btn_equ.Location = new System.Drawing.Point(178, 144);
            this.btn_equ.Name = "btn_equ";
            this.btn_equ.Size = new System.Drawing.Size(36, 29);
            this.btn_equ.TabIndex = 36;
            this.btn_equ.Text = "=";
            this.btn_equ.Click += new System.EventHandler(this.btn_equ_Click);
            //
            // btn_sign
            //
            this.btn_sign.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_sign.ForeColor = System.Drawing.Color.Blue;
            this.btn_sign.Location = new System.Drawing.Point(58, 144);
            this.btn_sign.Name = "btn_sign";
            this.btn_sign.Size = new System.Drawing.Size(36, 29);
            this.btn_sign.TabIndex = 35;
            this.btn_sign.Text = "+/-";
            this.btn_sign.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_sub
            //
            this.btn_sub.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_sub.ForeColor = System.Drawing.Color.Red;
            this.btn_sub.Location = new System.Drawing.Point(138, 112);
            this.btn_sub.Name = "btn_sub";
            this.btn_sub.Size = new System.Drawing.Size(36, 29);
            this.btn_sub.TabIndex = 34;
            this.btn_sub.Text = "-";
            this.btn_sub.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_mul
            //
            this.btn_mul.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_mul.ForeColor = System.Drawing.Color.Red;
            this.btn_mul.Location = new System.Drawing.Point(138, 80);
            this.btn_mul.Name = "btn_mul";
            this.btn_mul.Size = new System.Drawing.Size(36, 29);
            this.btn_mul.TabIndex = 33;
            this.btn_mul.Text = "*";
            this.btn_mul.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_0
            //
            this.btn_0.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_0.ForeColor = System.Drawing.Color.Blue;
            this.btn_0.Location = new System.Drawing.Point(18, 144);
            this.btn_0.Name = "btn_0";
            this.btn_0.Size = new System.Drawing.Size(36, 29);
            this.btn_0.TabIndex = 32;
            this.btn_0.Tag = "0";
            this.btn_0.Text = "0";
            this.btn_0.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_3
            //
            this.btn_3.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_3.ForeColor = System.Drawing.Color.Blue;
            this.btn_3.Location = new System.Drawing.Point(98, 112);
            this.btn_3.Name = "btn_3";
            this.btn_3.Size = new System.Drawing.Size(36, 29);
            this.btn_3.TabIndex = 31;
            this.btn_3.Tag = "3";
            this.btn_3.Text = "3";
            this.btn_3.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_2
            //
            this.btn_2.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_2.ForeColor = System.Drawing.Color.Blue;
            this.btn_2.Location = new System.Drawing.Point(58, 112);
            this.btn_2.Name = "btn_2";
            this.btn_2.Size = new System.Drawing.Size(36, 29);
            this.btn_2.TabIndex = 30;
            this.btn_2.Tag = "2";
            this.btn_2.Text = "2";
            this.btn_2.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_1
            //
            this.btn_1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_1.ForeColor = System.Drawing.Color.Blue;
            this.btn_1.Location = new System.Drawing.Point(18, 112);
            this.btn_1.Name = "btn_1";
            this.btn_1.Size = new System.Drawing.Size(36, 29);
            this.btn_1.TabIndex = 29;
            this.btn_1.Tag = "1";
            this.btn_1.Text = "1";
            this.btn_1.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_6
            //
            this.btn_6.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_6.ForeColor = System.Drawing.Color.Blue;
            this.btn_6.Location = new System.Drawing.Point(98, 80);
            this.btn_6.Name = "btn_6";
            this.btn_6.Size = new System.Drawing.Size(36, 29);
            this.btn_6.TabIndex = 28;
            this.btn_6.Tag = "6";
            this.btn_6.Text = "6";
            this.btn_6.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_5
            //
            this.btn_5.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_5.ForeColor = System.Drawing.Color.Blue;
            this.btn_5.Location = new System.Drawing.Point(58, 80);
            this.btn_5.Name = "btn_5";
            this.btn_5.Size = new System.Drawing.Size(36, 29);
            this.btn_5.TabIndex = 27;
            this.btn_5.Tag = "5";
            this.btn_5.Text = "5";
            this.btn_5.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_4
            //
            this.btn_4.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_4.ForeColor = System.Drawing.Color.Blue;
            this.btn_4.Location = new System.Drawing.Point(18, 80);
            this.btn_4.Name = "btn_4";
            this.btn_4.Size = new System.Drawing.Size(36, 29);
            this.btn_4.TabIndex = 26;
            this.btn_4.Tag = "4";
            this.btn_4.Text = "4";
            this.btn_4.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_sqrt
            //
            this.btn_sqrt.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_sqrt.ForeColor = System.Drawing.Color.Blue;
            this.btn_sqrt.Location = new System.Drawing.Point(18, 16);
            this.btn_sqrt.Name = "btn_sqrt";
            this.btn_sqrt.Size = new System.Drawing.Size(76, 29);
            this.btn_sqrt.TabIndex = 25;
            this.btn_sqrt.Text = "sqrt";
            this.btn_sqrt.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_div
            //
            this.btn_div.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_div.ForeColor = System.Drawing.Color.Red;
            this.btn_div.Location = new System.Drawing.Point(138, 48);
            this.btn_div.Name = "btn_div";
            this.btn_div.Size = new System.Drawing.Size(36, 29);
            this.btn_div.TabIndex = 24;
            this.btn_div.Text = "/";
            this.btn_div.Click += new System.EventHandler(this.btn_Oper);
            //
            // btn_7
            //
            this.btn_7.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_7.ForeColor = System.Drawing.Color.Blue;
            this.btn_7.Location = new System.Drawing.Point(18, 48);
            this.btn_7.Name = "btn_7";
            this.btn_7.Size = new System.Drawing.Size(36, 29);
            this.btn_7.TabIndex = 23;
            this.btn_7.Tag = "7";
            this.btn_7.Text = "7";
            this.btn_7.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_8
            //
            this.btn_8.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_8.ForeColor = System.Drawing.Color.Blue;
            this.btn_8.Location = new System.Drawing.Point(58, 48);
            this.btn_8.Name = "btn_8";
            this.btn_8.Size = new System.Drawing.Size(36, 29);
            this.btn_8.TabIndex = 22;
            this.btn_8.Tag = "8";
            this.btn_8.Text = "8";
            this.btn_8.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_9
            //
            this.btn_9.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_9.ForeColor = System.Drawing.Color.Blue;
            this.btn_9.Location = new System.Drawing.Point(98, 48);
            this.btn_9.Name = "btn_9";
            this.btn_9.Size = new System.Drawing.Size(36, 29);
            this.btn_9.TabIndex = 21;
            this.btn_9.Tag = "9";
            this.btn_9.Text = "9";
            this.btn_9.Click += new System.EventHandler(this.btn_0_Click);
            //
            // btn_sqr
            //
            this.btn_sqr.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
            this.btn_sqr.ForeColor = System.Drawing.Color.Blue;
            this.btn_sqr.Location = new System.Drawing.Point(98, 16);
            this.btn_sqr.Name = "btn_sqr";
            this.btn_sqr.Size = new System.Drawing.Size(36, 29);
            this.btn_sqr.TabIndex = 19;
            this.btn_sqr.Text = "sqr";
            this.btn_sqr.Click += new System.EventHandler(this.btn_Oper);
            //
            // mainMenu1
            //
            this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                                                                      this.menuItem8,
                                                                                      this.menuItem1,
                                                                                      this.menuItem4});
            //
            // menuItem1
            //
            this.menuItem1.Index = 1;
            this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                                                                      this.menuItem2,
                                                                                      this.menuItem3});
            this.menuItem1.Text = "编辑(&E)";
            //
            // menuItem2
            //
            this.menuItem2.Index = 0;
            this.menuItem2.Text = "复制(&C)";
            this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
            //
            // menuItem3
            //
            this.menuItem3.Index = 1;
            this.menuItem3.Text = "粘贴(&P)";
            this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
            //
            // menuItem4
            //
            this.menuItem4.Index = 2;
            this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                                                                      this.menuItem5,
                                                                                      this.menuItem6});
            this.menuItem4.Text = "帮助(&H)";
            //
            // menuItem5
            //
            this.menuItem5.Index = 0;
            this.menuItem5.Text = "帮助主题(&H)";
            this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
            //
            // menuItem6
            //
            this.menuItem6.Index = 1;
            this.menuItem6.Text = "关于(&A)";
            this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);
            //
            // menuItem8
            //
            this.menuItem8.Index = 0;
            this.menuItem8.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                                                                                      this.menuItem9,
                                                                                      this.menuItem10});
            this.menuItem8.Text = "文件(&F)";
            //
            // menuItem9
            //
            this.menuItem9.Index = 0;
            this.menuItem9.Text = "打开windows计算器(&O)";
            this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
            //
            // menuItem10
            //
            this.menuItem10.Index = 1;
            this.menuItem10.Text = "退出(&Q)";
            this.menuItem10.Click += new System.EventHandler(this.menuItem10_Click);
            //
            // Form1
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
            this.ClientSize = new System.Drawing.Size(278, 239);
            this.Controls.Add(this.groupBox1);
            this.Controls.Add(this.txtShow);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.MaximizeBox = false;
            this.Menu = this.mainMenu1;
            this.Name = "Form1";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "计算器";
            this.groupBox1.ResumeLayout(false);
            this.ResumeLayout(false);
        }
        #endregion
        #region 各变量和常数的声明
        public const int NULL = 0;      // 定义操作码
        public const int ADD = 1;     //表示加
        public const int SUB = 2;     //减
        public const int MUL = 3;     //乘
        public const int DIV = 4;    //除
        public const int SQR = 5;    //求平方
        public const int SQRT = 6;   //求平方根
        public const int NODOT  = 0;     // 定义是否点击了小数点,0 为没点
        public const int HASDOT = 1;
        private double res = 0;         // 记录结果数
        private double tmp = 0;         // 当前输入的操作数
        private int opt = NULL;         // 记录操作码
        private int dot = NODOT;    // 记录是否点击了小数点,0为没有点
        private int num = 0;        // 记录输入操作数的个数
        private int dotnum = 0;        // 记录小数点部分的个数       
        string strOper;            //获取操作符
        #endregion
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }
        /// <summary>
        #region 获取操作数事件
        //获取操作数事件
        private void btn_0_Click(object sender, System.EventArgs e)
        {
            System.Windows.Forms.Button btnTmp;
            double i;
            btnTmp = sender as System.Windows.Forms.Button;           
            if (btnTmp != null)
            {
                if (dot == NODOT)
                {
                    // 没有点击小数点
                    i = double.Parse(btnTmp.Tag.ToString()); //取用户自定义的控件关联数,并转换成double型
                    tmp = tmp * 10 + i;
                    txtShow.Text = tmp.ToString();   //将其放入文本显示屏啊
                }
                else   // 点击了小数点
                {                   
                    dotnum++;    //记录小数点部分的个数
                                                       // 生成小数部分的新的数值
                    i = double.Parse(btnTmp.Tag.ToString()) / System.Math.Pow(10,dotnum);
                    tmp = tmp + i;  //将小数点后的值加到当前操做数
                    txtShow.Text = tmp.ToString();
                }
            }
        }
        #endregion
        #region 等于事件和等于运算方法
        //等于事件
        private void btn_equ_Click(object sender, System.EventArgs e)
        {
            calc();
        }
        //等于运算方法
        private void calc()
        {
            // 生成结果
            if (num == 0 )    //是否有操作数,没有就返回0
            {
                res = 0;
                tmp = 0;
                txtShow.Text = res.ToString();
                return;
            }
            switch (opt)  //找到对应的运算符进行计算
            {
                    // 加法
                case ADD:
                    res = res + tmp;                   
                    break;
                    // 减法
                case SUB:
                    res = res - tmp;                   
                    break;
                    // 乘法
                case MUL:
                    res = res * tmp;                   
                    break;
                    // 除法
                case DIV:
                    res = res / tmp;                   
                    break;
                    // 平方
                case SQR:
                    res = tmp * tmp;                   
                    break;
                    // 平方根
                case SQRT:
                    res = System.Math.Sqrt(tmp);                   
                    break;
                default:
                    return;
            }
            txtShow.Text = res.ToString();   //结果输出到文本显示屏
            opt = NULL;  //运算符清空
            tmp=0;   
            dot = NODOT;
                    //res = 0;
                    //num = 0;
        }
        #endregion
        #region 获取操作符运事件
        //获取操作符运事件
        private void btn_Oper(object obj,EventArgs ea)
        {
            Button tmp1=(Button)obj;
            strOper=tmp1.Text;
            switch (strOper)
            {
                case "/":       //除法运算
                    if(opt!=NULL&&opt!=DIV)
                    {
                        calc();
                    }
                    opt = DIV;
                    if (num != 0)  //判断操作数的个数,如果两个就做二元运算
                    {
                        if (tmp != 0)
                            res = res / tmp;
                    }
                    else
                        res = tmp;
                    num++;                     
                    tmp = 0;
                    txtShow.Text = res.ToString();
                    dot = NODOT;
                    break;
                case "*":
                    // 乘法运算
                    if(opt!=NULL&&opt!=MUL)
                    {
                        calc();
                    }
                    opt = MUL;
                    if (num!= 0 )     //判断操作数的个数,如果两个就做二元运算   
                    {
                            if(tmp!=0)
                         res = res * tmp;
                    }
                    else
                        res = tmp;
                    num++;                                     
                    tmp = 0;
                    txtShow.Text = res.ToString();
                    dot = NODOT;
                    break;
                case "+":            //加法运算
                    if(opt!=NULL&&opt!=ADD)
                    {
                        calc();
                    }
                    opt = ADD;
                    if (num != 0)    //判断操作数的个数,如果两个就做二元运算
                        res = res + tmp;
                    else
                        res = tmp;
                    num++;                   
                    tmp = 0;
                    txtShow.Text = res.ToString();
                    dot = NODOT;
                    break;
                case "-":        //减法运算
                    if(opt!=NULL&&opt!=SUB)
                    {
                        calc();
                    }
                    /*if(opt==ADD)
                    {
                        res=res+tmp;
                        tmp=0;
                    }*/
                    opt = SUB;
                    if (num != 0)    //判断操作数的个数,如果两个就做二元运算
                        res = res - tmp;
                    else
                        res = tmp;
                    num++;                    
                    tmp = 0;
                    txtShow.Text = res.ToString();
                    dot = NODOT;
                    break;
                case "sqrt":     //平方根运算
                    if(opt!=NULL)
                    {
                        calc();
                    }
                    //opt=SQRT;
                    if (tmp > 0)  //要求操作数大于0
                    {
                        res = Math.Sqrt(tmp);
                        //res=tmp;
                    }
                    else if(res>0)
                        res= Math.Sqrt(res);
                        txtShow.Text =res.ToString();
                    num++;   
                    tmp=0;
                    dot = NODOT;
                    break;
                case "sqr":
                    // 平方运算
                    if(opt!=NULL)
                    {
                        calc();
                    }
                    //opt=SQR;
                    if (tmp != 0)
                    {
                        res = tmp * tmp;
                        //res=tmp;
                    }
                    else
                        res=res*res;
                    txtShow.Text = res.ToString();
                    num++;   
                    tmp=0;
                    dot = NODOT;
                    break;
                case "1/x":  //倒数运算
                    if(opt!=NULL)
                    {
                        calc();
                    }
                    if (tmp != 0)
                    {
                        res = 1 / tmp;
                        //res=tmp;
                    }
                    else                   
                    res=1/res;
                    txtShow.Text = res.ToString();
                    tmp=0;
                    dot = NODOT;
                    break;
                case ".":
                            // 点击了小数点
                    if(dot==HASDOT)
                        return;
                    else
                    {
                        dot = HASDOT;
                        dotnum = 0;
                    }                   
                    break;
                case "+/-":
                                // 点击了符号运算
                    if(tmp!=0)
                    {
                        tmp = -tmp;
                        txtShow.Text = tmp.ToString();
                    }
                    else
                    {
                        res=-res;
                        //res=tmp;
                        txtShow.Text = res.ToString();   
                    }
                    dot = NODOT;
                    break;   
                case "CE":     //清除运算
                    res = 0;         // 记录结果数
                    tmp = 0;         // 当前输入的操作数
                    opt = NULL;         // 记录操作码
                    dot = NODOT;    // 记录是否点击了小数点
                    num = 0;        // 记录输入操作数的个数
                    dotnum = 0;        // 记录小数点部分的个数
                    txtShow.Text="";                   
                    break;
                case "C":         //清除运算
                    res = 0;         // 记录结果数
                    tmp = 0;         // 当前输入的操作数
                    opt = NULL;         // 记录操作码
                    dot = NODOT;    // 记录是否点击了小数点
                    num = 0;        // 记录输入操作数的个数
                    dotnum = 0;        // 记录小数点部分的个数
                    txtShow.Text="";
                    break;
            }
        }
        #endregion
        #region     主菜单事件
        //打开关于主题---调用windows xp中计算器的帮助
        private void menuItem5_Click(object sender, System.EventArgs e)
        {
            Help.ShowHelp(this,"C:\\WINDOWS\\Help\\calc.chm");       
        }
        //打开于我们
        private void menuItem6_Click(object sender, System.EventArgs e)
        {
            Form2 fm=new Form2();
            fm.Show();
        }
        //复制
        private void menuItem2_Click(object sender, System.EventArgs e)
        {
            if(txtShow.SelectionLength>0)
            {
                txtShow.Copy();
            }
        }
        //
       //粘贴
        private void menuItem3_Click(object sender, System.EventArgs e)
        {
            txtShow.Paste();
        }
          //调用windows xp中的计算器
        private void menuItem9_Click(object sender, System.EventArgs e)
        {
             Help.ShowHelp(this,"C:\\WINDOWS\\system32\\calc.exe");
        }
        //退出
        private void menuItem10_Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
        #endregion
    }
}

PS:这里再为大家推荐两款本站的在线计算器,都是采用js实现,相信对大家有一定借鉴作用:

在线标准计算器:http://tools.jb51.net/jisuanqi/jsq

在线科学计算器:http://tools.jb51.net/jisuanqi/jsqkexue

(0)

相关推荐

  • C#实现Winform版计算器

    本文实例为大家分享Winform版计算器的具体实现方法,供大家参考,具体内容如下 前台页面设计 后台代码实现 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 计

  • c#入门之实现简易存款利息计算器示例

    本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈.之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙.SO,自己学完第4章后,决定做一个工具:简易存款利息计算器,可以更好地复习前面学过的知识. 原理介绍为啥叫简易呢,因为现在只能计算整存整取(只有1.2.3.5四种年限哈)的利息,并且没有启用自动转存(俗称利滚利,就是把本年和上年的利息之和,作为下年利息计算时的本金)功能,方便和网上已有的工具对比计算结果,判断自己的程序算出来正不正确

  • C#实现简单的计算器功能完整实例

    本文实例讲述了C#实现简单的计算器功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; usi

  • C#日历样式的下拉式计算器实例讲解

    本文介绍了如何在Visual Studio中创建用户控件来显示下拉式计算器,弹出效果类似于日历控件. 介绍 如果我们正在做一个类似于库存控制和计费系统的项目,有些部分可能必须手动计算数值.因此,用户就不得不使用计算器得到结果,再填入到输入字段中,或者在工作窗口上单独打开一个计算器窗口.总之,各种不便和麻烦. 这篇文章主要描述的是如何添加下拉式计算器到DataGridView单元格中,如下图: 使用代码 第一步,我们必须先创建一个函数计算器,并且能够使用控件.因此,不妨先创建一个Visual St

  • C#实现的简单整数四则运算计算器功能示例

    本文实例讲述了C#实现的简单整数四则运算计算器功能.分享给大家供大家参考,具体如下: 运行效果图如下: 具体代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace 计算器 { public pa

  • C#计算器编写代码

    利用C#编写一个计算器.如下图,能够完成基本的四则运算. 当然这个程序甚至还不上Windows附件那个自带的多功能计算器.  不过这个程序的逻辑还是非常值得思考的,首先你要考虑好用户按+ - * / =等运算符号.数字键之后计算器的状态记录问题.  然后要防止多次按某一个键的问题.比如小数点.就不应该让用户在输入一个数的时候键入两次.  最后,还要弄两个数组,一个存放用户在输入的数字,另一个存放用户输入的符号.  制作过程如下,  1.布局如下,同时可以参考<简单实现C#窗体程序判断是否闰年 >

  • C#编写的windows计算器的实例代码

    复制代码 代码如下: using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections; using System.ComponentModel; using System.Data; namespace comput {     /// <summary>     /// 这是一个计算器的简单实现.     /// </summar

  • 使用C#创建Windows服务的实例代码

    本文介绍了使用C#创建Windows服务的实例代码,分享给大家 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Service 1.新建一个Windows Service,并将项目名称改为"MyWindowsService",如下图所示: 2.在解决方案资源管理器内将Service1.cs改为MyService1.cs后并点击"查看代码&

  • JS制作简易计算器的实例代码

    做一个简易计算器,效果图片 c表示清空,为一个空字符串 +/-表示该值为正还是负 %表示当前值/100 ←表示退格,往前删除一个值 eval 函数是能够计算出字符串表达式或者语句的结果,把结果求出来. 代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"

  • 用c#实现简易的计算器功能实例代码

    由于今天在网上搜了一下c#写的计算器,发现大多都太繁琐了,很多没必要并且不容易理解的东西就专门写了这个博客 1.首先新建一个windows窗体应用的项目.执行文件-新建-项目-windows窗体应用 2.在工具箱中拖出一个textbox用于输入和显示,再拖出21个button按钮用来当计算器的按键,在textbox下面还有一个lable控件(我把它属性改成了空格所以看不到了),改一下按钮的text属性 3.双击数字按钮进入代码界面(数字只用一个事件即可,运算符也是用一个事件,其他每个按钮都需要双

  • java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { CalculatorFrame frame = new Calculato

  • .NET实现可交互的WINDOWS服务的实例代码

    这几天想做个文件监控服务,看了一下网上的关于WINDOWS服务的文章,数量都不少,都只讲了如何做一个最基本的服务,却没有讲述如何与用户进行交互.查看了MSDN,看一下关于服务的描述: Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行.窗口区域是包含剪贴板.一组全局原子和一组桌面对象的安全对象.由于 Windows 服务的区域不是交互区域,因此 Windows 服务应用程序中引发的对话框将是不可见的,并且可能导致程序停止响应.同样,错误信息应记录在 Windows 事件日志中

  • C#启动和停止windows服务的实例代码

    复制代码 代码如下: <script type="text/javascript">        function showLoading(desc) {            $("body").append("<div id=\"processingdiv\" style=\"display:none;\"><div class=\"popup\"> &l

  • JavaScript仿windows计算器功能

    本文实例为大家分享了JavaScript仿windows计算器的具体代码,供大家参考,具体内容如下 任务要求: 名称:仿windows计算器功能: 1.实现单击按钮录入数字2.实现基础四则运算功能,并添加必要的异常处理,例如,除数为03.实现小数点功能并添加异常处理:小数点只能出现一次4.实现正负号功能5.实现退位功能,已经是最后一位时,显示框显示为06.清屏功能 使用的知识点: 1.利用大量的自定义函数实现业务逻辑2.灵活运用事件及事件处理3.培养异常处理的编程方法4.培养并实践利用不同思路实

  • JS 实现计算器详解及实例代码(一)

    Javascript 实现计算器: 系列文章: JS 实现计算器详解及实例代码(一) Javascript 实现计算器时间功能详解及实例(二) 小型JavaScript计算器 自己寻思出的解决方案,比较笨拙的方法,虽然完成了但是还有不少bug,用的方法也不是最有效的,基本功能算是完成了,一些小的细节地方也考虑到了,但是还有其他的细节需要处理. 总体设计思路是,先画草图 -> 设计UI -> 编写UI代码 -> 编写CSS -> 编写JS逻辑代码: 面板(main-board) 面板

  • python+tkinter编写电脑桌面放大镜程序实例代码

    本文讲述的是通过python+tkinter编写一个简单桌面放大镜的代码示例,具体如下. 代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角. 主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像. 建议大家照着代码敲一遍,然后运行试试.代码有一点点小瑕疵,试着发现并尝试解决. 总结 以上就是本文关于Python+tkinter编写电脑桌面放大镜程序实例代码的全部内容,希望对大家有所帮助.感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指

随机推荐