将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");
}
}
当前应用程序的设计方法存在一些问题,应用程序逻辑直接出现在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]
请注意,[]只是注释,请参阅您当前的代码来填补空白,您已经拥有了所需的一切。