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

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

(0)

相关推荐

  • C# WinForm程序设计简单计算器

    一个简单的计算器的例子,在这个小程序中我们需要用到的组件有: Button:点击计算 TextBox:输出要运算的数 RadioButton:选择运算类型 GroupBox:绑定RadioButton 首先我们在界面上拖以上的控件,得到如下界面: 这时候监听计算按钮的点击事件: private void button1_Click(object sender, EventArgs e) { double op1, op2, result; if (textBox1.Text == ""

  • C#实现简单计算器功能

    实现效果: Form1.cs代码: 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 Cal { pu

  • c#入门之实现简易存款利息计算器示例

    本想把练习题做了的结果放上来,不过发现附录是有答案的,就算了吧,自己做了没问题就行了哈.之前提到过,要是有朋友有想法,需要做小工具我可以帮忙实现,不过貌似大家都很忙.SO,自己学完第4章后,决定做一个工具:简易存款利息计算器,可以更好地复习前面学过的知识. 原理介绍为啥叫简易呢,因为现在只能计算整存整取(只有1.2.3.5四种年限哈)的利息,并且没有启用自动转存(俗称利滚利,就是把本年和上年的利息之和,作为下年利息计算时的本金)功能,方便和网上已有的工具对比计算结果,判断自己的程序算出来正不正确

  • C#实现Winform版计算器

    本文实例为大家分享Winform版计算器的具体实现方法,供大家参考,具体内容如下 前台页面设计 后台代码实现 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 计

  • C#计算器编写代码

    利用C#编写一个计算器.如下图,能够完成基本的四则运算. 当然这个程序甚至还不上Windows附件那个自带的多功能计算器.  不过这个程序的逻辑还是非常值得思考的,首先你要考虑好用户按+ - * / =等运算符号.数字键之后计算器的状态记录问题.  然后要防止多次按某一个键的问题.比如小数点.就不应该让用户在输入一个数的时候键入两次.  最后,还要弄两个数组,一个存放用户在输入的数字,另一个存放用户输入的符号.  制作过程如下,  1.布局如下,同时可以参考<简单实现C#窗体程序判断是否闰年 >

  • C#实现简单的计算器功能完整实例

    本文实例讲述了C#实现简单的计算器功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; usi

  • C#实现的简单整数四则运算计算器功能示例

    本文实例讲述了C#实现的简单整数四则运算计算器功能.分享给大家供大家参考,具体如下: 运行效果图如下: 具体代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace 计算器 { public pa

  • C#实现简单加减乘除计算器

    第一次学习C#,做了个简单的加减乘除计算器,只能实现两个因数的运算. 主要是练习下C#编程,和以前用过的VB差不多.与VB6不同的是,C#代码区分大小写. Windows窗口程序主要也是由一些控件组成,响应响应的事件(event),实现具体的功能. 1.效果图如下所示 2.代码如下所示 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syst

  • C#开发简易winform计算器程序

    临近年关,今日在学习的过程中感觉甚是无聊,便想用C#来开发一个简易的计算器程序,这里记录下今日下午的实现过程,同时也记录下自己的第一遍博客. 一.需求 首先我们先来决定我们的计算器要实现什么功能 功能需求:1.能够实现加.减.乘.除.求余等两个操作数的运算,以及开方.平方单个操作数的运算 2.能够清除错误的输入,能够实现清零操作 显示需求:能够显示操作数与运算内容,显示结果 二.设计界面 1.在明白我们的功能需求后,我们来设计界面,界面主要包括三个部分,用于显示的两个textBox,以及数字键B

  • C#编写的windows计算器的实例代码

    复制代码 代码如下: using System; using System.Drawing; using System.Windows; using System.Windows.Forms; using System.Collections; using System.ComponentModel; using System.Data; namespace comput {     /// <summary>     /// 这是一个计算器的简单实现.     /// </summar

随机推荐