c#制作简单计算器

几天内居然这么多人看了,那么就更新一下。之前的代码复用情况太多,改了一下,少了一两百行。

不过可能还有bug,欢迎指正。

首先把界面设计好,画好那么多按钮,并给每个按钮命名,然后再双击按钮,添加相应的事件,比如按数字就在textbox.text加上数字。

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


namespace Calculator
{
    public partial class Form1 : Form
    {
        double a = 0;//计算结果
        double b = 0;//第一个操作数
        double h = 0;//第二个操作数
        string d;//运算符号
        bool c=false;//按下运算符号后就把textbox里的清空


        public Form1()
        {
            InitializeComponent();
        }


        private void button3_Click(object sender, EventArgs e)
        {


        }


        void number(string n)
        {
            if (c == true)
            {
                c = false;
                textBox1.Text = "";
            }
            textBox1.Text += n;
        }


        void operation()
        {
            c = true;
            h = double.Parse(textBox1.Text);
            switch (d)
            {


                case "+":
                    b = b + h;
                    break;
                case "-":
                    b = b - h;
                    break;
                case "*":
                    b = b * h;
                    break;
                case "/":
                    b = b / h;
                    break;
                case "%":
                    b = b % h;
                    break;
                default:
                    b = h;
                    break;
            }
        }
        //按下0
        private void button10_Click(object sender, EventArgs e)
        {
            number("0");
            if(d=="/"&&textBox1.Text=="0")
            {
                textBox1.Clear();
                MessageBox.Show("除数不能为0!");
            }
        }


        //按下1
        private void button1_Click(object sender, EventArgs e)
        {
            number("1");
        }


        //按下2
        private void button2_Click(object sender, EventArgs e)
        {
            number("2");
        }


        //按下3
        private void button3_Click_1(object sender, EventArgs e)
        {
            number("3");
        }


        //按下4
        private void button4_Click(object sender, EventArgs e)
        {
            number("4");
        }


        //按下5
        private void button5_Click(object sender, EventArgs e)
        {
            number("5");
        }


        //按下6
        private void button6_Click(object sender, EventArgs e)
        {
            number("6");
        }


        //按下7
        private void button7_Click(object sender, EventArgs e)
        {
            number("7");
        }


        //按下8
        private void button8_Click(object sender, EventArgs e)
        {
            number("8");
        }


        //按下9
        private void button9_Click(object sender, EventArgs e)
        {
            number("9");
        }


        //按下.
        private void button11_Click(object sender, EventArgs e)
        {
            if (c == true)
            {
                c = false;
                textBox1.Text = "";
            }
            if(!textBox1.Text.Contains("."))
            textBox1.Text += ".";
        }


        //按下+
        private void button17_Click(object sender, EventArgs e)
        {
            operation();
            d = "+";
        }


        //按下-
        private void button16_Click(object sender, EventArgs e)
        {
            operation();
            d = "-";
        }


        //按下*
        private void button14_Click(object sender, EventArgs e)
        {
            operation();
            d = "*";
        }


        //按下/
        private void button12_Click(object sender, EventArgs e)
        {
            operation();
            d = "/";
        }


        //按下%
        private void button13_Click(object sender, EventArgs e)
        {
            operation();
            d = "%";
        }


        //按下C
        private void button15_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }


        //按下=
        private void button18_Click(object sender, EventArgs e)
        {
            if (double.TryParse(textBox1.Text, out h) == true)
            {
                h = double.Parse(textBox1.Text);
            }
            else
            {
                MessageBox.Show("请输入正确的数!");
                textBox1.Text = "";
            }
            switch (d)
            {


                case "+":
                    a = b + h;
                    break;
                case "-":
                    a = b - h;
                    break;
                case "*":
                    a = b * h;
                    break;
                case "/":
                    a = b / h;
                    break;
                case "%":
                    a = b % h;
                    break;


            }
            textBox1.Text = a + "";
            d = "";
            a = 0;
            c = true;
        }


    }
}

效果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值