public StudentScore(JHStudentRecord student) { AttendScore = new AttendScoreCollection(); SemestersScore = new SemesterScoreCollection(); GraduateScore = new GraduateScoreCollection(); SHistory = new SemesterDataCollection(); Id = student.ID; Name = student.Name; RefClassID = student.RefClassID; SeatNo = student.SeatNo + ""; StudentNumber = student.StudentNumber; RefCalculationRuleID = student.OverrideScoreCalcRuleID + ""; }
/// <summary> /// 計算學習領域算術平均,當沒有成績當0分算。 /// </summary> /// <param name="semesters">要平均的學期1。</param> /// <returns></returns> private decimal AvgLearningDomainScore(SemesterScoreCollection score, IEnumerable <SemesterData> semesters) { decimal sum = 0; foreach (SemesterData sems in semesters) { if (score.Contains(sems)) //判斷是否包含此學期的成績。 { if (score[sems].LearnDomainScore.HasValue) { sum += score[sems].LearnDomainScore.Value; } } } if (sum > 0) { return(Math.Round(sum / RequestSemesters.Count, 2, MidpointRounding.AwayFromZero)); } else { return(0); } }