Forráskód Böngészése

调整人数算法

zhouj1203@hotmail.com 4 éve
szülő
commit
2ce7c69ae8
1 módosított fájl, 48 hozzáadás és 33 törlés
  1. 48 33
      TEAMModelOS/Controllers/Analysis/AnalysisController.cs

+ 48 - 33
TEAMModelOS/Controllers/Analysis/AnalysisController.cs

@@ -177,7 +177,7 @@ namespace TEAMModelOS.Controllers.Analysis
                     subjectPaperDatas.Add(subjectData);
                     classSubjectPaperDatas.Add(classSubjectData);
                     subjectScatter.Add(DoSubjectScatter(examResult));
-                    //gpoint = DoKnowledgePoint(examResult,info);
+                    gpoint = DoKnowledgePoint(examResult,info);
                     //获取一张试卷的满分
                     paperScore.Add(examResult.subjectId, examResult.paper.point.Sum());
                     List<double> StuSubjectTotals = new List<double>();
@@ -706,8 +706,39 @@ namespace TEAMModelOS.Controllers.Analysis
             List<List<double>> result = new List<List<double>>();
             List<ClassRange> classes = new List<ClassRange>();
             List<string> ids = new List<string>();
-                //定位试卷信息
-                int index = 0;
+
+            //求单个知识点所占分数
+            List<string> per = new List<string>();
+            List<string> gper = new List<string>();
+            List<string> knowPer = new List<string>();
+            List<Dictionary<string, double>> eper = new List<Dictionary<string, double>>();
+            Dictionary<string, object> knowledgeALL = new Dictionary<string, object>();
+            Dictionary<string, object> knowledgeMap = new Dictionary<string, object>();
+            Dictionary<string, object> classMap = new Dictionary<string, object>();
+            Dictionary<string, object> wrongMap = new Dictionary<string, object>();
+            HashSet<string> className = new HashSet<string>();
+            List<List<string>> wrongPersent = new List<List<string>>();
+            List<string> key = new List<string>
+            {
+                "id",
+                "className",
+                "seatNO",
+                "point",
+                "anwPoint",
+                "persent"
+            };
+            List<string> keyWrong = new List<string>
+            {
+                "name",
+                "point",
+                "itemNO",
+                "persent",
+                "wrong",
+                "rhw",
+                "rlw"
+            };
+            //定位试卷信息
+            int index = 0;
                 foreach (ExamSubject subject in info.subjects)
                 {
                     if (subject.id.Equals(exam.subjectId))
@@ -719,6 +750,8 @@ namespace TEAMModelOS.Controllers.Analysis
                         index++;
                     }
                 }
+            if (info.papers[index].knowledge != null && info.papers[index].knowledge.Count > 0)
+            {
                 info.papers[index].knowledge.ForEach(k =>
                 {
                     k.ForEach(e =>
@@ -726,10 +759,21 @@ namespace TEAMModelOS.Controllers.Analysis
                         knowledge.Add(e);
                     });
                 });
+            }
+            else {
+                return knowledgeALL;
+            }
+            if (info.papers[index].field != null && info.papers[index].field.Count > 0)
+            {
                 info.papers[index].field.ForEach(f =>
                 {
                     area.Add(f.ToString());
                 });
+            }
+            else {
+                return knowledgeALL;
+            }
+                
                 double Qnum = 0;
                 point = info.papers[index].point;
                 result = exam.studentScores;
@@ -820,36 +864,7 @@ namespace TEAMModelOS.Controllers.Analysis
                     double fieldPersent = fieldPoint / TotalPoint;
                     fper.Add(fieldPersent.ToString("0.00"));
                 }
-                //求单个知识点所占分数
-                List<string> per = new List<string>();
-                List<string> gper = new List<string>();
-                List<string> knowPer = new List<string>();
-                List<Dictionary<string, double>> eper = new List<Dictionary<string, double>>();
-                Dictionary<string, object> knowledgeALL = new Dictionary<string, object>();
-                Dictionary<string, object> knowledgeMap = new Dictionary<string, object>();
-                Dictionary<string, object> classMap = new Dictionary<string, object>();
-                Dictionary<string, object> wrongMap = new Dictionary<string, object>();
-                HashSet<string> className = new HashSet<string>();
-                List<List<string>> wrongPersent = new List<List<string>>();
-                List<string> key = new List<string>
-            {
-                "id",
-                "className",
-                "seatNO",
-                "point",
-                "anwPoint",
-                "persent"
-            };
-                List<string> keyWrong = new List<string>
-            {
-                "name",
-                "point",
-                "itemNO",
-                "persent",
-                "wrong",
-                "rhw",
-                "rlw"
-            };
+               
                 for (int k = 0; k < knowledgeName.Count; k++)
                 {
                     List<string> knowledgeClass = new List<string>();