欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-04 13:42:45
作为一个程序员,如何从浅入深的训练自己的技术,可以通过一些小程序来训练下面简单介绍一下如何制作一个简单的计算器小程序如下为制作之后的小程序截图代码段 其中计算用了datatable的一个函数dt.co...

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

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

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

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