C#实现计算器窗体程序

 更新时间:2022年01月31日 12:53:36   作者:羽路星尘  
这篇文章主要为大家详细介绍了C#实现计算器窗体程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#实现计算器窗体程序的具体代码,供大家参考,具体内容如下

功能设计

1、计算器中,添加 0-9 共十个数字键。

2、计算器中,增添 加、减、乘、除、等于五个功能键。

3、计算器中,增加四个功能键:x2,sqrt,log, ln 四个键,分别计算求平方,开方。

实现代码

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 test3_1
{
    public partial class Form1 : Form
    {
        double result = 0;              //存储计算结果
        double number = 0;              //存储输入的数字
        bool exist_value = false;       //判断文本框中是否有值
        string operation;               //存储输入的运算符

        /*
         * 初始化
         */

        public Form1()
        {
            InitializeComponent();
        }

        /*
         * 数字键触发事件实现
         */
        private void Seven_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "7";
        }

        private void Eight_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "8";
        }

        private void Nine_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "9";
        }

        private void Four_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "4";
        }

        private void Five_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "5";
        }

        private void Six_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "6";
        }

        private void One_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "1";
        }

        private void Two_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "2";
        }

        private void Three_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "3";
        }

        private void Zero_Click(object sender, EventArgs e)
        {
            if (exist_value == true)
            {
                textBox1.Text = "";
                exist_value = false;
            }
            textBox1.Text += "0";
        }

        /*
         * 功能键触发事件
         */
        private void Add_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "+";
            }
        }

        private void Sub_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "-";
            }
        }

        private void Mul_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "*";
            }
        }

        private void Div_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "/";
            }
        }

        private void Squ_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "x^2";
            }
               
        }

        private void Sqrt_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "sqrt";
            }
        }

        private void Log_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "log";
            }
        }

        private void Ln_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                MessageBox.Show("请先输入值再计算!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                exist_value = true;
                number = double.Parse(textBox1.Text);
                operation = "ln";
            }
        }

        private void Del_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void Equ_Click(object sender, EventArgs e)
        {
            switch (operation)
            {
                case "+": result = number + double.Parse(textBox1.Text); break;
                case "-": result = number - double.Parse(textBox1.Text); break;
                case "*": result = number * double.Parse(textBox1.Text); break;
                case "/":
                    {
                        double temp=double.Parse(textBox1.Text);
                        if (temp != 0)
                            result = number / temp;
                        else
                            MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        break;
                    }
                case "x^2": result = number * number; break;
                case "sqrt": result = Math.Sqrt(number); break;
                case "log": result = Math.Log10(number); break;
                case "ln": result = Math.Log(number); break;
            }
            textBox1.Text = result + "";
            exist_value = true;
        }
    }
}

界面设计

运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#获取图片文件扩展名的方法

    C#获取图片文件扩展名的方法

    这篇文章主要介绍了C#获取图片文件扩展名的方法,实例总结了较为常见的获取图片文件扩展名的技巧,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • c#设计模式 适配器模式详细介绍

    c#设计模式 适配器模式详细介绍

    结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式
    2012-10-10
  • C#数组的常用操作方法小结

    C#数组的常用操作方法小结

    Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏
    2016-05-05
  • C# 实现Scoket心跳机制的方法

    C# 实现Scoket心跳机制的方法

    这篇文章主要介绍了C# 实现Scoket心跳机制的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • C#如何消除验证码图片的锯齿效果

    C#如何消除验证码图片的锯齿效果

    这篇文章主要为大家详细介绍了C#如何消除验证码图片的锯齿效果,有无锯齿主要依靠一句代码,想要知道的朋友可阅读下文
    2016-09-09
  • c#添加Newtonsoft.Json包的操作

    c#添加Newtonsoft.Json包的操作

    这篇文章主要介绍了c#添加Newtonsoft.Json包的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 详解C#如何使用WASM跨语言调用

    详解C#如何使用WASM跨语言调用

    WebAssembly(简称Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式,这篇文章主要介绍了C#如何使用WASM跨语言调用,需要的小伙伴可以了解一下
    2023-08-08
  • WPF拖动DataGrid滚动条时内容混乱的解决方法

    WPF拖动DataGrid滚动条时内容混乱的解决方法

    这篇文章主要介绍了WPF拖动DataGrid滚动条时内容混乱的解决方法
    2016-10-10
  • C#发送数据到剪贴板及从剪贴板中取数据的方法

    C#发送数据到剪贴板及从剪贴板中取数据的方法

    这篇文章主要介绍了C#发送数据到剪贴板及从剪贴板中取数据的方法,涉及C#针对剪贴板数据的读写操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#如何利用结构体对固定格式数据进行解析

    C#如何利用结构体对固定格式数据进行解析

    这篇文章主要为大家详细介绍了C#利用结构体对固定格式数据进行解析,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论