我正在尝试使用Visual Studio创建一个表单程序,其中用户插入一些硬币并选择饮料。在选择饮料之后,插入的量被饮料的价格扣除,并且向用户显示正确的格式变化。因此,如果用户插入£1并且所选饮料为60p,则程序计算40p的变化,但如果20p不可用,则将变化显示为两个20p或两个四个10p。我无法理解这种逻辑。到目前为止我有。
class cashBox
{
public int[] coinHold = { 5, 5, 5 , 5 }; //{10p,20p,50p,£1}
}
以上是CashBox类,它在下面创建货币对象。
cashBox money = new Cashbox();
Soda coke = new Soda();
public double totalmoney;
private void btn_pound_Click(object sender, EventArgs e)
{
double one_pound = 1.00;
if (money.coinHold[0] <= 10)
{
totalmoney = one_pound + totalmoney;
money.coinHold[3]++;
lbl_total_money.Text = Convert.ToString(totalmoney);
}
else
{
lbl_total_money.Text = "sorry £1 Cashbox is full";
}
}
以上代码是供用户输入1英镑的硬币。我有相同的代码重复10p,20p,50p。
class Soda
{
public int[] current_coke_cans = { 5 };
public double[] price = { 0.60 };
public int[] cansSold = { 0 };
}
上面是Soda的类,其中创建了焦炭对象。
public int remainingCan;
public double remaining;
public int soldCans;
private void btn_select_coke_Click(object sender, EventArgs e)
{
totalmoney = totalmoney - coke.price[0];
//lbl_total_money.Text = Convert.ToString(totalmoney);
remainingCan = coke.current_coke_cans[0]--;
//money.coinHold[0]--;
soldCans = coke.cansSold[0]++ + 1;
while (totalmoney != 0)
{
if (totalmoney >= 1.00)
{
totalmoney = totalmoney - 1.00;
money.coinHold[3]--;
}
else if (totalmoney >= 0.50 && totalmoney < 1.00)
{
totalmoney = totalmoney - 0.50;
money.coinHold[2]--;
}
else if (totalmoney >= 0.20 && totalmoney < 0.50)
{
totalmoney = totalmoney - 0.20;
money.coinHold[1]--;
}
else if (totalmoney >= 0.10 && totalmoney < 0.20)
{
totalmoney = totalmoney - 0.10;
money.coinHold[0]--;
}
else {
lbl_total_money.Text = Convert.ToString(totalmoney);
}
}
lbl_total_money.Text = Convert.ToString(totalmoney);
这是令人困惑的部分。我已经设置了一个while循环和一个if else语句来检查硬币的值。我真的被这部分困住了。我不知道从哪里开始。 非常感谢你。