如何将for循环从业务类连接到另一个类?

时间:2018-03-08 03:51:00

标签: c# winforms

因此我被要求编写一个应用程序,使供应商能够根据他标记项目的百分比来查看他可以期望获得的收入。允许用户输入批发商品价格。以表格形式显示标记为5%,6%,7%,8%,9%和10%的项目的零售价格。我在一个Windows窗体应用程序中编写了这个程序,但是我在将一个类的for循环连接到另一个类的表单输出时遇到了麻烦。这是我的代码: 这是我的商务舱:

namespace RetailPrice
{
// Business Class 
class Wholesale
{

    decimal wholesale;

    //Constructor
    public Wholesale(decimal sale)
    {
        this.wholesale = sale;
    }

    public string GetWholesalePrice(string priceIn)
    {
        decimal price = decimal.Parse(priceIn);
        string priceOut = string.Empty;
        //for loop for the class wholesale to set
        for (int i = 5; i < 11; i++)
        {
            decimal percent = i / 100;
            decimal wsale = price * (decimal.Parse(i.ToString()) / decimal.Parse("100"));
            priceOut += string.Format(" Markup of {0} percent is {1:c}\n", i, (decimal.Parse(i.ToString()) / decimal.Parse("100")));
        }
        return priceOut;
    }
}
}

这是我的表单类:

namespace RetailPrice
{
public partial class WholeSalePrice : Form
{
    public WholeSalePrice()
    {
        InitializeComponent();
    }

    private void BtnCalculate_Click(object sender, EventArgs e)
    {
        // Set the intial value for Whole sale price
        Decimal wholesalePrice = 0;
        wholesalePrice = Decimal.Parse(TxtWholeSale.Text);

        //Create an instance of Wholesale that takes wholesaleprice
        Wholesale wsale = new Wholesale(wholesalePrice);

        LblOutput.Text = (wholesalePrice) + wsale.GetWholesalePrice(TxtWholeSale.Text);
}
}

以下是我的表单:My Form

非常感谢任何帮助。我不是最好在这个网站上发布问题,并且已经阅读了如何发表一篇好文章,但是关于如何改进我的帖子的任何建议都非常受欢迎。 我需要表单从for循环中的计算发布标记。我认为这是需要完成的地方。

     // Set the intial value for Whole sale price
    Decimal wholesalePrice = 0;
    wholesalePrice = Decimal.Parse(TxtWholeSale.Text);

    //Create an instance of Wholesale that takes wholesaleprice
    Wholesale wsale = new Wholesale(wholesalePrice);

以下是输出结果:The output

所以我的计算不起作用,因为我需要他从中获得的金额,就像你每卖出5美元一样获得5美元

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。

public string GetWholesalePrice(string priceIn)
{
    decimal price = decimal.Parse(priceIn);
    string priceOut = string.Empty;
    //for loop for the class wholesale to set
    for (int i = 5; i < 11; i++)
    {
        decimal percent = i / 100m;
        decimal wsale = price * percent;
        priceOut += string.Format(" Markup of {0} percent is {1:c}\n", i, wsale);
    }

    return priceOut;
}
  1. 您使用整数除法计算百分比 - 5 / 100 = 0。我将其替换为100m(m表示十进制类型),以便正确计算。
  2. 您正在计算wsale但未使用结果。
  3. 您可以使用decimal.TryParse(...)进一步改善这一点,以处理priceIn不是有效数字的情况。