C#编写的windows计算器-源代码

    技术2022-05-11  124

    选择自 CSPRO 的 Blog 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

                }}


    最新回复(0)