我正在尝试使用C#创建一个餐费计算器。 这是我当前的代码
public partial class Form1 : Form
{
const double TAX_RATE = .076;
const double EXTRA_DISCOUNT = .1;
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void tiplistBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if ((lessThanButton.Checked == true) && (moreThanButton.Checked == false)) ;
{
int selectedIndex = tiplistBox1.SelectedIndex;
switch (selectedIndex)
{
case 1:
break;
}
}
}
private void calculateButton_Click(object sender, EventArgs e)
{
int mealCost = int.Parse(mealCostBox1.Text);
double tax = (mealCost * TAX_RATE) + mealCost;
double disc = (tax * EXTRA_DISCOUNT);
double tipRate = (tax - disc);
double totalCost = (tipRate);
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
int count = 1;
if ((lessThanButton.Checked == true) && (moreThanButton.Checked == false))
{
tiplistBox1.Items.Add("");
for (count = 10; count <= 35; count += 5)
tiplistBox1.Items.Add("Tip Rate: " + count + "%");
count++;
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
int count = 1;
if ((lessThanButton.Checked == false) && (moreThanButton.Checked == true))
{
tiplistBox1.Items.Add("");
for (count = 15; count <= 35; count += 5)
tiplistBox1.Items.Add("Tip Rate: " + count + "%");
count++;
}
}
}
用户必须输入餐量。 然后,用户选择一个单选按钮,询问有多少人吃饭。 (一个RB小于6,另一个RB大于6)。此按钮用于给出在tiplistBox1中显示的小费率(如果<6 ppl = 10,15,20,25,30,35 ,如果> 6 ppl 15,20,25,30,35),则用户还必须确定是否存在任何类型的折扣,如果选中了三个框(学生,军事或高级)中的一个,则可以从三个框之一中进行选择添加10%的折扣。一旦全部选定,那么计算按钮应被认为是进餐费用加上TAX_RATE,取消所有折扣,如果从tiplistBox1选项中选择了小费率,则添加tipRate然后给出应付金额。
现在,我的项目尚未完成,有几个问题,首先,如您所见,我没有使用If,Else语句,当我需要使用switch语句时,从一开始就运行程序,例如,如果我选择的RB小于6人,则可以正确显示tipRate,则显示的tipRate为10、15、20、25、30、35。如果相反,从一开始我选择的是> 6人的RB,那么将显示tipRates 15,20,25,30,35。很好,但是当我尝试在进行中的程序中切换RB时,TipRates会添加到第一组tipRates下 ,而且由于我使用的是switch语句,所以如果我选择了一个RB,则显示的tipRates不匹配,这意味着如果我创建一种情况1:一种情况下显示10%,而另一种情况下显示15%,搞乱了计算过程。
我需要帮助! 如何确保所选的tipRate将在计算中显示。 例如,如果情况1:显示15%,而数学仅显示10%tipRate。
答案 0 :(得分:1)
...但是当我尝试在进行中的程序中切换RB时,TipRates会添加到第一组tipRates下
那是因为您需要先清除列表,然后再将新的费率集合添加到列表中。
在致电tiplistBox1.Items.Clear()
之前先致电tiplistBox1.Items.Add("")
。