一个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;

namespace Mycalc
{
    public partial class Form1 : Form
    {
        //运算数 运算结果 运算符
        private double _num1 = 0, _num2 = 0, _result;
        private string _operator = "";

        private int _operatorCount = 0;

        private bool _firstNumberFlag = false;

        private int _operatorplus = 0;
        private int _operatorequal = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void buttonnum1_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "1";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "1";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "1";
        }

        private void buttonnum2_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "2";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "2";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "2";
        }

        private void buttonnum3_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "3";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "3";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "3";
        }

        private void buttonnum4_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "4";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "4";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "4";
        }

        private void buttonnum5_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "5";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "5";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "5";
        }

        private void buttonnum6_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "6";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "6";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "6";
        }

        private void buttonnum7_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "7";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "7";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "7";
        }

        private void buttonnum8_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "8";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "8";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "8";
        }

        private void buttonnum9_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "9";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "9";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "9";
        }

        private void buttonnum0_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "0";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "0";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "0";
        }

        private void buttondot_Click(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = ".";
                _firstNumberFlag = false;
            }
            else
            {
                if(TextBoxResult.Text.IndexOf('.') == -1 )
                    TextBoxResult.Text = TextBoxResult.Text + ".";
            }
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + ".";
        }

        private void buttonplus_Click(object sender, EventArgs e)
        {
            _firstNumberFlag = true;

            _operatorCount = _operatorCount + 1;

            //_operatorplus = _operatorplus + 1;

            //if (_operatorCount == 1 && _operatorplus == 1)
            if(_operatorCount == 1)
            {
                _num1 = Convert.ToDouble(TextBoxResult.Text);
                _operator = "+";
                TextBoxResult.Text = "";
            }
            else //if(_operatorplus == 1)
            {
                _num2 = Convert.ToDouble(TextBoxResult.Text);
                if (_operator == "+")
                    _num1 = _num1 + _num2;
                else if (_operator == "-")
                    _num1 = _num1 - _num2;
                else if (_operator == "*")
                    _num1 = _num1 * _num2;
                else if (_operator == "/")
                    _num1 = _num1 / _num2;
                _operator = "+";
                TextBoxResult.Text = _num1.ToString();
            }
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            /*
            //保存第一个运算数
            _num1 = Convert.ToDouble(TextBoxResult.Text);
            //保存运算符
            _operator = "+";
            //清空编辑框
            TextBoxResult.Text = "";
             */

        }

        private void buttondecrease_Click(object sender, EventArgs e)
        {
            _firstNumberFlag = true;
            _operatorCount = _operatorCount + 1;

            if (_operatorCount == 1)
            {
                _num1 = Convert.ToDouble(TextBoxResult.Text);
                _operator = "-";
                TextBoxResult.Text = "";
            }
            else
            {
                _num2 = Convert.ToDouble(TextBoxResult.Text);
                if (_operator == "+")
                    _num1 = _num1 + _num2;
                else if (_operator == "-")
                    _num1 = _num1 - _num2;
                else if (_operator == "*")
                    _num1 = _num1 * _num2;
                else if (_operator == "/")
                    _num1 = _num1 / _num2;
                _operator = "-";
                TextBoxResult.Text = _num1.ToString();
            }
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void buttonmultiply_Click(object sender, EventArgs e)
        {
            _firstNumberFlag = true;
            _operatorCount = _operatorCount + 1;

            if (_operatorCount == 1)
            {
                _num1 = Convert.ToDouble(TextBoxResult.Text);
                _operator = "*";
                TextBoxResult.Text = "";
            }
            else
            {
                _num2 = Convert.ToDouble(TextBoxResult.Text);
                if (_operator == "+")
                    _num1 = _num1 + _num2;
                else if (_operator == "-")
                    _num1 = _num1 - _num2;
                else if (_operator == "*")
                    _num1 = _num1 * _num2;
                else if (_operator == "/")
                    _num1 = _num1 / _num2;
                _operator = "*";
                TextBoxResult.Text = _num1.ToString();
            }
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void buttondivide_Click(object sender, EventArgs e)
        {
            _firstNumberFlag = true;
            _operatorCount = _operatorCount + 1;

            if (_operatorCount == 1)
            {
                _num1 = Convert.ToDouble(TextBoxResult.Text);
                _operator = "/";
                TextBoxResult.Text = "";
            }
            else
            {
                _num2 = Convert.ToDouble(TextBoxResult.Text);
                if (_operator == "+")
                    _num1 = _num1 + _num2;
                else if (_operator == "-")
                    _num1 = _num1 - _num2;
                else if (_operator == "*")
                    _num1 = _num1 * _num2;
                else if (_operator == "/")
                    _num1 = _num1 / _num2;
                _operator = "/";
                TextBoxResult.Text = _num1.ToString();
            }
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }
        private void buttonequal_Click(object sender, EventArgs e)
        {
            //_operatorplus = 0;
            //_operatorequal = _operatorequal + 1;
            //保存第二个运算数
            //if (_operatorequal == 1 && _operatorCount != 0)
            //{
                _num2 = Convert.ToDouble(TextBoxResult.Text);
                if (_operator == "+")
                    _result = _num1 + _num2;
                else if (_operator == "-")
                    _result = _num1 - _num2;
                else if (_operator == "*")
                    _result = _num1 * _num2;
                else if (_operator == "/")
                    _result = _num1 / _num2;

            //    _operatorequal = 0;
            //}

            TextBoxResult.Text = _result.ToString();
            _operatorCount = 0;
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void buttonback_Click(object sender, EventArgs e)
        {
            if (TextBoxResult.Text.Length > 0)
                TextBoxResult.Text = TextBoxResult.Text.Substring(0, TextBoxResult.Text.Length - 1);

            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void buttonempty_Click(object sender, EventArgs e)
        {
            _num1 = 0;
            _num2 = 0;
            _result = 0;
            _operator = "";
            _operatorCount = 0;
            _firstNumberFlag = false;
            TextBoxResult.Text = "";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void buttonsign_Click(object sender, EventArgs e)
        {
            string _firstchar = TextBoxResult.Text.Substring(0, 1);
            if(_firstchar == "-")
                TextBoxResult.Text = "+" + TextBoxResult.Text.Substring(1, TextBoxResult.Text.Length - 1);
            else if(_firstchar == "+")
                TextBoxResult.Text = "-" + TextBoxResult.Text.Substring(1, TextBoxResult.Text.Length - 1);
            else
                TextBoxResult.Text = "-" + TextBoxResult.Text;
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
        }

        private void TextBoxResult_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '0')
                buttonnum0_Click(sender, e);
            else if (e.KeyChar == '1')
                buttonnum1_Click(sender, e);
            else if (e.KeyChar == '2')
                buttonnum2_Click(sender, e);
            else if (e.KeyChar == '3')
                buttonnum3_Click(sender, e);
            else if (e.KeyChar == '4')
                buttonnum4_Click(sender, e);
            else if (e.KeyChar == '5')
                buttonnum5_Click(sender, e);
            else if (e.KeyChar == '6')
                buttonnum6_Click(sender, e);
            else if (e.KeyChar == '7')
                buttonnum7_Click(sender, e);
            else if (e.KeyChar == '8')
                buttonnum8_Click(sender, e);
            else if (e.KeyChar == '9')
                buttonnum9_Click(sender, e);
            else if (e.KeyChar == '.')
                buttondot_Click(sender, e);
            else if (e.KeyChar == '+')
                buttonplus_Click(sender, e);
            else if (e.KeyChar == '-')
                buttondecrease_Click(sender, e);
            else if (e.KeyChar == '*')
                buttonmultiply_Click(sender, e);
            else if (e.KeyChar == '/')
                buttondivide_Click(sender, e);
            else if (e.KeyChar == 'c')
                buttonempty_Click(sender, e);
            else if (e.KeyChar == '=')
                buttonequal_Click(sender, e);
            else if (e.KeyChar == 8)
                buttonback_Click(sender, e);
            TextBoxResult.Select(TextBoxResult.Text.Length, 0);
        }

        private void buttonnum1_Click_1(object sender, EventArgs e)
        {
            if (_firstNumberFlag == true)
            {
                TextBoxResult.Text = "1";
                _firstNumberFlag = false;
            }
            else
                TextBoxResult.Text = TextBoxResult.Text + "1";
            TextBoxResult.Focus();
            TextBoxResult.SelectionStart = TextBoxResult.Text.Length;
            TextBoxResult.ScrollToCaret();
            //TextBoxResult.Text = TextBoxResult.Text + "1";
        }

        private void radioButtonTen_Click(object sender, EventArgs e)
        {
        }

        private void radioButtonEight_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
        }
    }
}

仅供参考
希望大家可以喜欢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值