sss系统的平均值,标准差计算公式。先放个效果图:
代码如下:
protected void Page_Load(object sender, EventArgs e) { //Flash画图 CreateChart(); } //FLash柱状图显示 public void CreateChart() { DataTable dt = new DataTable(); string[] targetArr = new string[3]; string[] targetNameArr = new string[3]; //存放targetName的数组 double[] percentNum = new double[3]; //存放百分位数数组; string sqlstr = "SELECT SUM(GetFeng) as gf,SUM(TotalFeng) as tf,UID FROM answertable where CpTID='3' group by UID order by tf"; dt = DtDB.GetDataTable(sqlstr); double[] doubleArray = new double[dt.Rows.Count]; //doubleArray每一元素中装的值是 一个人的某项指标的平均值 for (int x = 0; x < dt.Rows.Count; x++) { DataRow dr2 = dt.Rows[x]; doubleArray[x] = Convert.ToDouble(dr2["gf"]) / 4; //4为一指标所含题量(一般一指标4道题) } double An = 0.0; double AvgN = 0.0; double StandDevN = 0.0; AvgN = Average(doubleArray); StandDevN = StandardDeviation(doubleArray); Label1.Text = dt.Rows.Count+ "平均值是:" + AvgN.ToString() + " ^^^ 标准差是:" + StandDevN.ToString(); dt.Dispose(); } //平均值标准差计算公式 protected double StandardDeviation(double[] num) { double avg = Average(num); double SumOfSqrs = 0.0; foreach (double d in num) { SumOfSqrs += Math.Pow(d - avg, 2); } return Math.Sqrt((SumOfSqrs / (num.Length - 1))); } protected double Average(double[] num) { double sum = 0.0; foreach (double d in num) { sum += d; } return sum / Convert.ToDouble(num.Length); }