当前位置:编程学习 > C#/ASP.NET >>

c#计算器问题

用windows窗体编写计算器,清零键怎么写   求解



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 WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        
        string a, b, c, result;
           
        private void GetResult()
        {
            switch (c)
            {
                case "+": result = Convert.ToString(Convert.ToInt32(a) + Convert.ToInt32(b)); break;
                case "-": result = Convert.ToString(Convert.ToInt32(a) - Convert.ToInt32(b)); break;
                case "*": result = Convert.ToString(Convert.ToInt32(a) * Convert.ToInt32(b)); break;
                case "/": result = Convert.ToString(Convert.ToInt32(a) / Convert.ToInt32(b)); break;
               
            }
        }
       
        
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            b = b + "1";
            textBox1.Text = b;
            GetResult();
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            b = b + "2";
            textBox1.Text = b;
            GetResult();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            b = b + "3";
            textBox1.Text = b;
            GetResult();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            b = b + "4";
            textBox1.Text = b;
            GetResult();
        }

        private void button5_Click(object sender, EventArgs e)
        {
            b = b + "5";
            textBox1.Text = b;
            GetResult();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            b = b + "6";
            textBox1.Text = b;
            GetResult();
        }

        private void button7_Click(object sender, EventArgs e)
        {
            b = b + "7";
            textBox1.Text = b;
            GetResult();
        }

        private void button8_Click(object sender, EventArgs e)
        {
            b = b + "8";
            textBox1.Text = b;
            GetResult();
        }

        private void button9_Click(object sender, EventArgs e)
        {
            b = b + "9";
            textBox1.Text = b;
            GetResult();
        }

        private void button0_Click(object sender, EventArgs e)
        {
            b = b + "0";
            textBox1.Text = b;
            GetResult();
        }

        private void button10_Click(object sender, EventArgs e)
        {
            textBox1.Text = result;
            c = "+";
            a = a + b;
            b = "";
        }

        private void button12_Click(object sender, EventArgs e)
        {
            textBox1.Text = result;
            c = "-";
            a = a + b;
            b = "";
        }

        private void button11_Click(object sender, EventArgs e)
        {
            textBox1.Text = result;
            c = "*";
            a = a + b;
            b = "";
        }

        private void button13_Click(object sender, EventArgs e)
        {
            textBox1.Text = result;
            c = "/";
            a = a + b;
            b = "";
        }

        private void button14_Click(object sender, EventArgs e)
        {
            textBox1.Text = result;
        }

        private void button15_Click(object sender, EventArgs e)  //清零键   这样写运算后点击会出错 求大神帮帮忙
        {
            textBox1.Text = "";
            a = "";
            b = "";
            result = "";
            return;
        }
    }
}
--------------------编程问答-------------------- 报什么错

你这按钮不能取个名字啊

return;去掉 看报错不 --------------------编程问答-------------------- 去掉也出错,就是点了清除键以后再点数字键就不能继续计算了,出现  出入字符串格式不正确     我是个新手  今天突然想弄个计算器看看就没写按键的名字   谅解一下  嘿嘿 --------------------编程问答--------------------

//你清零后,a = ""; b = "";,a、b都成了空串,
//而你在计算结果里调用的是下面的Convert.ToInt32(a),这样肯定会报错,
//因为空字符串是无法转化成数字的
//你可以直接试下,Convert.ToInt32(""),报的错将和你的一样

case "+": result = Convert.ToString(Convert.ToInt32(a) + Convert.ToInt32(b)); break;
  case "-": result = Convert.ToString(Convert.ToInt32(a) - Convert.ToInt32(b)); break;
  case "*": result = Convert.ToString(Convert.ToInt32(a) * Convert.ToInt32(b)); break;
  case "/": result = Convert.ToString(Convert.ToInt32(a) / Convert.ToInt32(b)); break;

--------------------编程问答-------------------- 这代码写的。。。。。。 --------------------编程问答-------------------- 是啊 你的按钮还是取个名字吧! --------------------编程问答-------------------- private void button1_Click(object sender, EventArgs e)
  {
  b = b + "1";
  textBox1.Text = b;
  GetResult();
   
  }

这是不是点一下就显示1,在点就是11,在就111
这里面用了  GetResult();方法
  GetResult();方法中用了,c但是没给c值
也用了a,也没有值

应该写到=的按钮里吧
——————————————————

private void button14_Click(object sender, EventArgs e)
  {
  textBox1.Text =   GetResult();
这个是=按钮吧
  }

//这个是+按钮吧
private void button10_Click(object sender, EventArgs e)
  {
  textBox1.Text = result;
  c = "+";
  a = a + b;
a=b;不要写a + b
  b = "";
  }
+————————
result这个变量没意义GetResult返回结果就好了
--------------------编程问答-------------------- 想起了,学生时代啊..那时没事,就爱弄这玩意...还用简单工厂模式.... --------------------编程问答-------------------- 清零  不就是  给0吗?
--------------------编程问答-------------------- 直接给click时间给个clear不可以么? --------------------编程问答-------------------- 就是你把这个问题解决了,你的运算结果也是错误的。逻辑有问题。, --------------------编程问答-------------------- 学习学习 --------------------编程问答-------------------- 逻辑上有严重的偏差!!! --------------------编程问答-------------------- 为啥面向对象要弄成过程捏。 --------------------编程问答-------------------- 设置text变成0不久可以了么。。 --------------------编程问答-------------------- 清零键里这样设置吧,a=b=result="0",这样试试
--------------------编程问答-------------------- 0 0
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,