簡體   English   中英

如何讓我的計算器進行多次計算? (C#)

[英]How can I get my calculator to do more than one calculation? (C#)

我使用 Visual Studio 和 C# 編程語言創建了一個計算器。 一切都很好,除了一件事。

我不能讓計算器一次做多個計算(例如:3 + 3),我希望它可以做 3 + 3 + 3 + 3,但我不知道該怎么做。

(我把你應該感興趣的代碼留在下面)

    private void click_operazione(object sender, EventArgs e)
    {
        double i;
        if (double.TryParse(textBox1.Text, out i))
        {
            Button b = (Button)sender;
            Operazione = b.Text;
            numero = double.Parse((textBox1.Text));
            hapremuto_operazione = true;
            textBox2.Text = numero + " " + Operazione;
        }
    }

    private void risultato_click(object sender, EventArgs e)
    {
        hapremuto_uguale = true;
        switch (Operazione)
        {
            case "+":

                risultato = (numero + double.Parse(textBox1.Text)).ToString();
                textBox2.Text = textBox2.Text + " " + textBox1.Text;
                textBox1.Text = risultato;
                textBox2.Text = textBox2.Text + " = " + risultato;
                break;
            case "-":
                risultato = (numero - double.Parse(textBox1.Text)).ToString();
                textBox2.Text = textBox2.Text + " " + textBox1.Text;
                textBox1.Text = risultato;
                textBox2.Text = textBox2.Text + " = " + risultato;
                break;
            case "x":
                risultato = (numero * double.Parse(textBox1.Text)).ToString();
                if (risultato.Length <= 15)
                {
                    textBox2.Text = textBox2.Text + " " + textBox1.Text;
                    textBox1.Text = risultato;
                    textBox2.Text = textBox2.Text + " = " + risultato;
                }
                else
                {
                    textBox1.Text = "errore";
                    textBox2.Text = "errore";
                }
                break;
            case ":":
                risultato = (numero / double.Parse(textBox1.Text)).ToString();
                textBox2.Text = textBox2.Text + " " + textBox1.Text;
                textBox1.Text = risultato;
                textBox2.Text = textBox2.Text + " = " + risultato;
                break;
            case "%":
                risultato = ((numero * double.Parse(textBox1.Text)) / 100).ToString();
                textBox2.Text = textBox2.Text + " " + textBox1.Text;
                textBox1.Text = risultato;
                textBox2.Text = textBox2.Text + " = " + risultato;
                break;
        }
        ha_appena_messo_una_virgola = false;
    } 

我還沒有嘗試任何東西,我沒有想到任何想法

計算器

您可以創建一個接受用於計算的方法引用的delegate

請參閱代表

public delegate double CalculateExpression(double value1, double value2);

然后,您需要創建與委托具有相同參數列表和相同返回類型的方法。

例如,這將成倍增加:

總的來說,我建議尋找代表來解決這個問題。

public double Multiply(double value1, double value2)
{
    return value1 * value2; 
    // add validation and etc. if needed instead of returning 
    // immediately .
}

在調用方法中創建和使用此委托。

var calcExpression = new CalculateExpression(Multiply);
double result = calcExpression(10, 10); // result is 100.

您可以通過文本框加號按鈕輸入重復編號,或者在下拉列表 select 中輸入當前操作的重復值。

因此,例如,您希望將 3 添加到自身 10 次通過您的界面輸入數字 10,然后在后端進行必要的計算。 謝謝。

啊我明白了
然后我會有一個 textArea ,用戶可以在其中繼續添加由一些分隔符分隔的操作,您可以預先告知。

然后當他們完成后,他們點擊一些按鈕開始處理。

在后端,您將每個操作存儲在一個列表中。
驗證每個操作可能使用某些表達式 API,評估每個操作並最終一次性顯示所有結果

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM