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#中string用法实例详解

    C#中string用法实例详解

    这篇文章主要介绍了C#中string用法,非常详细的总结了比较常见的关于C#中string的几个常用方法,需要的朋友可以参考下
    2014-08-08
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)

    C#使用Windows Service的简单教程(创建、安装、卸载、调试)

    这篇文章主要为大家详细介绍了C#创建、安装、卸载、调试Windows Service(Windows 服务)的简单教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • C#实现的文件批量重命名功能示例

    C#实现的文件批量重命名功能示例

    这篇文章主要介绍了C#实现的文件批量重命名功能,结合具体实例形式分析了C#针对文件的遍历、属性修改相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • C#测量程序运行时间及cpu使用时间实例方法

    C#测量程序运行时间及cpu使用时间实例方法

    对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理数据包的总数,除以累记处理数据包用的时间,下面我们看一个代码实例就明白了
    2013-11-11
  • C#对WPF数据绑定的菜单插入Seperator分隔

    C#对WPF数据绑定的菜单插入Seperator分隔

    这篇文章介绍了C#对WPF数据绑定的菜单插入Seperator分隔的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#根据http和ftp图片地址获取对应图片

    C#根据http和ftp图片地址获取对应图片

    这篇文章主要为大家详细介绍了C#根据http和ftp图片地址获取对应图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#简单读写txt文件的方法

    C#简单读写txt文件的方法

    这篇文章主要介绍了C#简单读写txt文件的方法,涉及C#针对文件的基本打开、写入、保存与读取等操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • 详解C#如何判断输入的数字是否符合货币格式

    详解C#如何判断输入的数字是否符合货币格式

    这篇文章主要为大家详细介绍了C#判断输入的数字是否符合货币格式的两种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • C#实现数字华容道游戏

    C#实现数字华容道游戏

    这篇文章主要为大家详细介绍了C#实现数字华容道游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • c# 所有类型都从Object类型派生

    c# 所有类型都从Object类型派生

    所有的类型最终从object派生,每一个类型都有一组最基本的方法
    2012-10-10

最新评论