创建餐费计算器C#

时间:2018-12-10 19:49:53

标签: c#

我正在尝试使用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。

1 个答案:

答案 0 :(得分:1)

  

...但是当我尝试在进行中的程序中切换RB时,TipRates会添加到第一组tipRates下

那是因为您需要先清除列表,然后再将新的费率集合添加到列表中。

在致电tiplistBox1.Items.Clear()之前先致电tiplistBox1.Items.Add("")