Browse Source

调整标准差计算过程

zhouj1203@hotmail.com 4 years ago
parent
commit
8693f7e9cd
1 changed files with 11 additions and 19 deletions
  1. 11 19
      TEAMModelFunction/TriggerExam.cs

+ 11 - 19
TEAMModelFunction/TriggerExam.cs

@@ -373,9 +373,9 @@ namespace TEAMModelFunction
                         foreach (ExamResult result in examResults) {
                             sc += result.studentScores[result.studentIds.IndexOf(id)].Sum();
                         }
-                        powSum += Math.Pow(sc - examResults[0].studentIds.Count > 0 ? Math.Round(score * 1.0 / examResults[0].studentIds.Count, 2) : 0, 2);
+                        powSum += Math.Pow(sc - NewsRateScore , 2);
                     }
-                    info.standard = examResults[0].studentIds.Count > 0 ? Math.Pow(powSum / examResults[0].studentIds.Count, 0.5) : 0;
+                    info.standard = Math.Round(examResults[0].studentIds.Count > 0 ? Math.Pow(powSum / examResults[0].studentIds.Count, 0.5) : 0,2);
                     double  NewsRate= allScore > 0 ? Math.Round(NewsRateScore / allScore * 100,2) : 0;
                     info.lostStu = losStu;
                     //判断均分是否发生变化,便于实时的更新评测基本信息
@@ -499,33 +499,25 @@ namespace TEAMModelFunction
                     //powSum += Math.Pow(classSrate - result.average, 2);
                 }
             }
+            result.average = result.studentIds.Count > 0 ? Math.Round(score * 1.0 / result.studentIds.Count, 2) : 0;
             foreach (ExamClassResult classResult in examClassResults) {
 
-                double classSrate = 0;
+                //double classSrate = 0;
                 if (classResult.subjectId.Equals(subject.id))
                 {
-
-                    foreach (List<double> scores in classResult.studentScores)
+                    foreach (string id in classResult.studentIds)
                     {
-                        List<double> newScores = new List<double>();
-                        foreach (double sc in scores)
-                        {
-                            newScores.Add(sc > -1 ? sc : 0);
-
-                        }
-                        classSrate += newScores.Sum();
+                         double sc =  classResult.studentScores[classResult.studentIds.IndexOf(id)].Sum();
+                         powSum += Math.Pow(sc - result.average, 2);
                     }
                 }
-                foreach (string id in classResult.studentIds)
-                {
-                    powSum += Math.Pow(classSrate - result.studentIds.Count > 0 ? Math.Round(score * 1.0 / result.studentIds.Count, 2) : 0, 2);
-                }                
+                             
             }
             result.standard = Math.Round(result.studentIds.Count > 0 ? Math.Pow(powSum / result.studentIds.Count, 0.5) : 0,2);
             result.csRate = csRate;
-            result.lostStus = lostStu;
-            result.sRate =result.studentIds.Count> 0 ? Math.Round(score *1.0 / result.studentIds.Count ,2 ): 0 / allScore;
-            result.average = result.studentIds.Count > 0 ? Math.Round(score * 1.0 / result.studentIds.Count, 2) : 0;
+            result.lostStus = lostStu;           
+            
+            result.sRate = Math.Round(result.average / allScore,2);
             result.classes = classRanges;
             result.code = "ExamResult-" + info.id;
             result.school = info.school;