C#实现简单的计算器小程序

 更新时间:2022年01月31日 13:07:39   作者:笔下无书生  
这篇文章主要为大家详细介绍了C#实现简单的计算器小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

作为一个程序员,如何从浅入深的训练自己的技术,可以通过一些小程序来训练
下面简单介绍一下如何制作一个简单的计算器小程序

如下为制作之后的小程序截图

代码段 其中计算用了dataTable的一个函数
dt.Compute(CurStr, string.Empty)

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 Calculate
{
    public partial class CalculateFrom : Form
    {
        public CalculateFrom()
        {
            InitializeComponent();
        }
        private string FhStr = string.Empty;
        private string CurStr = string.Empty;//计算字符串
        //等于的 等于按钮处理
        private void Click_DENG_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            if (string.IsNullOrEmpty(CurStr))
            {
                return;
            }
            List<string> KeyList = new List<string> { "+", "-", "*", "/" };
            if (KeyList.Contains(CurStr.Substring(CurStr.Length - 1)))//判断最后一位为四则运算符,则去掉
            {
                CurStr = CurStr.Substring(CurStr.Length - 1);
            }
            if (string.IsNullOrEmpty(CurStr))//若此时为空则赋值计算结果零值
            {
                this.Text_JM.Text = "0";
                return;
            }
            else
            {
                CurStr = Convert.ToString(dt.Compute(CurStr, string.Empty));//若满足条件 则计算 使用 DataTable的计算形式
                this.Text_JM.Text = CurStr;//计算结果赋值给Text
            }
        }
        //数值加入 // 里面包含数据只计算
        private void ValueClick(string ClickV)
        {
            //进行判断,判断点击的是否是非空数值或者小数位数
            if (!string.IsNullOrEmpty(ClickV))
            {
                if (ClickV == "." && string.IsNullOrEmpty(CurStr))//第一位为小数位数
                {
                    CurStr = "0.";//如果首先点击了小数位数 自动在前面增加零值
                }
                else if (ClickV == ".")//如果已经存在小数位数,不可以再输入
                {
                    if (!CurStr.Contains("."))
                    {
                        CurStr = CurStr + ".";
                    }
                }
                else CurStr = CurStr + ClickV;
                this.Text_JM.Text = CurStr;//把字符串复制给前台显示的text中
            }
        }
        //四则运算符号处理
        private void ValueCalculate(string Key)
        {
            if (string.IsNullOrEmpty(CurStr))
            {
                return;
            }
            if (CurStr.Substring(CurStr.Length - 1, 1) == ".")
            {
                CurStr = CurStr + "0";//若是最后一位为小数 自动后面补齐一个零值
            }
            List<string> KeyList=new List<string>{"+","-","*","/"};
            if (KeyList.Contains(CurStr.Substring(CurStr.Length - 1, 1)))//若最后一位已经是四则运算符号,则不再操作
            {
                return;//最后一位目前已经是符号
            }
            CurStr = CurStr + Key;
            this.Text_JM.Text = CurStr;
        }
        #region 数值
        private void Click_1_Click(object sender, EventArgs e)
        {
            ValueClick("1");
        }

        private void Click_2_Click(object sender, EventArgs e)
        {
            ValueClick("2");

        }

        private void Click_3_Click(object sender, EventArgs e)
        {
            ValueClick("3");
        }

        private void Click_4_Click(object sender, EventArgs e)
        {
            ValueClick("4");
        }

        private void Click_5_Click(object sender, EventArgs e)
        {
            ValueClick("5");
        }

        private void Click_6_Click(object sender, EventArgs e)
        {
            ValueClick("6");
        }

        private void Click_7_Click(object sender, EventArgs e)
        {
            ValueClick("7");
        }

        private void Click_8_Click(object sender, EventArgs e)
        {
            ValueClick("8");
        }

        private void Click_9_Click(object sender, EventArgs e)
        {
            ValueClick("9");
        }

        private void Click_0_Click(object sender, EventArgs e)
        {
            ValueClick("0");
        }
        //小数点
        private void Click_C_Click(object sender, EventArgs e)
        {
            ValueClick(".");
        }
        #endregion

        #region 加减乘除
        private void Click_A_Click(object sender, EventArgs e)
        {
            ValueCalculate("+");
        }

        private void Click_R_Click(object sender, EventArgs e)
        {
            ValueCalculate("-");

        }

        private void Click_X_Click(object sender, EventArgs e)
        {
            ValueCalculate("*");

        }

        private void Click_L_Click(object sender, EventArgs e)
        {
            ValueCalculate("/");

        }
        #endregion
    }
}

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

相关文章

  • C# 创建、部署和调用WebService简单示例

    C# 创建、部署和调用WebService简单示例

    这篇文章主要为大家详细介绍了C# 创建、部署和调用WebService的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • C#多种操作excel的方法比较

    C#多种操作excel的方法比较

    本文详细讲解了C#多种操作excel的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C# WebApi 接口传参详解

    C# WebApi 接口传参详解

    这篇文章主要介绍了C# WebApi 接口传参详解,本篇打算通过get、post、put、delete四种请求方式分别谈谈基础类型(包括int/string/datetime等)、实体、数组等类型的参数如何传递。感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 详解C#的排列组合

    详解C#的排列组合

    本文详细介绍了C#中的排列组合以及具体实现代码,如下所示,希望对大家有所帮助
    2016-11-11
  • 关于C#连接SQL Server时提示用户登录失败的解决方法

    关于C#连接SQL Server时提示用户登录失败的解决方法

    在用C#开发windows端程序并连接SQL Server时有可能会遇到数据库登录失败的问题,下面小编给大家带来了C#连接SQL Server时提示用户登录失败的解决方法,感兴趣的朋友一起看看吧
    2021-11-11
  • 浅谈Async和Await如何简化异步编程(几个实例让你彻底明白)

    浅谈Async和Await如何简化异步编程(几个实例让你彻底明白)

    本篇文章主要介绍了浅谈Async和Await如何简化异步编程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 详解如何在C#/.NET Core中使用责任链模式

    详解如何在C#/.NET Core中使用责任链模式

    这篇文章主要介绍了详解如何在C#/.NET Core中使用责任链模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • C#开启线程的四种方式示例详解

    C#开启线程的四种方式示例详解

    今天小编就为大家分享一篇关于C#开启线程的四种方式示例详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • C#  ADO.NET 离线查询的实现示例

    C# ADO.NET 离线查询的实现示例

    这篇文章主要介绍了C# ADO.NET 离线查询的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • C#数据库操作小结

    C#数据库操作小结

    每次做项目都会用到数据库,对数据库的操作都是糊里糊涂从书里找代码用。通过昨天晚上与今天早上的努力,把数据库的操作整理了一下,下面把整理结果做个小结
    2012-09-09

最新评论