将C#中先前金额的数字相加

本文关键字:数字 金额 | 更新日期: 2023-09-27 18:26:58

我正试图使用C#创建一个简单的销售点,用户要求选择带有价格的产品,并要求输入他们想要购买的数量。之后,系统会询问用户是否想购买另一种产品,当用户选择"是"时,我想添加从上一笔交易中购买的产品金额(价格*数量)和从新交易购买的金额。如果用户最终选择"否",系统将使用消息框显示购买产品的总金额。我正在考虑循环,但我不知道从哪里开始。任何建议都将不胜感激。谢谢

这是我的代码:

try
{
    priceData = double.Parse(txtPR.Text);
    qty = double.Parse(txtQty.Text);
    answer = priceData * qty;
    lblTotal.Text = "You have to pay " + answer.ToString();
    MessageBox.Show("You have to pay a total of:" + answer.ToString());
    writeFile();
    DialogResult result = MessageBox.Show("Do you want to buy other products?", "BUY", 
                             MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if (result == DialogResult.Yes)
    {
    }
    else if (result == DialogResult.No)
    {
        MessageBox.Show("Thank you for shopping! Kindly get your receipt.");                        
        System.Diagnostics.Process.Start(@"c:'Add'Receipt.txt");
    }
}

将C#中先前金额的数字相加

当前应用程序的设计方法存在一些问题,应用程序逻辑直接出现在UI中(如果您想了解这一点,请查看"MVC")。尽管如此,还是有一种相当简单的方法来完成你的要求。

Form类中,添加一个名为Subtotal的新特性。您可以使用它来保持值

例如:

public partial class YourFormName : Form
{
    double Subtotal;
}

现在使用您的方法:

try
{
    priceData = double.Parse(txtPR.Text);
    qty = double.Parse(txtQty.Text);
    answer = priceData * qty;
    Subtotal += answer;
    lblTotal.Text = "You have to pay " + Subtotal.ToString();
    MessageBox.Show("You have to pay a total of:" + Subtotal.ToString());
    writeFile();
    DialogResult result = MessageBox.Show("Do you want to buy other products?", "BUY", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if(result == DialogResult.No)
    {
        Subtotal = 0;
        MessageBox.Show("Thank you for shopping! Kindly get your receipt.");
        System.Diagnostics.Process.Start(@"c:'Add'Receipt.txt");
    }
}

这通过将answer值添加到小计中来跟踪它。当用户拒绝购买其他产品(DialogResult.No)时,主表单将再次激活。此时,用户输入新的数量/价格,并且必须激活该事件以再次更新Subtotal

正如您所说,您也可以使用循环,但这些循环必须启动新的UI窗口才能捕获新的数量和价格。

因为我看不到您代码的其余部分,所以我假设您的方法是由"更新"按钮单击事件或类似事件直接调用的。

您必须将"询问"代码封装在一个循环中,该条件是MessageBox的结果。

它将沿着以下路线:

[Initialize the variables]
qtyPrd1 = 0;
pricePrd1 = 0;
qtyPrd2 = 0;
pricePrd2 = 0;
...
[Main loop]
do {
[Present the user the products]
[Get the choice (product, quantity)]
[Add the value to the product variable]
if (choice == 1)
    qtyPrd1++;
if (choice == 2)
    qtyPrd2++;
subtotal = qtyPrd1 * pricePrd1 + qtyPrd1 * pricePrd2 + ...;
[Present the subtotal]
} while (result == DialogResult.Yes);
[Compute total]
total = qtyPrd1 * pricePrd1 + qtyPrd1 * pricePrd2 + ...;
[Present total result of cart]

请注意,[]只是注释,请参阅您当前的代码来填补空白,您已经拥有了所需的一切。