什么是安全库存量 理论:http://wiki.mbalib.com/wiki/%E5%AE%89%E5%85%A8%E5%BA%93%E5%AD%98%E9%87%8F
周末被学校抓来当壮丁,据说是参加XXX全国XX大赛。
结果写了下面这样一小堆垃圾。
Code
1private double CalcSS(string strCompName)
2 {
3 //初始化变量
4 int iCount = 0; //周期数量
5 double douSum = 0; //周期需求量
6 double douSum2 = 0;
7 double douAvg = 0; //平均值
8 double douAvg2 = 0; //方差平均值
9 double douD = 0; //
10 Dictionary<string, double> dDouNum = new Dictionary<string, double>();
11
12 //for (int i = 0; i < 12; i++)
13 //{
14 // dDouNum.Add(i.ToString(), i * 100);
15 //}
16 if (strCompName == "1")
17 {
18 dDouNum.Add("1", 4);
19 dDouNum.Add("2", 2);
20 dDouNum.Add("3", 4);
21 dDouNum.Add("4", 7);
22 dDouNum.Add("5", 9);
23 dDouNum.Add("6", 11);
24 dDouNum.Add("7", 7);
25 dDouNum.Add("8", 11);
26 dDouNum.Add("9", 13);
27 dDouNum.Add("10", 7);
28 dDouNum.Add("11", 8);
29 dDouNum.Add("12", 11);
30 }
31 else
32 { dDouNum.Add("1", 0.3);
33 dDouNum.Add("2", 0.92);
34 dDouNum.Add("3", 0.716);
35 dDouNum.Add("4", 0.96);
36 dDouNum.Add("5", 0.46);
37 dDouNum.Add("6", 0.69);
38 dDouNum.Add("7", 0.91);
39 dDouNum.Add("8", 0.41);
40 dDouNum.Add("9", 2.004);
41 dDouNum.Add("10", 0.676);
42 dDouNum.Add("11", 0.925);
43 dDouNum.Add("12", 0.765);
44 }
45
46 //计算周期次数、需求量合计
47 iCount = dDouNum.Count;
48 foreach (KeyValuePair<string, double> kv in dDouNum)
49 {
50 douSum += kv.Value;
51 }
52 //计算平均值
53 douAvg = douSum / iCount;
54
55
56 //计算方差合计
57 foreach (KeyValuePair<string, double> kv in dDouNum)
58 {
59 douSum2 += System.Math.Pow((kv.Value - douAvg), 2);
60 }
61 //计算方差平均值
62 douAvg2 = douSum2 / iCount;
63 douD = System.Math.Sqrt(douAvg2);
64 return douD;
65 }
66
67 private void btnCale_Click(object sender, EventArgs e)
68 {
69 //double dou = CalcSS() * 1.65 ;
70 //MessageBox.Show(dou.ToString());
71 double douSS1 = CalcSS("1") * 1.65;
72 double douSS2 = CalcSS("2") * 1.65;
73 double douSSAll = douSS1 + douSS2;
74 double douSSAll2 = System.Math.Pow(douSS1, 2) + System.Math.Pow(douSS2, 2);
75 double douD = System.Math.Sqrt(douSSAll2);
76
77 double douSS11 = douD * douSS1 / douSSAll;
78 double douSS12 = douD * douSS2 / douSSAll;
79 }
1private double CalcSS(string strCompName)
2 {
3 //初始化变量
4 int iCount = 0; //周期数量
5 double douSum = 0; //周期需求量
6 double douSum2 = 0;
7 double douAvg = 0; //平均值
8 double douAvg2 = 0; //方差平均值
9 double douD = 0; //
10 Dictionary<string, double> dDouNum = new Dictionary<string, double>();
11
12 //for (int i = 0; i < 12; i++)
13 //{
14 // dDouNum.Add(i.ToString(), i * 100);
15 //}
16 if (strCompName == "1")
17 {
18 dDouNum.Add("1", 4);
19 dDouNum.Add("2", 2);
20 dDouNum.Add("3", 4);
21 dDouNum.Add("4", 7);
22 dDouNum.Add("5", 9);
23 dDouNum.Add("6", 11);
24 dDouNum.Add("7", 7);
25 dDouNum.Add("8", 11);
26 dDouNum.Add("9", 13);
27 dDouNum.Add("10", 7);
28 dDouNum.Add("11", 8);
29 dDouNum.Add("12", 11);
30 }
31 else
32 { dDouNum.Add("1", 0.3);
33 dDouNum.Add("2", 0.92);
34 dDouNum.Add("3", 0.716);
35 dDouNum.Add("4", 0.96);
36 dDouNum.Add("5", 0.46);
37 dDouNum.Add("6", 0.69);
38 dDouNum.Add("7", 0.91);
39 dDouNum.Add("8", 0.41);
40 dDouNum.Add("9", 2.004);
41 dDouNum.Add("10", 0.676);
42 dDouNum.Add("11", 0.925);
43 dDouNum.Add("12", 0.765);
44 }
45
46 //计算周期次数、需求量合计
47 iCount = dDouNum.Count;
48 foreach (KeyValuePair<string, double> kv in dDouNum)
49 {
50 douSum += kv.Value;
51 }
52 //计算平均值
53 douAvg = douSum / iCount;
54
55
56 //计算方差合计
57 foreach (KeyValuePair<string, double> kv in dDouNum)
58 {
59 douSum2 += System.Math.Pow((kv.Value - douAvg), 2);
60 }
61 //计算方差平均值
62 douAvg2 = douSum2 / iCount;
63 douD = System.Math.Sqrt(douAvg2);
64 return douD;
65 }
66
67 private void btnCale_Click(object sender, EventArgs e)
68 {
69 //double dou = CalcSS() * 1.65 ;
70 //MessageBox.Show(dou.ToString());
71 double douSS1 = CalcSS("1") * 1.65;
72 double douSS2 = CalcSS("2") * 1.65;
73 double douSSAll = douSS1 + douSS2;
74 double douSSAll2 = System.Math.Pow(douSS1, 2) + System.Math.Pow(douSS2, 2);
75 double douD = System.Math.Sqrt(douSSAll2);
76
77 double douSS11 = douD * douSS1 / douSSAll;
78 double douSS12 = douD * douSS2 / douSSAll;
79 }