回 帖 发 新 帖 刷新版面

主题:如何修改我的代码用c#.net 实现计算机连加,减,乘,除?

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 WindowsFormsApplication26
{
    public partial class Form1 : Form
    {
        private int Flag = 0;
        private int Nameplate = 0;//
        private double Fig;
       
        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            init();

        }
        private void init()
        {
            txtResult.Text = "0.";        
        
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."|| Flag==1)
            {
                txtResult.Text = btn1.Text;
            }
            else
            {
                txtResult.Text += btn1.Text;
            }
            Flag = 0;

        }

        private void btn2_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."||Flag==1)
            {
                txtResult.Text = btn2.Text;
            }
            else
            {
                txtResult.Text += btn2.Text;
            }
            Flag = 0;
        }

        private void btn3_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."||Flag==1)
            {
                txtResult.Text = btn3.Text;
            }
            else
            {
                txtResult.Text += btn3.Text;
            }
            Flag = 0;
        }

        private void btn4_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."|| Flag == 1 )
            {
                txtResult.Text = btn4.Text;
            }
            else
            {
                txtResult.Text += btn4.Text;
            }
            Flag = 0;
        }

        private void btn5_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0." || Flag == 1)
            {
                txtResult.Text = btn5.Text;
            }
            else
            {
                txtResult.Text += btn5.Text;
            }
            Flag = 0;
        }

        private void btn6_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."||Flag==1)
            {
                txtResult.Text = btn6.Text;
            }
            else
            {
                txtResult.Text += btn6.Text;
            }
            Flag = 0;
        }

        private void btn7_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."|| Flag==1)
            {
                txtResult.Text = btn7.Text;
            }
            else
            {
                txtResult.Text += btn7.Text;
            } 
            Flag = 0;
        }

        private void btn8_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0." || Flag == 1)
            {
                txtResult.Text = btn8.Text;
            }
            else
            {
                txtResult.Text += btn8.Text;
            }
            Flag = 0;
        }

        private void btn9_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."|| Flag==1)
            {
                txtResult.Text = btn9.Text;
            }
            else
            {
                txtResult.Text += btn9.Text;
            }
            Flag = 0;
        }

        private void btn0_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0." || Flag == 1)
            {
                txtResult.Text = "0.";
            }
            else
            {
                txtResult.Text += btn0.Text;
            }
            Flag = 0;
        }

        private void btnDecimal_Click(object sender, EventArgs e)
        {
            if (txtResult.Text == "0."||Flag==1)
            {
                txtResult.Text = "0.";
            }
            else
            {
                txtResult.Text +=btnDecimal.Text;
            }
            Flag = 0;
        }

        private void Clear_Click(object sender, EventArgs e)
        {
            txtResult.Text = "0.";
            Flag = 0;
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {


            //if (Flag == 0)
            //{
                Nameplate = 1;
                Fig = double.Parse(txtResult.Text);                
            //}
            //else
            //{
               
            //}
            Flag = 1;
        }

        private void btnEqualTo_Click(object sender, EventArgs e)
        {
            switch (Nameplate)
            {
                case 1:
                    double str = Fig + double.Parse(txtResult.Text);
                    txtResult.Text = str.ToString();
                    break;
                case 2:
                    double str1 = Fig - double.Parse(txtResult.Text);
                    txtResult.Text = str1.ToString();
                    break;
                case 3:
                    double str2 = Fig * double.Parse(txtResult.Text);
                    txtResult.Text = str2.ToString();
                    break;
                case 4:
                    if (txtResult.Text =="0.")
                    {
                        txtResult.Text = "被除数不能为零";
                    }
                    else
                    {
                        double str3 = Fig / double.Parse(txtResult.Text);
                        txtResult.Text = str3.ToString();
                    }
                    break;
            }           
        }

        private void btnSubtract_Click(object sender, EventArgs e)
        {
            Nameplate = 2;
            Fig = double.Parse(txtResult.Text);
            Flag = 1;
        }

        private void btnMultiply_Click(object sender, EventArgs e)
        {
            Nameplate = 3;
            Fig = double.Parse(txtResult.Text);
            Flag = 1;
        }

        private void btnExcept_Click(object sender, EventArgs e)
        {
            Nameplate = 4;
            Fig = double.Parse(txtResult.Text);
            Flag = 1;
        }
    }
}

回复列表 (共7个回复)

沙发

问下楼主,你是想实现如果在没有按等号的情况下,又按了一个运算符号,是不是,就把前面的数据,先按照你输入的运算符进行运算?

板凳

是的 对 !

3 楼

如果是那样的话,用一个变量去保存你按下的运算符号就行了,如果按的是=号,就将变量清0,如果按的是其他运算符号,就检查变量是否为0,如果不是0,就先进行针对此符号的运算,然后将你按下的运算符号用数字标记下,并保存进该变量,如果是0,就按照你的正常步奏走.

4 楼

你能把我的代码改一下回复给我吗?

5 楼

         private void btnAdd_Click(object sender, EventArgs e)
        {
             if(Flag!=0)//这个标记着你是否是第一次按下运算符号。或者说你有没有按过=号,再按等号的时候注意把Flag给变0;
             {
                 switch(Flag)
                 {
                     case 1:
                         firstnum=firstnum+lastnum;//我把你的FLAG标记用不同的数字来代表是什么运算符号,1是+号,2是-号,3是*号,4是/号
                         lastnum=0.0;
                         this.txtResult.Text = "0.";//顺便说下,这里你可以调用你的=号事件;或者是调用你的+法运算
                         break;
                     case 2:
                         firstnum=firstnum-lastnum;
                         lastnum=0.0;
                         this.txtResult.Text = "0.";
                         break;
                     case 3:
                         firstnum=firstnum*lastnum;
                         lastnum=0.0;
                         this.txtResult.Text = "0.";
                         break;
                     default:
                         firstnum=firstnum/lastnum;
                         lastnum=0.0;
                         this.txtResult.Text = "0.";
                         break;
                 }
             }
             else
             {
                 //这里是你的正常的运算
                 firstnum=Convert.ToDouble (this.txtResult.text.Trim());
                 this.txtResult.Text="0.";
                 lastnum=0.0;
             }
             Flag=1;//不管你是第一次按,还是已经按了其他的符号,这里都要将Flag上+号标记;  
         }

6 楼

我只把你的+号事件给写了,就是你可以连续的按加号了.

7 楼

非常感谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册