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
    }
}

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

相关文章

  • 磁盘配额的wmi版本(C#)

    磁盘配额的wmi版本(C#)

    磁盘配额的wmi版本(C#)...
    2007-03-03
  • C#使用base64对字符串进行编码和解码的测试

    C#使用base64对字符串进行编码和解码的测试

    今天小编就为大家分享一篇关于C#使用base64对字符串进行编码和解码的测试,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • C#使用委托(delegate)实现在两个form之间传递数据的方法

    C#使用委托(delegate)实现在两个form之间传递数据的方法

    这篇文章主要介绍了C#使用委托(delegate)实现在两个form之间传递数据的方法,涉及C#委托的使用技巧,需要的朋友可以参考下
    2015-04-04
  • C#入门之定义类成员与接口实现

    C#入门之定义类成员与接口实现

    这篇文章介绍了C#入门之定义类成员与接口实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#如何实现图片查看器

    C#如何实现图片查看器

    这篇文章主要为大家详细介绍了C#如何实现图片查看器的相关方法,C#实现一个像Windows自带的图片查看器的功能,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • 一篇文章带你轻松了解C# Lock关键字

    一篇文章带你轻松了解C# Lock关键字

    这篇文章主要给大家介绍了如何通过一篇文章带你轻松了解C# Lock关键字的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • c# 用Base64实现文件上传

    c# 用Base64实现文件上传

    这篇文章主要介绍了c# 用Base64实现文件上传的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • C#使用Task实现执行并行任务的原理的示例详解

    C#使用Task实现执行并行任务的原理的示例详解

    Task是一个表示异步操作的类,它提供了一种简单、轻量级的方式来创建多线程应用程序。本文就来和大家聊聊在C#中如何使用Task执行并行任务吧
    2023-04-04
  • Unity实现画线条功能

    Unity实现画线条功能

    这篇文章主要为大家详细介绍了Unity实现画线条功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C#操作数据库中存取图片文件的方法

    C#操作数据库中存取图片文件的方法

    这篇文章主要介绍了C#操作数据库中存取图片文件的方法,以实例形式分析了C#将图片存入数据库及从数据库读取图片文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论