|
@@ -648,6 +648,21 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
ExamInfo exam = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<ExamInfo>(id.ToString(), new PartitionKey($"{scode}"));
|
|
|
result.progress = true;
|
|
|
+ //标记单科单班总得分
|
|
|
+ double score = 0;
|
|
|
+ //标准差
|
|
|
+ double powSum = 0;
|
|
|
+ var scount = result.studentIds.Count;
|
|
|
+ foreach (List<double> sc in result.studentScores) {
|
|
|
+ score += sc.Sum();
|
|
|
+ }
|
|
|
+ foreach (string sid in result.studentIds) {
|
|
|
+ double ssc = result.studentScores[result.studentIds.IndexOf(sid)].Sum();
|
|
|
+ powSum += Math.Pow(ssc - scount > 0 ? Math.Round(score * 1.0 / scount, 2) : 0, 2);
|
|
|
+
|
|
|
+ }
|
|
|
+ result.standard = Math.Round(scount > 0 ? Math.Pow(powSum / scount, 0.5) : 0, 2);
|
|
|
+ result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;
|
|
|
exam.subjects.ForEach(s =>
|
|
|
{
|
|
|
if (s.id.Equals(subjectId.ToString()))
|
|
@@ -736,6 +751,23 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
ExamInfo exam = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<ExamInfo>(id.ToString(), new PartitionKey($"Exam-{school}"));
|
|
|
result.progress = true;
|
|
|
+ //标记单科单班总得分
|
|
|
+ double score = 0;
|
|
|
+ //标准差
|
|
|
+ double powSum = 0;
|
|
|
+ var scount = result.studentIds.Count;
|
|
|
+ foreach (List<double> sc in result.studentScores)
|
|
|
+ {
|
|
|
+ score += sc.Sum();
|
|
|
+ }
|
|
|
+ foreach (string sid in result.studentIds)
|
|
|
+ {
|
|
|
+ double ssc = result.studentScores[result.studentIds.IndexOf(sid)].Sum();
|
|
|
+ powSum += Math.Pow(ssc - scount > 0 ? Math.Round(score * 1.0 / scount, 2) : 0, 2);
|
|
|
+
|
|
|
+ }
|
|
|
+ result.standard = Math.Round(scount > 0 ? Math.Pow(powSum / scount, 0.5) : 0, 2);
|
|
|
+ result.average = scount > 0 ? Math.Round(score / scount, 2) : 0;
|
|
|
exam.subjects.ForEach(s =>
|
|
|
{
|
|
|
if (s.id.Equals(subjectId.ToString()))
|