【发布时间】:2020-04-27 04:39:59
【问题描述】:
我正在网上攻读通用学位,我们的任务是使用 .Forms 开发一个简单的计算器
我能够非常简单地创建 GUI,但在编写一个跟踪运行总数并允许用户执行多个操作的变量时,我正在努力开发。
目前,我的代码允许两个输入和 1 个操作。合计后,如果用户选择另一个数字进行运算,代码只需删除第一个输入并将其替换为第二个原始输入,然后获取第三个输入并替换第二个输入以进行新的计算。
例如,如果我想加 3 + 6,我的计算器会给我 9,但如果我然后按 + 4,而不是得到 13(3+6+4,或者更好,9+4)我得到 10 (6+4)
我希望有人能指出正确的方向,为运行总计创建一个变量,该变量在执行操作后跟踪总计,然后允许用户继续执行操作而无需清除仅两个结果输入。
谢谢
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 System.Windows.Forms;
namespace IT232M2_McCarver_Par1
{
public partial class Calculator : Form
{
string input = string.Empty;
string operand1 = string.Empty;
string operand2 = string.Empty;
char operation;
double result = 0.0;
public Calculator()
{
InitializeComponent();
}
private void button11_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 6;
this.lblDisplay.Text += input;
}
private void button10_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 1;
this.lblDisplay.Text += input;
}
private void cmdZero_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 0;
this.lblDisplay.Text += input;
}
private void cmdTwo_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 2;
this.lblDisplay.Text += input;
}
private void cmdThree_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 3;
this.lblDisplay.Text += input;
}
private void cmdFour_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 4;
this.lblDisplay.Text += input;
}
private void cmdFive_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 5;
this.lblDisplay.Text += input;
}
private void cmdSeven_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 7;
this.lblDisplay.Text += input;
}
private void cmdEight_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 8;
this.lblDisplay.Text += input;
}
private void cmdNine_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
input += 9;
this.lblDisplay.Text += input;
}
private void cmdClear_Click(object sender, EventArgs e)
{
this.lblDisplay.Text = "";
this.input = string.Empty;
this.operand1 = string.Empty;
this.operand2 = string.Empty;
}
private void cmdAdd_Click(object sender, EventArgs e)
{
operand1 = input;
operation = '+';
input = string.Empty;
}
private void cmdSubtract_Click(object sender, EventArgs e)
{
operand1 = input;
operation = '-';
input = string.Empty;
}
private void cmdMultiply_Click(object sender, EventArgs e)
{
operand1 = input;
operation = '*';
input = string.Empty;
}
private void cmdDivide_Click(object sender, EventArgs e)
{
operand1 = input;
operation = '/';
input = string.Empty;
}
private void cmdEqual_Click(object sender, EventArgs e)
{
string runningTotal = result.ToString();
operand2 = input;
double num1, num2;
double.TryParse(operand1, out num1);
double.TryParse(operand2, out num2);
if (operation == '+')
{
result = num1 + num2;
lblDisplay.Text = result.ToString();
}
else if (operation == '-')
{
result = num1 - num2;
lblDisplay.Text = result.ToString();
}
else if (operation == '*')
{
result = num1 * num2;
lblDisplay.Text = result.ToString();
}
else if (operation == '/')
{
if (num2 != 0)
{
result = num1 / num2;
lblDisplay.Text = result.ToString();
}
else
{
lblDisplay.Text = "Cant /Zero";
}
}
}
}
}
【问题讨论】:
-
[visual-studio]标记只能用于有关 Visual Studio 应用程序的问题。 -
如果你要编程,你应该研究很多东西,比如“input += 0;”这一行这意味着什么。但要回答您的问题,当前代码中最简单的方法是在运行操作后在 cmdEqual_Click 处理程序中设置operand1 = result。
标签: c# calculator cumulative-sum