我在组建一个创建收据的系统时遇到了麻烦

时间:2013-04-18 20:54:02

标签: c# textbox

我的招聘人员为我作为初级开发人员的工作分配了编码。有三个选择,我遇到了需要计算购买的问题。除非是书籍,食品或药品,否则所有物品的税率均为10%。进口的任何东西都要征收5%的额外税,即使它们是免税的。因此,我创建了一个表单,允许用户键入项目的名称,两个复选框是否导入或免税,用于输入价格的文本框以及每个输入的文本框。下面是一个文本框,用于计算总销售税,下面是总计的文本框。第一个复选框名为“Item1Import”,下一个复选框名为“Item1Exempt”。价格文本框名为“Item1Price”,另一个名称为“Item1Output”。对于每个项目,数字都会改变,Item2Import,Item3Import等。最后两个文本框称为“SalesTax”和“Total”。

这是我到目前为止的代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
     public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }


        private void Item1Price_TextChanged(object sender, EventArgs e)
            {
                if(Item1Exempt.Checked && Item1Import.Checked)
                {
                    Item1Output.Text = ((Convert.ToInt32(Item1Price.Text)) + (Convert.ToInt32(Item1Price.Text) * 0.05).ToString("C2"));
                }
                else if(Item1Exempt.Checked && !Item1Import.Checked)
                {
                    Item1Output.Text = (Convert.ToInt32(Item1Price.Text)).ToString("C2");
                }
                else if(!Item1Exempt.Checked && Item1Import.Checked)
                {
                    Item1Output.Text = ((Convert.ToInt32(Item1Price.Text) + (Convert.ToInt32(Item1Price.Text) * 0.1) + (Convert.ToInt32(Item1Price.Text) * 0.05)).ToString("C2"));
                }
                else
                {
                    Item1Output.Text = ((Convert.ToInt32(Item1Price.Text)) + (Convert.ToInt32(Item1Price.Text) * 0.1)).ToString("C2");
                }

            }

        private void Item2Price_TextChanged(object sender, EventArgs e)
            {
                if (Item2Exempt.Checked && Item2Import.Checked)
                {
                    Item2Output.Text = ((Convert.ToInt32(Item2Price.Text)) + (Convert.ToInt32(Item2Price.Text) * 0.05).ToString("C2"));
                }
                else if (Item2Exempt.Checked && !Item2Import.Checked)
                {
                    Item2Output.Text = (Convert.ToInt32(Item2Price.Text)).ToString("C2");
                }
                else if (!Item2Exempt.Checked && Item2Import.Checked)
                {
                    Item2Output.Text = ((Convert.ToInt32(Item2Price.Text) + (Convert.ToInt32(Item2Price.Text) * 0.1) + (Convert.ToInt32(Item2Price.Text) * 0.05)).ToString("C2"));
                }
                else
                {
                    Item2Output.Text = ((Convert.ToInt32(Item2Price.Text)) + (Convert.ToInt32(Item2Price.Text) * 0.1)).ToString("C2");
                }
            }

        private void Item3Price_TextChanged(object sender, EventArgs e)
            {
                if (Item3Exempt.Checked && Item3Import.Checked)
                {
                    Item3Output.Text = ((Convert.ToInt32(Item3Price.Text)) + (Convert.ToInt32(Item3Price.Text) * 0.05).ToString("C2"));
                }
                else if (Item3Exempt.Checked && !Item3Import.Checked)
                {
                    Item3Output.Text = (Convert.ToInt32(Item3Price.Text)).ToString("C2");
                }
                else if (!Item3Exempt.Checked && Item3Import.Checked)
                {
                    Item3Output.Text = ((Convert.ToInt32(Item3Price.Text) + (Convert.ToInt32(Item3Price.Text) * 0.1) + (Convert.ToInt32(Item3Price.Text) * 0.05)).ToString("C2"));
                }
                else
                {
                    Item3Output.Text = ((Convert.ToInt32(Item3Price.Text)) + (Convert.ToInt32(Item3Price.Text) * 0.1)).ToString("C2");
                }
            }

        private void Item4Price_TextChanged(object sender, EventArgs e)
            {
                if (Item4Exempt.Checked && Item4Import.Checked)
                {
                    Item4Output.Text = ((Convert.ToInt32(Item4Price.Text)) + (Convert.ToInt32(Item4Price.Text) * 0.05).ToString("C2"));
                }
                else if (Item4Exempt.Checked && !Item4Import.Checked)
                {
                    Item4Output.Text = (Convert.ToInt32(Item4Price.Text)).ToString("C2");
                }
                else if (!Item4Exempt.Checked && Item4Import.Checked)
                {
                    Item4Output.Text = ((Convert.ToInt32(Item4Price.Text) + (Convert.ToInt32(Item4Price.Text) * 0.1) + (Convert.ToInt32(Item4Price.Text) * 0.05)).ToString("C2"));
                }
                else
                {
                    Item4Output.Text = ((Convert.ToInt32(Item4Price.Text)) + (Convert.ToInt32(Item4Price.Text) * 0.1)).ToString("C2");
                }
            }

        private void SalesTax_TextChanged(object sender, EventArgs e)
            {
                SalesTax.Text = (((Convert.ToInt32(Item1Output.Text) - Convert.ToInt32(Item1Price.Text)) + ((Convert.ToInt32(Item2Output.Text) - Convert.ToInt32(Item2Price.Text)) + ((Convert.ToInt32(Item3Output.Text) - Convert.ToInt32(Item3Price.Text)) + ((Convert.ToInt32(Item4Output.Text) - Convert.ToInt32(Item4Price.Text)).ToString("C2"));
            }

        private void Total_TextChanged(object sender, EventArgs e)
            {
                Total.Text = ((Convert.ToInt32(Item1Output)) + (Convert.ToInt32(Item1Output)) + (Convert.ToInt32(Item1Output)) + (Convert.ToInt32(Item1Output)).ToString("C2"));
            }

    }
}

我遇到的第一个问题是每当我输入Item1Price时,它输出到Item1Output但它不能与其他输出一起工作,而“salestax”和“total”文本框也没有显示任何内容。< / p>

第二个问题是我不能输入像“O.OO”这样的数字,但我可以输入“00”,每当我删除数字时,它都会崩溃。

任何帮助都会非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,在论坛上发布编码工作以获得工作帮助并不是很好。如果你不能自己完成编码任务,我建议你重新评估你的技能,并问自己是否准备好了你想要获得的职位。有了这个说我记得我开始追踪那些职位的那些日子,当时我可能没有任何生意,所以我可以同情这一点。现在到你的代码。

首先,你需要在try catch块中包围你的转换,你的应用程序崩溃的原因是因为0.00不会转换为整数,因为那里有一个小数。 00将工作,但当你删除它们时,你的textbox.text值现在没有什么不会转换,你的程序将崩溃。因此,您需要添加逻辑来处理空字符串值而不进行转换。我建议你在处理货币价值时使用十进制数据类型。正如所建议的那样,我还会创建一个方法,您可以在其中传递复选框值并返回字符串值以设置文本框值。这可能会清理您的事件处理程序代码,因为您的计算似乎是相同的。