|
@@ -2268,15 +2268,17 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//获取进线人数
|
|
//获取进线人数
|
|
- int personCount = (int)System.Math.Round( (double)info.stuCount * (touch / 100), 1 ,MidpointRounding.AwayFromZero);
|
|
|
|
|
|
+
|
|
|
|
+ int personCount = (int)System.Math.Round( info.stuCount * (touch / 100.0), MidpointRounding.AwayFromZero);
|
|
|
|
|
|
StudentAnalysis analysis = new StudentAnalysis();
|
|
StudentAnalysis analysis = new StudentAnalysis();
|
|
List<ClassAnalysis> classAnalyses = new List<ClassAnalysis>();
|
|
List<ClassAnalysis> classAnalyses = new List<ClassAnalysis>();
|
|
|
|
+ /* //声明年级所有科目总分
|
|
|
|
+ List<double> total = new List<double>();*/
|
|
//以班级为单位
|
|
//以班级为单位
|
|
List<double> stuTotals = new List<double>();
|
|
List<double> stuTotals = new List<double>();
|
|
foreach (string s in info.targetClassIds) {
|
|
foreach (string s in info.targetClassIds) {
|
|
- //声明班级所有科目总分
|
|
|
|
- double total = 0;
|
|
|
|
|
|
+
|
|
//存放每个班级学生总分
|
|
//存放每个班级学生总分
|
|
List<double> totalClass = new List<double>();
|
|
List<double> totalClass = new List<double>();
|
|
ClassAnalysis classAnalysis = new ClassAnalysis();
|
|
ClassAnalysis classAnalysis = new ClassAnalysis();
|
|
@@ -2301,6 +2303,7 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
analysis.total.Add(stuTotal);
|
|
analysis.total.Add(stuTotal);
|
|
stuTotals.Add(stuTotal);
|
|
stuTotals.Add(stuTotal);
|
|
totalClass.Add(stuTotal);
|
|
totalClass.Add(stuTotal);
|
|
|
|
+ //total.Add(stuTotal);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/* //声明单个班级单科总分
|
|
/* //声明单个班级单科总分
|
|
@@ -2337,7 +2340,7 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
foreach (List<double> scores in result.studentScores)
|
|
foreach (List<double> scores in result.studentScores)
|
|
{
|
|
{
|
|
//添加每个学生各科总分
|
|
//添加每个学生各科总分
|
|
- score.sc.Add(scores.Sum());
|
|
|
|
|
|
+ score.csc.Add(scores.Sum());
|
|
//计算大于及格分数的人数
|
|
//计算大于及格分数的人数
|
|
if (scores.Sum() >= passScore)
|
|
if (scores.Sum() >= passScore)
|
|
{
|
|
{
|
|
@@ -2349,9 +2352,9 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
|
|
|
|
}
|
|
}
|
|
//处理班级及格率以及均分
|
|
//处理班级及格率以及均分
|
|
- double persentClass = i / result.studentIds.Count;
|
|
|
|
- double averageClass = sumClass / result.studentIds.Count;
|
|
|
|
- total += averageClass;
|
|
|
|
|
|
+ double persentClass = i / (result.studentIds.Count * 1.0);
|
|
|
|
+ double averageClass = sumClass / (result.studentIds.Count * 1.0);
|
|
|
|
+ //total += averageClass;
|
|
subjectScore.passPersent.Add(persentClass);
|
|
subjectScore.passPersent.Add(persentClass);
|
|
subjectScore.averageScore.Add(averageClass);
|
|
subjectScore.averageScore.Add(averageClass);
|
|
classAnalysis.subjects.Add(subjectScore);
|
|
classAnalysis.subjects.Add(subjectScore);
|
|
@@ -2360,10 +2363,10 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
}
|
|
}
|
|
//处理单科科班级PR
|
|
//处理单科科班级PR
|
|
subjectTotal.Sort(delegate (double s1, double s2) { return s2.CompareTo(s1); });
|
|
subjectTotal.Sort(delegate (double s1, double s2) { return s2.CompareTo(s1); });
|
|
- foreach (double sc in score.sc)
|
|
|
|
|
|
+ foreach (double sc in score.csc)
|
|
{
|
|
{
|
|
int index = subjectTotal.IndexOf(sc);
|
|
int index = subjectTotal.IndexOf(sc);
|
|
- double CPR = 100 - (100 * (index + 1) - 50) / score.sc.Count;
|
|
|
|
|
|
+ double CPR = 100 - (100 * (index + 1) - 50) / score.csc.Count;
|
|
score.cdpr.Add(CPR);
|
|
score.cdpr.Add(CPR);
|
|
|
|
|
|
}
|
|
}
|
|
@@ -2463,51 +2466,53 @@ namespace TEAMModelOS.Controllers.Analysis
|
|
}
|
|
}
|
|
//单科及格率分数
|
|
//单科及格率分数
|
|
passScore = subjectSum * 0.6;
|
|
passScore = subjectSum * 0.6;
|
|
- //存放学生单科记录
|
|
|
|
- Score score = new Score();
|
|
|
|
List<double> subjectTotal = new List<double>();
|
|
List<double> subjectTotal = new List<double>();
|
|
//存放单科每个班级学生总分
|
|
//存放单科每个班级学生总分
|
|
List<double> totalClass = new List<double>();
|
|
List<double> totalClass = new List<double>();
|
|
- //处理每个班级各个学生各科总分
|
|
|
|
- foreach (ExamClassResult result in examClassResults)
|
|
|
|
- {
|
|
|
|
- if (sub.id.Equals(result.subjectId) && g.id.Equals(result.gradeId))
|
|
|
|
- {
|
|
|
|
- foreach (List<double> scores in result.studentScores)
|
|
|
|
|
|
+ //存放学生单科记录
|
|
|
|
+ foreach (Score score in analysis.scores) {
|
|
|
|
+ if (score.subjectId.Equals(sub.id)) {
|
|
|
|
+ //处理每个班级各个学生各科总分
|
|
|
|
+ foreach (ExamClassResult result in examClassResults)
|
|
{
|
|
{
|
|
- //添加每个学生各科总分
|
|
|
|
- score.sc.Add(scores.Sum());
|
|
|
|
- //计算大于及格分数的人数
|
|
|
|
- if (scores.Sum() >= passScore)
|
|
|
|
|
|
+ if (sub.id.Equals(result.subjectId) && g.id.Equals(result.gradeId))
|
|
{
|
|
{
|
|
- i++;
|
|
|
|
- }
|
|
|
|
- subjectTotal.Add(scores.Sum());
|
|
|
|
- sumClass = sumClass + scores.Sum();
|
|
|
|
|
|
+ foreach (List<double> scores in result.studentScores)
|
|
|
|
+ {
|
|
|
|
+ //添加每个学生各科总分
|
|
|
|
+ score.gsc.Add(scores.Sum());
|
|
|
|
+ //计算大于及格分数的人数
|
|
|
|
+ if (scores.Sum() >= passScore)
|
|
|
|
+ {
|
|
|
|
+ i++;
|
|
|
|
+ }
|
|
|
|
+ subjectTotal.Add(scores.Sum());
|
|
|
|
+ sumClass = sumClass + scores.Sum();
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ count += result.studentIds.Count;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //处理班级及格率以及均分
|
|
|
|
+ double persentClass = i / (count*1.0);
|
|
|
|
+ double averageClass = sumClass / (count * 1.0);
|
|
|
|
+ gradeScore += averageClass;
|
|
|
|
+ subjectScore.passPersent.Add(persentClass);
|
|
|
|
+ subjectScore.averageScore.Add(averageClass);
|
|
|
|
+ gradeAnalysis.subjects.Add(subjectScore);
|
|
|
|
+ gradeAnalyses.Add(gradeAnalysis);
|
|
|
|
+ //处理单科科年级PR
|
|
|
|
+ subjectTotal.Sort(delegate (double s1, double s2) { return s2.CompareTo(s1); });
|
|
|
|
+ foreach (double sc in score.gsc)
|
|
|
|
+ {
|
|
|
|
+ int index = subjectTotal.IndexOf(sc);
|
|
|
|
+ double GPR = 100 - (100 * (index + 1) - 50) / score.gsc.Count;
|
|
|
|
+ score.gdpr.Add(GPR);
|
|
|
|
+ //analysis.gpr.Add(GPR);
|
|
}
|
|
}
|
|
- count += result.studentIds.Count;
|
|
|
|
|
|
+ //analysis.scores.Add(score);
|
|
}
|
|
}
|
|
- }
|
|
|
|
- //处理班级及格率以及均分
|
|
|
|
- double persentClass = i / count;
|
|
|
|
- double averageClass = sumClass / count;
|
|
|
|
- gradeScore += averageClass;
|
|
|
|
- subjectScore.passPersent.Add(persentClass);
|
|
|
|
- subjectScore.averageScore.Add(averageClass);
|
|
|
|
- gradeAnalysis.subjects.Add(subjectScore);
|
|
|
|
- gradeAnalyses.Add(gradeAnalysis);
|
|
|
|
- //处理单科科年级PR
|
|
|
|
- subjectTotal.Sort(delegate (double s1, double s2) { return s2.CompareTo(s1); });
|
|
|
|
- foreach (double sc in score.sc)
|
|
|
|
- {
|
|
|
|
- int index = subjectTotal.IndexOf(sc);
|
|
|
|
- double GPR = 100 - (100 * (index + 1) - 50) / score.sc.Count;
|
|
|
|
- score.gdpr.Add(GPR);
|
|
|
|
- //analysis.gpr.Add(GPR);
|
|
|
|
- }
|
|
|
|
- analysis.scores.Add(score);
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
});
|
|
});
|
|
foreach (GradeAnalysis grade in gradeAnalyses) {
|
|
foreach (GradeAnalysis grade in gradeAnalyses) {
|
|
grade.GradeaverageScore = gradeScore / grade.subjects.Count;
|
|
grade.GradeaverageScore = gradeScore / grade.subjects.Count;
|