⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 Visual 编写的计算器 能实现键盘运用 能实现鼠标运用
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace jsq
{
    public partial class Form1 : Form
    {
        double num1 = 0, num2 = 0, result = 0;
        int type = 0;
        int dot_num = 1;
        bool is_num1 = false;
        bool is_dot = false;
        bool doted = false;
        int countAdd = 0, countSub = 0, countMul = 0, countDiv = 0;
        public void sc(int numb)
        {
            if (is_num1 == false)
            {
                if (is_dot == true)
                {
                    double tempNum = 1;
                    for (int i = 0; i < dot_num; i++)
                        tempNum = 10 * tempNum;
                    num1 = num1 + (double)numb / (double)(tempNum);
                    dot_num++;
                }
                else
                {
                    num1 = num1 * 10 + numb;
                }
                textResualt.Text = num1.ToString();
            }
            else
            {
                if (is_dot == true)
                {
                    double tempNum = 1;
                    for (int i = 0; i < dot_num; i++)
                    {
                        tempNum = 10 * tempNum;
                    }
                    num2 = num2 + (double)numb / (double)(tempNum);
                    dot_num++;
                }
                else
                {
                    num2 = num2 * 10 + numb;
                }
                textResualt.Text = num2.ToString();
            }
        }
        public void calType()
        {
            is_num1 = true;
            dot_num = 1;
            is_dot = false;
            doted = false;
            countAdd = 0;
            countSub = 0;
            countMul = 0;
            countDiv = 0;
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.Text = "计算器";
        }


        private void buttonNum1_Click(object sender, EventArgs e)
        {
            sc(1);
        }

        private void buttonNum0_Click(object sender, EventArgs e)
        {
            sc(0);
        }
        private void buttonNum2_Click(object sender, EventArgs e)
        {
            sc(2);
        }

        private void buttonNum3_Click(object sender, EventArgs e)
        {
            sc(3);
        }

        private void buttonNum4_Click(object sender, EventArgs e)
        {
            sc(4);
        }

        private void buttonNum5_Click(object sender, EventArgs e)
        {
            sc(5);
        }

        private void buttonNum6_Click(object sender, EventArgs e)
        {
            sc(6);
        }

        private void buttonNum7_Click(object sender, EventArgs e)
        {
            sc(7);
        }

        private void buttonNum8_Click(object sender, EventArgs e)
        {
            sc(8);
        }

        private void buttonNum9_Click(object sender, EventArgs e)
        {
            sc(9);
        }

        private void buttonDecimal_Click(object sender, EventArgs e)
        {
            is_dot = true;
            if (doted == false)
            {
                doted = true;
                dot_num = 1;
            }
        }

        private void buttonAddition_Click_1(object sender, EventArgs e)
        {
            type = 1;

            if (countAdd < countSub)
                num1 = num1 - num2;
            else
            {
                if (countAdd < countMul)
                    num1 = num1 * num2;
                else
                {
                    if (countAdd < countDiv)
                        num1 = num1 / num2;
                    else
                        num1 = num1 + num2;
                }


            }
            result = num1;
            textResualt.Text = num1.ToString();
            calType();
            num2 = 0;
            countAdd++;
        }

        private void buttonSubtration_Click(object sender, EventArgs e)
        {
            type = 2;
            if (countSub < countAdd)
                num1 = num1 + num2;
            else
            {
                if (countSub < countMul)
                    num1 = num1 * num2;
                else
                {
                    if (countSub < countDiv)
                        num1 = num1 / num2;
                    else
                        num1 = num1 - num2;
                }


            }
            result = num1;
            textResualt.Text = num1.ToString();
            calType();
            num2 = 0;
            countSub++;
        }

        private void buttonMultiplication_Click(object sender, EventArgs e)
        {
            type = 3;
            double num3 = 1;
            if (num2 == 0)
                num1 = num1 * num3;
            else
            {
                if (countMul < countDiv)
                    num1 = num1 / num2;
                else
                {
                    if (countMul < countAdd)
                        num1 = num1 + num2;
                    else
                    {
                        if (countMul < countSub)
                            num1 = num1 - num2;
                        else
                            num1 = num1 * num2;
                    }
                }
            }
            result = num1;
            textResualt.Text = num1.ToString();
            calType();
            num2 = 0;
            countMul++;
        }

        private void buttonDivision_Click(object sender, EventArgs e)
        {
            type = 4;
            if (num2 == 0)
                textResualt.Text = "除数不能为'0'!!!";
            else
            {
                if (countDiv < countMul)
                    num1 = num1 / num2;
                else
                {
                    if (countDiv < countAdd)
                        num1 = num1 + num2;
                    else
                    {
                        if (countDiv < countSub)
                            num1 = num1 - num2;
                        else
                            num1 = num1 * num2;
                    }
                }
            }
            result = num1;
            textResualt.Text = num1.ToString();
            calType();
            num2 = 0;
            countDiv++;
        }

        private void buttonEqual_Click(object sender, EventArgs e)
        {
            switch (type)
            {
                case 1: result = num1 + num2;
                    num1 = result;
                    break;
                case 2: result = num1 - num2;
                    num1 = result;
                    break;
                case 3: result = num1 * num2;
                    num1 = result;
                    break;
                case 4: result = num1 / num2;
                    num1 = result;
                    break;

            }
            textResualt.Text = result.ToString();
            num2 = 0;
            calType();
        }
        private void buttonClear_Click(object sender, EventArgs e)
        {
            textResualt.Text = "0";
            num1 = 0;
            num2 = 0;
            result = 0;
            type = 0;
            dot_num = 1;
            is_num1 = false;
            is_dot = false;
            doted = false;
            countAdd = 0;
            countSub = 0;
            countMul = 0;
            countDiv = 0;
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.D0 || e.KeyCode == Keys.NumPad0)
                sc(0);
            if (e.KeyCode == Keys.D1 || e.KeyCode == Keys.NumPad1)
                sc(1);
            if (e.KeyCode == Keys.D2 || e.KeyCode == Keys.NumPad2)
                sc(2);
            if (e.KeyCode == Keys.D3 || e.KeyCode == Keys.NumPad3)
                sc(3);
            if (e.KeyCode == Keys.D4 || e.KeyCode == Keys.NumPad4)
                sc(4);
            if (e.KeyCode == Keys.D5 || e.KeyCode == Keys.NumPad5)
                sc(5);
            if (e.KeyCode == Keys.D6 || e.KeyCode == Keys.NumPad6)
                sc(6);
            if (e.KeyCode == Keys.D7 || e.KeyCode == Keys.NumPad7)
                sc(7);
            if (e.KeyCode == Keys.D8 || e.KeyCode == Keys.NumPad8)
                sc(8);
            if (e.KeyCode == Keys.D9 || e.KeyCode == Keys.NumPad9)
                sc(9);
            if (e.KeyCode == Keys.Divide)
            {
                type = 4;
                if (num2 == 0)
                    textResualt.Text = "除数不能为'0'!!!";
                else
                {
                    if (countDiv < countMul)
                        num1 = num1 / num2;
                    else
                    {
                        if (countDiv < countAdd)
                            num1 = num1 + num2;
                        else
                        {
                            if (countDiv < countSub)
                                num1 = num1 - num2;
                            else
                                num1 = num1 * num2;
                        }
                    }
                }
                result = num1;
                textResualt.Text = num1.ToString();
                calType();
                num2 = 0;
                countDiv++;
            }

            if (e.KeyCode == Keys.Multiply)
            {
                type = 3;
                double num3 = 1;
                if (num2 == 0)
                    num1 = num1 * num3;
                else
                {
                    if (countMul < countDiv)
                        num1 = num1 / num2;
                    else
                    {
                        if (countMul < countAdd)
                            num1 = num1 + num2;
                        else
                        {
                            if (countMul < countSub)
                                num1 = num1 - num2;
                            else
                                num1 = num1 * num2;
                        }
                    }
                }
                result = num1;
                textResualt.Text = num1.ToString();
                calType();
                num2 = 0;
                countMul++; 
            }

            if (e.KeyCode == Keys.Add)
            {
                type = 1;

                if (countAdd < countSub)
                    num1 = num1 - num2;
                else
                {
                    if (countAdd < countMul)
                        num1 = num1 * num2;
                    else
                    {
                        if (countAdd < countDiv)
                            num1 = num1 / num2;
                        else
                            num1 = num1 + num2;
                    }


                }
                result = num1;
                textResualt.Text = num1.ToString();
                calType();
                num2 = 0;
                countAdd++; 
            }

            if (e.KeyCode == Keys.Subtract)
            {
                type = 2;
                if (countSub < countAdd)
                    num1 = num1 + num2;
                else
                {
                    if (countSub < countMul)
                        num1 = num1 * num2;
                    else
                    {
                        if (countSub < countDiv)
                            num1 = num1 / num2;
                        else
                            num1 = num1 - num2;
                    }


                }
                result = num1;
                textResualt.Text = num1.ToString();
                calType();
                num2 = 0;
                countSub++;
            }

            if (e.KeyCode == Keys.Enter)
            {
                switch (type)
                {
                    case 1: result = num1 + num2;
                        num1 = result;
                        break;
                    case 2: result = num1 - num2;
                        num1 = result;
                        break;
                    case 3: result = num1 * num2;
                        num1 = result;
                        break;
                    case 4: result = num1 / num2;
                        num1 = result;
                        break;

                }
                textResualt.Text = result.ToString();
                num2 = 0;
                calType();
            }

            if (e.KeyCode == Keys.Decimal)
            {
                is_dot = true;
                if (doted == false)
                {
                    doted = true;
                    dot_num = 1;
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -