C#winform 实现简单的计算器

C#WinForm制作简单计算机 使用Windows Forms创建简单桌面计算器应用程序 阅读详情

目的:

生成一个一个简单的计算器程序。能够进行简单的二元计算,一个操作符,两个操作数的运算。

思路:

首先要生成一系列的成员变量,用来记录当前操作为第几操作数第几操作符,记录操作数和操作符信息。
然后每一次操作button就将button的值存入对应的成员变量,然后最后在等于操作的时候,将记录操作数和操作符的变量进行计算。

界面

如图:
这里写图片描述
如下控件:

       private System.Windows.Forms.GroupBox groupBox1;
        private System.Windows.Forms.Button button18;
        private System.Windows.Forms.Button button12;
        private System.Windows.Forms.Button button11;
        private System.Windows.Forms.Button button9;
        private System.Windows.Forms.Button button8;
        private System.Windows.Forms.Button button7;
        private System.Windows.Forms.Button button6;
        private System.Windows.Forms.Button button5;
        private System.Windows.Forms.Button button4;
        private System.Windows.Forms.Button button3;
        private System.Windows.Forms.Button button2;
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.GroupBox groupBox2;
        private System.Windows.Forms.Button button10;
        private System.Windows.Forms.Button button17;
        private System.Windows.Forms.Button button16;
        private System.Windows.Forms.Button button15;
        private System.Windows.Forms.Button button14;
        private System.Windows.Forms.Button button13;
        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.GroupBox groupBox3;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.TextBox textBox2;

开始:

首先

生成五个成员变量:

        /// <summary>
        /// 用来存第一操作数,默认为零
        /// </summary>
        string num1;
        /// <summary>
        /// 用来存第二操作数
        /// </summary>
        string num2;
        /// <summary>
        /// 判断为第几操作数
        /// </summary>
        bool check = true;
        /// <summary>
        /// 爆low计算器只能计算两操作数,用来判断
        /// </summary>
        int count = 0;
        /// <summary>
        /// 记录操作符
        /// </summary>
        string str = "";

数字键的点击操作
每次往操作数变量中插值是对check进行一次判断看当前插入的为第几操作数
check == true为第一操作数
check== false为第二操作数

         if (check == true)
            {
                Button b = (Button)sender;
                textBox1.Text += b.Text;
                num1 += b.Text;
            }
            else
            {
                Button b = (Button)sender;
                textBox1.Text += b.Text;
                num2 += b.Text;
            }

操作符按钮点击事件(+ - * /)
以下为+的事件;

            Button b = (Button)sender;
            textBox1.Text += b.Text;
            str = "+";
            //标识操作符上限
            count += 1;
            //标识第二操作数
            check = false;

等于事件
在等于事件中我们对我们输入的数进行简单的判断

  • 如果count大于1则操作数大于2;
  • 如果第一或者第二操作数为空则报错
  • 如果第二操作数为0,报错
    否则将num1和num2中的值转换为float,再根据str进行swith进行运算
            check = true;
            if (count > 1) { MessageBox.Show("高级计算器,只能计算俩个数!", "罢工!"); return; }
            double Num1 = 0, Num2 = 0,Num3 = 0;
            if (num1 == null || num2 == null) { MessageBox.Show("分母或分子为空!", "罢工!"); return; }
            else
            {
                Num1 = double.Parse(num1);
                Num2 = double.Parse(num2);
            }
            if (str == "/" && Num2 == 0) { MessageBox.Show("分母为零!", "罢工!");return; }
            switch (str)
            {
                case "+":
                    Num3 = Num1 + Num2;
                    break;
                case "-":
                    Num3 = Num1 - Num2;
                    break;
                case "*":
                    Num3 = Num1 * Num2;
                    break;
                case "/":
                    Num3 = Num1 / Num2;
                    break;
            }
            textBox2.Text = Num3.ToString();

清除操作
就是把成员变量初始化

            textBox1.Text = "";
            textBox2.Text = "";
            num1 = null;
            num2 = null;
            check = true;
            count = 0;

最后

查看执行后的效果:
这里写图片描述

C#WinForm练习——制作简易计算器 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 阅读详情

相关推荐

C#WinForm做的简单计算器

使用C#WinForm制作的简单计算器,可实现连续运算,基本计算功能,双屏显示,就是界面还没美化设计,功能基本经得住各种考验

C# 生成word文件 小学一年级口算题生成器(代码)

需要的关注:爱学习的兔八哥 回复消息: 口算题生成器 即可获得代码

weixin_42181030的博客 1108

WinForm 计算器

用C#写的一个计算器小程序。两个TabPages,一个是科学计算器,一个是贷款计算器。 科学计算器可以完成基本的四则运算、三角和反三角函数、二八十六进制转换、阶乘和取余等运算; 贷款计算器有等额本息和等额本金两种模式。

C#编程,用winform(窗体应用程序)写一个满足日常使用的计算器。附完整程序。

用C#编程写一个属于自己的计算器,计算器教程,winform程序。

laiwangouliang的博客 9181

基于c#winform简单计算器

基于c#的winform计算器,代码比较简单,里面还有注释和每一步的代码功能说明~里面的代码很容易看懂。

C# winform计算器

我自己用Winform编写的计算器,可以进行简单的四则运算。可能会有不少Bug。希望大家能够指正。

winform计算器 c#

思路:先将页面做好然后开始写代码。点击数字时要判断有没有运算符,有运算符就可以得到第二个操作数,没有运算符就可以断定是第一个操作数。

m0_74446377的博客 477

c#winform编写的计算器

*:我是一新手,这是我的第一个项目! 专用计算器!

用WinForm做一个简单的计算器

首先创建一个界面将Button控件拖进来,修改好Text以及Name, 显示器用lable来做,将默认text和Tag属性设置为0,背景颜色BackColor可以根据自己喜好修改 数字0-9按钮名称Btnnumber1-9 加减乘除 点 等于 按钮名为Btnplus.Btnreduce.Btnride.Btnexcept.Btndoc.Btnend emmm代码如下: double number1 = 0; double number2 = 0; double

weixin_45226050的博客 4050

华为S7700交换机Console密码重置全流程详解

本文详细解析了华为S7700交换机Console密码丢失后的重置全流程。通过进入BootROM菜单清除密码,并涵盖单/双主控场景操作、必备工具连接、常见问题排查及重置后的安全配置建议,帮助网络工程师掌握核心交换机的关键应急恢复技能,确保运维安全。

resnet7explorer的博客 539

Computer Networks 和 Computer & Security投稿经验

论文投稿

qq_50604294的博客 9226

无聊做了一个简单版计算器用C#winform实现(小白也能看懂)

简单版计算器,加减乘除功能。 具体怎么做出来的呢,嗯,我先说一说布局。显示框用两个label控件,label1显示操作运算,label2显示运算值。设置其AutoSize属性为false,就可以把label控件延伸扩大了。 操作运算符和数字都是button控件,外观设置就不说了,最基础的,小白不会的就去查资料。 然后现在就说一下操作 代码了,添加一个操作运算基类Oper ...

weixin_30326515的博客 476

【Apache Paimon】-- 13 -- 利用 paimon-flink-action 同步 mysql 表数据

在Paimon 诞生以前,若 mysql/pg 等数据源的表结构发生变化时,我们有几种处理方式(1)人工通知(比如常规的使用邮件),然后运维人员手动同步到数据仓库中(2)使用 flink 消费 DDL binlog ,然后自动更新 Hive 的外部表和内部表 schema那么现在,有了 Paimon ,我们可以利用其特性,自动识别并同步 DDL 这些变化,并同步至 hive 的 paimon 格式表中。

欢迎来到我的博客,一起探索代码里的世界! 1248

C#winform实现计算器

截取的数字依次入栈等待计算,截取的第一个运算符直接入栈,后面截取的运算符,先和栈顶的运算符进行优先级比较,如果当前准备入栈的运算符优先级低于或等于栈顶的运算符,则拿出数字栈中的两个数字和符号栈中的栈顶符号进行运算,将结果压入数字栈中,新的运算符入符号栈中,遍历完成后,再重复刚才的操作,两个数字一个运算符依次参与运算,结果压入数字栈,直到数字栈中只剩最后一个操作数时,这个操作数就是表达式的运算结果。第二种方法是在点击等号之后,在运算之前先对表达式逻辑进行判断,如果无法计算,可以显示报错信息,合规再计算结果。

m0_51467144的博客 2376

搭建你的第一个MCP服务器(Python版)

在上两篇博客中,我们已经对MCP(Model Context Protocol)有了初步的了解。MCP是一种强大的协议,能够简化LLM(大型语言模型)与外部工具的交互。今天,我们将通过一个具体的例子,展示如何使用Python搭建一个简单的MCP服务器。通过这个过程,你将能够更好地理解MCP的工作原理,并为后续的应用开发打下基础。在MCP中,工具(Tool)是服务器提供给LLM的接口。我们将定义一个简单的工具,用于接收输入文本并返回处理后的结果。首先,我们需要定义一个工具类。这个工具类将继承自,并实现run。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 8093

【AI智能体】最强AI编程利器 Claude Code 从部署到项目实战详解

最强AI编程利器 Claude Code 从部署到项目实战详解

congge 4508

C#winform第一个小程序——简易计算器

分享我的第一个完整的C#winform小程序,只为记录!      写这个小程序的时候,我连语法还都不怎么会,只能边写边学,拖控件、设置属性也还是临时学会的。所以会有比较大的缺陷,而且使用的语法都是比较简单的,没有涉及稍微复杂一点点的代码。因为初学,所以很多地方不完善,已经做到当时尽可能的最好了。      写这个程序的时候一开始真的是一点头绪都没有的,当时一片空白,无从下手,但是最

SmallMr 1万+

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

1.C#WinForm基础制作简单计算器

利用c#语言编写简单计算器: 核心知识点:   MessageBox.Show(Convert.ToString(comboBox1.SelectedIndex));//下拉序号 MessageBox.Show(Convert.ToString(comboBox1.SelectedItem));//下拉内容 MessageBox.Show(Convert.ToString(co...

weixin_34092370的博客 357

YOLOv10改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv10目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 2186

DRM全解析 —— encoder详解(3)

DRM全解析 —— encoder详解(3)

phmatthaus的专栏 489

C#计算器(winform版)

Random rad = new Random(); // 实例化随机对象 private void Form1_Load(object sender, EventArgs e) { this.Left = Screen.PrimaryScreen.WorkingArea.Width / 2 - this.Width / 2; ...

dust__的博客 1630

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

软件工程作业——完成一个可视化计算器

在本次作业中,我对对可视化界面的设计有了初步的认识,熟悉了c#的相关语法,学习了windows窗体应用的使用,学习了前端界面的设计,提高了自己的编程技能,增强了发现与解决问题的能力,也意识自己早期规划与整体意识的不足。将输入分为数字,运算符与其他功能,点击数字按钮,将数字打印到文本框中,点击运算符按钮,储存运算符与文本框中的数,并清空文本框。刚开始拿到题目后,先查找了相似的事例,分析其设计语言与设计思路作为参考,由于本人的设计经验不足以及时间等原因,最终选择了C#WinForm来实现可视化计算器。

weixin_62847089的博客 178

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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; namespac

qhx556的专栏 448

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: C#winform DataGridView控件的使用
下一篇: Arcgis软件应用(四)网络分析
define_YIDA
博客等级 码龄9年 323粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值