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

本文关键字:系统 麻烦 遇到 创建 一个 | 更新日期: 2023-09-27 18:09:50

招聘人员给了我一份初级开发人员的编码任务。有三个选择,我选择了一个需要计算购买金额的问题。除书籍、食品和药品外,所有物品都应缴纳10%的税。任何进口商品即使免税,也要额外征收5%的税。因此,我创建了一个表单,允许用户输入商品名称,两个复选框用于输入商品是进口的还是免税的,一个文本框用于输入价格,一个文本框用于输入每种输入。下面是计算销售税总额的文本框,下面是计算销售税总额的文本框。第一个复选框名为"Item1Import",下一个复选框名为"Item1Exempt"。价格文本框命名为"Item1Price",另一个命名为"Item1Output"。对于每个项目,编号会改变,Item2Import, Item3Import,等等。最后两个文本框分别称为"SalesTax"answers"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"answers"total"文本框也不显示任何内容。

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

任何帮助都将非常感激。

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

首先,在论坛上发布编码作业以获得工作帮助是不合适的。如果你不能自己完成编码任务,我建议你重新评估自己的技能,问问自己是否为你想要获得的职位做好了准备。话虽如此,我还记得我刚开始工作的时候,我在追求那些我当时可能没有业务的职位,所以我能理解这一点。现在开始编写代码。

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