我有一个非常小的Windows窗体应用程序,该应用程序根据每年的交付量来计算仓库的存储成本,并以图表形式显示结果。 它正在执行应有的操作,但是只有一个小缺陷。
第一位有13列,然后每隔12列就有12列。 我希望它总是12。
我一直在尝试对一些代码行进行重新排序,看起来一切正常,我可能只是缺少了一行代码,但无法弄清楚
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StorageCost
{
public partial class Form1 : Form
{
public static int throughPot = 52000;
public static int weekly = 1000;
public static int weeklyPalletCost = 180;
public static int deliveries = 2;
public int storageCost;
public static int x = 0;
public static int currentPot = throughPot / deliveries;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Calculate();
}
private void Calculate()
{
currentPot = throughPot / deliveries;
storageCost = 0;
x = 0;
chart1.Series[0].Points[0].YValues[0] = currentPot + 4000;
for (int i = 1; i < 51; i++)
{
currentPot -= weekly;
if (x>= 51 / deliveries)
{
x = 0;
currentPot = throughPot / deliveries;
}
chart1.Series[0].Points[i].YValues[0] = currentPot + 4000;
storageCost += currentPot * weeklyPalletCost;
x++;
}
cost.Text = "Total storage cost: £" + storageCost / 100;
chart1.ChartAreas[0].RecalculateAxesScale();
chart1.Update();
}
private void deliveriesUpDown_ValueChanged(object sender, EventArgs e)
{
deliveries = (int)deliveriesUpDown.Value;
Calculate();
}
}
}
这是完整的代码。 我基本上所需要做的就是从第13列开始就获得相同的结果
任何帮助将不胜感激。 预先感谢。
答案 0 :(得分:4)
这是因为第一列是在for循环之外完成的! 注释掉
//currentPot = throughPot / deliveries;
//storageCost = 0;
//x = 0;
//chart1.Series[0].Points[0].YValues[0] = currentPot + 4000;
,然后将循环更改为for (int i = 0; i < 51; i++)
我得到了预期的效果。
感谢@Grimm 我不知道F11,F10这件事。这对我很有帮助!