C#简单计算器

来源:互联网 发布:软件外包交易平台 编辑:程序博客网 时间:2024/06/05 18:12

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 计算器
{
    public partial class Form1 : Form
    {
        public decimal  First;
        public decimal  Second;
        bool DoClear;
        bool FirstOpen;
        string Str;
        public Form1()
        {
            FirstOpen = true;
            DoClear = true;
            First = 0;
            Second = 0;
            Str = "=";
            InitializeComponent();
        }

        private void clear_Click(object sender, EventArgs e)
        {
            DoClear = true;
            FirstOpen = true;
            Str = "";
            First = 0;
            Second = 0;
            textBox1.Text = "";

        }
        private void append(int i)
        {
            //if (FirstOpen == true)
            //    First = Convert.ToDouble(textBox1.Text);
            //else
            //    Second = Convert.ToDouble(textBox1.Text);
            //textBox1.Focus();

            if (i == 0 || i != 0)
            {
                textBox1.Text += i.ToString();
                if (textBox1.Text.Length >= 20)
                    MessageBox.Show("不可以超过20位", "错误提示框");
                //textBox1.Enabled = false;
            }
            DoClear = false;
        }
        private void button10_Click(object sender, EventArgs e)
        {
            if (sender == button1)
                append(1);
            else if (sender == button2)
                append(2);
            else if (sender == button3)
                append(3);
            else if (sender == button4)
                append(4);
            else if (sender == button5)
                append(5);
            else if (sender == button6)
                append(6);
            else if (sender == button7)
                append(7);
            else if (sender == button8)
                append(8);
            else if (sender == button9)
                append(9);
            else append(0);
        }

        private void button12_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
                if (FirstOpen == true)
                    First = Convert.ToDecimal(textBox1.Text);
                else
                    Second = Convert.ToDecimal(textBox1.Text);
            switch (Str)
            {
                case "+": First += Second; break;
                case "-": First -= Second; break;
                case "*": First *= Second; break;
                case "/": First /= Second; break;
                default: break;
            }
            if (sender == button12)
                Str = "+";
            else if (sender == button13)
                Str = "-";

            else if (sender == button14)
                Str = "*";
            else if
        (sender == button15)
                Str = "/";
                    FirstOpen=false;
           
                    textBox1.Text ="";


                }
                #region
                private void button1_Click(object sender, EventArgs e)
        {
            button10_Click(sender,e);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button6_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button8_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button9_Click(object sender, EventArgs e)
        {
            button10_Click(sender, e);
        }

        private void button13_Click(object sender, EventArgs e)
        {
            if (DoClear == true)
            {
                textBox1.Text+="-";

                DoClear = false;
            }
            else

                button12_Click(sender, e);
           
        }

        private void button14_Click(object sender, EventArgs e)
        {
            button12_Click(sender, e);
        }

        private void button15_Click(object sender, EventArgs e)
        {
            button12_Click(sender, e);
        }
                #endregion
        private void button19_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
                if (FirstOpen == true)
                    First = Convert.ToDecimal(textBox1.Text);
                else
                    Second = Convert.ToDecimal (textBox1.Text);
            if (Str == "/" && Second == 0)
            {
                MessageBox.Show("除数不可以为0", "错误提示对话框");
                clear_Click(sender, e);
            }
            switch(Str)
            {
            case "+": First += Second; break;
                case "-": First -= Second; break;
                case "*": First *= Second; break;
                case "/": //if (Second == 0)
                        //MessageBox.Show("分母不可以为0", "错误提示对话框"); break;
                     First /= Second; break;
                default: break;
            }
            textBox1.Text=Convert.ToString(First);
            Str = "=";
            FirstOpen = false;
        }

        private void button16_Click(object sender, EventArgs e)
        {
            abs_Click(sender, e);

        }

        private void abs_Click(object sender, EventArgs e)
        {
            double  t;
            if (textBox1.Text=="")
                MessageBox.Show("数字不可以为空", "操作错误提示对话框");
            else
            {
                t = Convert.ToDouble(textBox1.Text);

                if (sender == abs)
                {
                    t = Math.Abs(t);
                }
                else if (sender == button16)
                {
                    if (t < 0)
                        MessageBox.Show("负数不可以开平方", "输入错误对话框");
                    else t = Math.Sqrt(t);
                }
                else if (sender == log)
                {
                    if (t <= 0)
                        MessageBox.Show("负数或0不能求对数", "输入错误对话框");
                    else t = Math.Log(t);
                }
                else if (sender == exp)
                    t = Math.Exp(t);
                textBox1.Text = Convert.ToString(t);
                First = Convert.ToDecimal(t);
            }
           
        }

        private void log_Click(object sender, EventArgs e)
        {
            abs_Click(sender, e);
        }

        private void exp_Click(object sender, EventArgs e)
        {
            abs_Click(sender, e);
        }

        private void button11_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
                MessageBox.Show("小数点前面需要有数字", "错误提示对话框");
            else  textBox1.Text += ".";
        }
    }
}

原创粉丝点击