C#实现标准计算器功能(顺序计算)

本文介绍了如何使用C#创建一个标准计算器,通过窗体设计和代码实现基本的加减乘除功能。文章提到当前实现仅支持顺序计算,不包含括号和科学计算,对于后者,作者提出了将中缀表达式转化为后缀表达式来实现科学计算的思路。
摘要由CSDN通过智能技术生成

窗体设计
新建C#窗体项目,视图(快捷键V)——>工具箱(X)点击button公共控件,拉出一个大小合适的按钮,然后ctrl+c and ctrl+v复制共20个按钮;
点击TextBox控件,拉出两个显示屏;
点击button在Backgroundimage插入符号图片,BackgroundImageLayout选择Zoom(记得清空Text)
或在Text修改button显示名称;
超丑窗体示例
计算思路
用四个变量进行顺序运算,两个double类型(一个记录中间运算结果,一个输出结果),一个bool类型(判断是否需要进行运算),一个string类型(记录运算符)
代码实现

     namespace 计算器
{
   
    public partial class Form1 : Form
    {
      
        double a=0;
        double b=0;
        bool c=false;
        string d="";

//定义上述四个变量

    private void button13_Click(object sender, EventArgs e)
    {
        if (c == true)
        {
            textBox1.Text = "";
            c = false;
        }
        textBox1.Text += "1";
    }
   // 按钮1的功能实现,在textBox1.Text中输出1 ,1——9的按钮依此类推
 private void button2_Click(object sender, EventArgs e)
        {
        if (c == true)
            {
   
                textBox1.Text = "";
                c = false;
            }
            textBox1.Text += "0";
            if (d == "/")
            {
   
                textBox1.Clear();
                MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
       //按钮0的功能实现,若上个存储的运算符为"/",则报错
 private void button18_Click(object sender, EventArgs e)
    {
   
        if (c == true)
        {
   
            textBox1.Text = "";
            c = false;
        }
        textBox1.Text += ".";
    }
    //小数点的代码实现
 private void button8_Click(object sender, EventArgs e)
    {
   
        if (d == "" && b == 0)
        {
   
            c = true;
            b = double.Parse(textBox1.Text);
            d = "*";
            textBox2.Text = textBox1.Text + d;
            textBox1.Text = "";

        }
        else
        {
   
            switch (d)
            {
   
                case "+": a = b + double.Parse(textBox1.Text); break;
                case "-": a = b - double.Parse(textBox1.Text); break;
                case "*": a = b * double.Parse(textBox1.Text); break;
                case "/": a = b / double.Parse(textBox1.Text); break;
            }
            b = a;
            c = true;
            d = "*";
            textBox2.Text = textBox2.Text + textBox1.Text + d;
            textBox1.Text = "";
        }
    }
    //乘法的代码实现,其实加减乘除的代码都类似,可相互类推。
    private void button1_Click(object sender, EventArgs e)
    {
        switch (d)
        {
            case "+": a = b + double.Parse(textBox1.Text); break;
            case "-": a = b - double.Parse(textBox1.Text); break;
            case "*": a = b * double.Parse(textBox1.Text); break;
            case "/": a = b / double.Parse(textBox1.Text); break;
        }
        textBox2.Text = Convert.ToString(a);
        c = true;
        d = "
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值