|
@@ -576,17 +576,23 @@ namespace TEAMModelOS.FunctionV4
|
|
|
losStu = losStu.Union(examResults[0].lostStus).ToList();
|
|
|
foreach (ExamResult examResult in examResults)
|
|
|
{
|
|
|
+ //取交集
|
|
|
+ losStu = losStu.Intersect(examResult.lostStus).ToList();
|
|
|
if (info.id == examResult.examId)
|
|
|
{
|
|
|
- foreach (List<double> sc in examResult.studentScores)
|
|
|
+ //处理缺考的学生
|
|
|
+ List<string> stus = examResult.studentIds.Except(losStu).ToList();
|
|
|
+ foreach (var id in stus) {
|
|
|
+ int index = examResult.studentIds.IndexOf(id);
|
|
|
+ score += examResult.studentScores[index].Sum();
|
|
|
+ }
|
|
|
+ /*foreach (List<double> sc in examResult.studentScores)
|
|
|
{
|
|
|
score += sc.Sum();
|
|
|
- }
|
|
|
- stuCount = examResult.studentIds.Count;
|
|
|
+ }*/
|
|
|
+ stuCount = examResult.studentIds.Count - losStu.Count;
|
|
|
}
|
|
|
- //powSum += Math.Pow(score - examResult.studentIds.Count > 0 ? Math.Round(score * 1.0 / examResult.studentIds.Count, 2) : 0, 2);
|
|
|
- //取交集
|
|
|
- losStu = losStu.Intersect(examResult.lostStus).ToList();
|
|
|
+ //powSum += Math.Pow(score - examResult.studentIds.Count > 0 ? Math.Round(score * 1.0 / examResult.studentIds.Count, 2) : 0, 2);
|
|
|
}
|
|
|
double NewsRateScore = stuCount > 0 ? Math.Round(score * 1.0 / stuCount, 2) : 0;
|
|
|
foreach (PaperSimple simple in info.papers)
|