-4

我的招聘人员给了我一个编码任务,作为初级开发人员的工作。有三个选择,我遇到了一个需要计算购买的问题。除非是书籍、食品或药品,否则所有物品都应征收 10% 的税。任何进口的东西都要额外征税 5%,即使它们是免税的。因此,我创建了一个表单,允许用户输入商品名称、两个用于输入商品或免税商品的复选框、一个用于输入价格的文本框以及一个用于每个输入的文本框。下面是一个用于计算总销售税的文本框,下面是一个总计的文本框。第一个复选框名为“Item1Import”,下一个复选框名为“Item1Exempt”。价格文本框名为“Item1Price”,另一个名为“Item1Output”。

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

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 但它不能与其他人一起使用,并且“销售税”和“总计”文本框也不显示任何内容。

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

任何帮助将非常感激。先感谢您。

4

1 回答 1

0

首先,在论坛上发布编码任务以获得工作帮助并不是一种好的方式。如果你不能自己完成编码任务,我建议你重新评估你的技能,问问自己是否准备好接受你想要获得的职位。话虽如此,我记得我刚开始从事那些我当时可能没有生意的职位的日子,所以我对此表示同情。现在到你的代码。

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

于 2013-04-19T02:19:54.007 回答