winfrom实现简单计算器V2版本

简介: winfrom实现简单计算器V2版本

前面,使用winform实现了个简单的计算器,今天,再来给大家看一个稍微复杂点的计算器,效果图如下:

包括归零,退格,加减乘除都已经实现,如果想要继续扩展的可以在稍微改改即可。

现在看看怎么实现的:

1.先从工具箱里面拉出来一个这样的窗体:

2.归零的方法:

private void qingchu_Click(object sender, EventArgs e)
        {
            this.lbljieguo.Text = "0";
            sb = new StringBuilder("");
        }

3.退格的方法:

//退格的按钮
        private void tuige_Click(object sender, EventArgs e)
        {
            //判断当前能不能点击退格
            //判断显示框是否有值,有值的话可以删除,没有值的话提示不能删除
            if (this.lbljieguo.Text.Length > 0)
            {
                char ch = 'a';      //保存符号
                //遍历字符串
                foreach (char c in sb.ToString())
                {
                    ch = c;     //最后一个值放在ch里面
                }
                //判断最后一个是否是+-*/%
                if (ch != '+')
                {
                    //如果是,不能动num1和num2,否则可以动
                    if (flag == false)
                    {
                        num1 = new StringBuilder(num1.ToString().Substring(0, num1.Length - 1));
                    }
                    else
                    {
                        num2 = new StringBuilder(num2.ToString().Substring(0, num2.Length - 1));
                    }
                }
                ji = false;
                this.lbljieguo.Text = sb.ToString().Substring(0, this.lbljieguo.Text.Length - 1);
                sb = new StringBuilder(this.lbljieguo.Text);
            }
            else
            {
                MessageBox.Show("显示框都没有值,你删啥?", "提示信息");
            }
        }

4.(1 2 3 4 5 6 7 8 9 0)的点击事件:

//第一个数
        StringBuilder num1 = new StringBuilder();
        //第二个数
        StringBuilder num2 = new StringBuilder();
        //判断是否是第一次输入
        bool flag = false;
        //运算符
        string fu = "";
        //当计算完结果时,不能退格
        bool ji = false;
        StringBuilder sb = new StringBuilder();
        //7
        private void btn7_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(7);
            }
            else
            {
                num2.Append(7);
            }
            sb.Append(7);
            this.lbljieguo.Text = sb.ToString();
        }
        //8
        private void btn8_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(8);
            }
            else
            {
                num2.Append(8);
            }
            sb.Append(8);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn9_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(9);
            }
            else
            {
                num2.Append(9);
            }
            sb.Append(9);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn4_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(4);
            }
            else
            {
                num2.Append(4);
            }
            sb.Append(4);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn5_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(5);
            }
            else
            {
                num2.Append(5);
            }
            sb.Append(5);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn6_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(6);
            }
            else
            {
                num2.Append(6);
            }
            sb.Append(6);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn1_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(1);
            }
            else
            {
                num2.Append(1);
            }
            sb.Append(1);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn2_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(2);
            }
            else
            {
                num2.Append(2);
            }
            sb.Append(2);
            this.lbljieguo.Text = sb.ToString();
        }
        private void btn3_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(3);
            }
            else
            {
                num2.Append(3);
            }
            sb.Append(3);
            this.lbljieguo.Text = sb.ToString();
        }
         private void btn0_Click(object sender, EventArgs e)
        {
            if (flag == false)
            {
                num1.Append(0);
            }
            else
            {
                num2.Append(0);
            }
            sb.Append(0);
            this.lbljieguo.Text = sb.ToString();
        }

5.加减乘除的点击事件:

private void btnchu_Click(object sender, EventArgs e)
        {
            flag = true;
            sb.Append("/");
            this.lbljieguo.Text = sb.ToString();
            fu = "/";
        }
         private void btnyu_Click(object sender, EventArgs e)
        {
            flag = true;
            sb.Append("%");
            this.lbljieguo.Text = sb.ToString();
            fu = "%";
        }
        private void btnjia_Click(object sender, EventArgs e)
        {
            flag = true;
            sb.Append("+");
            this.lbljieguo.Text = sb.ToString();
            fu = "+";
        }
          private void btnjian_Click(object sender, EventArgs e)
        {
            flag = true;
            sb.Append("-");
            this.lbljieguo.Text = sb.ToString();
            fu = "-";
        }
        private void btncheng_Click(object sender, EventArgs e)
        {
            flag = true;
            sb.Append("*");
            this.lbljieguo.Text = sb.ToString();
            fu = "*";
        }

6.等于的方法:

//等于的按钮
        private void btndeng_Click(object sender, EventArgs e)
        {
            //string xianshi = sb.ToString();
            switch (fu)
            {
                case "+":
                    this.lbljieguo.Text = (int.Parse(num1.ToString()) + int.Parse(num2.ToString())).ToString();
                    break;
                case "-":
                    this.lbljieguo.Text = (int.Parse(num1.ToString()) - int.Parse(num2.ToString())).ToString();
                    break;
                case "*":
                    this.lbljieguo.Text = (int.Parse(num1.ToString()) * int.Parse(num2.ToString())).ToString();
                    break;
                case "/":
                    this.lbljieguo.Text = (int.Parse(num1.ToString()) / int.Parse(num2.ToString())).ToString();
                    break;
                case "%":
                    this.lbljieguo.Text = (int.Parse(num1.ToString()) % int.Parse(num2.ToString())).ToString();
                    break;
            }
            num1 = new StringBuilder("");
            num2 = new StringBuilder("");
            sb = new StringBuilder("");
            flag = false;
            ji = true;     //显示的是结果
        }

整个的实现方法以及代码都已经给出,不做伸手党,自己动脑思考思考,加油啊,在编码路上的你们~~


目录
相关文章
|
8月前
|
开发框架 BI C#
C#之二十三 打印和水晶报表
C#之二十三 打印和水晶报表
62 0
|
10月前
|
C++
C++之MFC制作简单计算器(VS2019实现),附带完整代码
C++之MFC制作简单计算器(VS2019实现),附带完整代码
212 0
|
12月前
|
小程序 JavaScript
小程序自学系列(零基础学小程序)---小程序实现简单的倒计时效果
小程序自学系列(零基础学小程序)---小程序实现简单的倒计时效果
|
12月前
|
数据可视化 C++ Windows
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
170 0
VBA最常用的基础代码、基础功能写法总结
VBA最常用的基础代码、基础功能写法总结
111 0
|
前端开发 JavaScript Java
小小一款代码编辑器竟然也可以有程序运行之功能——Sublime Text3运行各种语言程序的总结
小小一款代码编辑器竟然也可以有程序运行之功能——Sublime Text3运行各种语言程序的总结
193 0
小小一款代码编辑器竟然也可以有程序运行之功能——Sublime Text3运行各种语言程序的总结
|
小程序 容器
【小程序基础】小程序内置组件
【小程序基础】小程序内置组件
166 0
【小程序基础】小程序内置组件
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | 在编辑器中手动设置 各个脚本的执行顺序
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
【Unity3D 灵巧小知识点】☀️ | 在编辑器中手动设置 各个脚本的执行顺序
|
JavaScript 前端开发 程序员
JavaScript学习(十五)----程序调试与错误处理
目录   IE浏览器内键的错误报告 处理异常 异常类型 语法异常: 运行时异常: 逻辑异常: 触发onerror事件处理异常 例子:使用onerror事件处理异常。
1110 0
|
C# 开发者 容器
MEF 插件式开发 - 小试牛刀
原文:MEF 插件式开发 - 小试牛刀 目录 MEF 简介 实践出真知 面向接口编程 控制反转(IOC) 构建入门级 MEF 相关参考 MEF 简介 Managed Extensibility Framework 即 MEF 是用于创建轻量、可扩展应用程序的库。
881 0