C#实现计算器窗体程序

作者:羽路星尘 时间:2023-04-09 01:25:42 

本文实例为大家分享了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#实现计算器窗体程序

来源:https://blog.csdn.net/qq_43869033/article/details/110793893

标签:C#,计算器
0
投稿

猜你喜欢

  • C#中跨线程访问控件问题解决方案分享

    2021-06-27 18:47:24
  • C#特性 匿名类型与隐式类型局部变量使用介绍

    2023-09-29 12:42:50
  • C#中程序自删除实现方法

    2021-06-01 19:47:29
  • 史上最强C语言分支和循环教程详解

    2022-07-01 07:59:35
  • android解析JSON数据

    2022-10-17 04:55:40
  • Java中的"goto"语句妙用

    2023-10-10 03:54:32
  • C#在Excel表格中插入、编辑和删除批注

    2023-01-12 13:52:20
  • flutter Bloc 实现原理示例解析

    2023-07-18 08:00:39
  • Spring的自动装配Bean的三种方式

    2023-08-24 23:05:15
  • C#开发Winform程序调用存储过程

    2023-01-11 05:23:15
  • java 交换两个数据的方法实例详解

    2021-12-06 00:56:04
  • Spring boot2.0 日志集成方法分享(1)

    2023-05-12 20:10:25
  • c语言中十六进制转二进制显示的实现方法

    2023-12-17 23:21:44
  • spring Bean的初始化过程解析

    2022-10-13 18:10:01
  • 利用Jetpack Compose实现绘制五角星效果

    2023-04-10 06:20:48
  • C++中const的实现细节介绍(C,C#同理)

    2022-10-21 19:43:12
  • C#比较时间大小的方法总结

    2023-09-02 04:38:06
  • Java正则多字符串匹配替换

    2021-12-16 02:24:48
  • Flutter学习之实现自定义themes详解

    2022-04-17 17:20:49
  • android生命周期深入分析(二)

    2021-07-25 16:26:14
  • asp之家 软件编程 m.aspxhome.com