Просмотр исходного кода

处理学情缺考学生数据影响算法结果的问题

zhouj1203@hotmail.com 4 лет назад
Родитель
Сommit
df39e0e85d
1 измененных файлов с 19 добавлено и 9 удалено
  1. 19 9
      TEAMModelFunction/TriggerExam.cs

+ 19 - 9
TEAMModelFunction/TriggerExam.cs

@@ -343,7 +343,17 @@ namespace TEAMModelFunction
                         var scount = classResult.studentIds.Count;
                         foreach (List<double> sc in classResult.studentScores)
                         {
-                            subScore += sc.Sum();
+                            List<double> newSc = new List<double>();
+                            foreach (double ssc in sc) {
+                                if (ssc == -1)
+                                {
+                                    newSc.Add(0);
+                                }
+                                else {
+                                    newSc.Add(ssc);
+                                }
+                            }
+                            subScore += newSc.Sum();
                         }
                         foreach (string sid in classResult.studentIds)
                         {
@@ -534,10 +544,10 @@ namespace TEAMModelFunction
                                         int index = classResult.studentIds.IndexOf(id);
                                         if (classResult.studentScores[index].Count > 0)
                                         {
-                                            score += classResult.studentScores[index][n];
+                                            score += classResult.studentScores[index][n] == -1 ? 0 : classResult.studentScores[index][n];
                                             if (classResult.studentScores[index].Sum() >= rhw && phcount < rhwCount)
                                             {
-                                                if (classResult.studentScores[index][n] == 0)
+                                                if (classResult.studentScores[index][n] <= 0)
                                                 {
                                                     phCount++;
                                                 }
@@ -546,14 +556,14 @@ namespace TEAMModelFunction
                                             }
                                             if (classResult.studentScores[index].Sum() <= rhl && plcount < (info.stuCount - rhlCount))
                                             {
-                                                if (classResult.studentScores[index][n] == 0)
+                                                if (classResult.studentScores[index][n] <= 0)
                                                 {
                                                     plCount++;
                                                 }
                                                 plcount++;
                                                 continue;
                                             }
-                                            if (classResult.studentScores[index][n] == 0)
+                                            if (classResult.studentScores[index][n] <= 0)
                                             {
                                                 pCount++;
                                             }
@@ -626,10 +636,10 @@ namespace TEAMModelFunction
                                         int index = classResult.studentIds.IndexOf(id);
                                         if (classResult.studentScores[index].Count > 0)
                                         {
-                                            score += classResult.studentScores[index][n];
+                                            score += classResult.studentScores[index][n] == -1 ? 0 : classResult.studentScores[index][n];
                                             if (classResult.studentScores[index].Sum() >= rhw && phcount < rhwCount)
                                             {
-                                                if (classResult.studentScores[index][n] == 0)
+                                                if (classResult.studentScores[index][n] <= 0)
                                                 {
                                                     phCount++;
                                                 }
@@ -638,14 +648,14 @@ namespace TEAMModelFunction
                                             }
                                             if (classResult.studentScores[index].Sum() <= rhl && plcount < (info.stuCount - rhlCount))
                                             {
-                                                if (classResult.studentScores[index][n] == 0)
+                                                if (classResult.studentScores[index][n] <= 0)
                                                 {
                                                     plCount++;
                                                 }
                                                 plcount++;
                                                 continue;
                                             }
-                                            if (classResult.studentScores[index][n] == 0)
+                                            if (classResult.studentScores[index][n] <= 0)
                                             {
                                                 pCount++;
                                             }