我的招聘人员为我作为初级开发人员的工作分配了编码。有三个选择,我遇到了需要计算购买的问题。除非是书籍,食品或药品,否则所有物品的税率均为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”,每当我删除数字时,它都会崩溃。
任何帮助都会非常感激。提前谢谢。
答案 0 :(得分:0)
首先,在论坛上发布编码工作以获得工作帮助并不是很好。如果你不能自己完成编码任务,我建议你重新评估你的技能,并问自己是否准备好了你想要获得的职位。有了这个说我记得我开始追踪那些职位的那些日子,当时我可能没有任何生意,所以我可以同情这一点。现在到你的代码。
首先,你需要在try catch块中包围你的转换,你的应用程序崩溃的原因是因为0.00不会转换为整数,因为那里有一个小数。 00将工作,但当你删除它们时,你的textbox.text值现在没有什么不会转换,你的程序将崩溃。因此,您需要添加逻辑来处理空字符串值而不进行转换。我建议你在处理货币价值时使用十进制数据类型。正如所建议的那样,我还会创建一个方法,您可以在其中传递复选框值并返回字符串值以设置文本框值。这可能会清理您的事件处理程序代码,因为您的计算似乎是相同的。