void summary_update() { bool temp; Point cur; double level4avg = 0.0; bool level4pass = true; double level5avg = 0.0; bool level5pass = true; double level6avg = 0.0; bool level6pass = true; int a = 0; int b = 0; List <double> level5sorted = new List <double>(); List <double> level6sorted = new List <double>(); foreach (SummaryModuleGroup smg in level4SummaryGroups) { smg.removeControls(); } level4SummaryGroups.Clear(); Module[] level4modules = course.getModules(Level.LEVEL_4); cur = new Point(0, 0); foreach (Module mod in level4modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_4, mod, level4sum); smg.addControls(cur, out cur); level4SummaryGroups.Add(smg); level4avg += mod.score(out temp) * (double)mod.getCredit(); level4pass = level4pass && !temp; } level4avg /= (double)Course.sumModuleCredit(level4modules); if (level4modules.Count() < 1) { level4avg = 0; } marklevel4.Text = "Calculated Average : " + Math.Round(level4avg, 2) + "%"; passfail4.Text = level4pass ? "Pass" : "Fail"; foreach (SummaryModuleGroup smg in level5SummaryGroups) { smg.removeControls(); } level5SummaryGroups.Clear(); Module[] level5modules = course.getModules(Level.LEVEL_5); cur = new Point(0, 0); foreach (Module mod in level5modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_5, mod, level5sum); smg.addControls(cur, out cur); level5SummaryGroups.Add(smg); double scr = mod.score(out temp); int cred = mod.getCredit(); level5avg += scr * (double)cred; level5pass = level5pass && !temp; if (cred == 30) { level5sorted.Add(scr); } level5sorted.Add(scr); } foreach (SummaryModuleGroup smg in level6SummaryGroups) { smg.removeControls(); } level6SummaryGroups.Clear(); Module[] level6modules = course.getModules(Level.LEVEL_6); cur = new Point(0, 0); foreach (Module mod in level6modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_6, mod, level6sum); smg.addControls(cur, out cur); level6SummaryGroups.Add(smg); double scr = mod.score(out temp); int cred = mod.getCredit(); level6avg += scr * (double)cred; level6pass = level6pass && !temp; if (cred == 30) { level6sorted.Add(scr); } level6sorted.Add(scr); } if (level6sorted.Count() < 1) { Awardlabel.Text = "Degree Award : Insufficient Data"; level6avg = 0; level5avg /= (double)Course.sumModuleCredit(level5modules); } else { if (level5sorted.Count() < 1) { level5avg = 0; } level6sorted.Sort(); level5sorted.Add(level6sorted[0]); if (level6sorted.Count() > 1) { level6sorted.RemoveAt(0); } level6avg = level6sorted.Average(); level5sorted.Sort(); if (level5sorted.Count() > 1) { level5sorted.RemoveAt(0); } level5avg = level5sorted.Average(); if (level6avg >= 70.0) { a = 1; } else if (level6avg >= 60.0) { a = 2; } else if (level6avg >= 50.0) { a = 3; } else if (level6avg <= 50.0) { a = 4; } /* split */ if (level5avg >= 60.0) { b = 1; } else if (level5avg >= 50.0) { b = 2; } else if (level5avg >= 40.0) { b = 3; } else if (level5avg <= 40.0) { b = 4; } switch (Math.Max(a, b)) { case 1: Awardlabel.Text = "Degree Award : First"; break; case 2: Awardlabel.Text = "Degree Award : Upper Second"; break; case 3: Awardlabel.Text = "Degree Award : Lower Second"; break; default: if ((level5avg + level6avg) / 2.0 >= 40.0) { Awardlabel.Text = "Degree Award : Third"; } else { Awardlabel.Text = "Degree Award : Fail"; } break; } } marklevel6.Text = "Calculated Average : " + Math.Round(level6avg, 2) + "%"; passfail6.Text = level6pass ? "Pass" : "Fail"; marklevel5.Text = "Calculated Average : " + Math.Round(level5avg, 2) + "%"; passfail5.Text = level5pass ? "Pass" : "Fail"; }
void summary_update() { bool temp; Point cur; double level4avg = 0.0; bool level4pass = true; double level5avg = 0.0; bool level5pass = true; double level6avg = 0.0; bool level6pass = true; int a = 0; int b = 0; List<double> level5sorted = new List<double>(); List<double> level6sorted = new List<double>(); foreach (SummaryModuleGroup smg in level4SummaryGroups) { smg.removeControls(); } level4SummaryGroups.Clear(); Module[] level4modules = course.getModules(Level.LEVEL_4); cur = new Point(0, 0); foreach (Module mod in level4modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_4, mod, level4sum); smg.addControls(cur, out cur); level4SummaryGroups.Add(smg); level4avg += mod.score(out temp) * (double)mod.getCredit(); level4pass = level4pass && !temp; } level4avg /= (double)Course.sumModuleCredit(level4modules); if (level4modules.Count() < 1) { level4avg = 0; } marklevel4.Text = "Calculated Average : " + Math.Round(level4avg, 2) + "%"; passfail4.Text = level4pass ? "Pass" : "Fail"; foreach (SummaryModuleGroup smg in level5SummaryGroups) { smg.removeControls(); } level5SummaryGroups.Clear(); Module[] level5modules = course.getModules(Level.LEVEL_5); cur = new Point(0, 0); foreach (Module mod in level5modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_5, mod, level5sum); smg.addControls(cur, out cur); level5SummaryGroups.Add(smg); double scr = mod.score(out temp); int cred = mod.getCredit(); level5avg += scr * (double)cred; level5pass = level5pass && !temp; if(cred == 30) { level5sorted.Add(scr); } level5sorted.Add(scr); } foreach (SummaryModuleGroup smg in level6SummaryGroups) { smg.removeControls(); } level6SummaryGroups.Clear(); Module[] level6modules = course.getModules(Level.LEVEL_6); cur = new Point(0, 0); foreach (Module mod in level6modules) { SummaryModuleGroup smg = new SummaryModuleGroup(Level.LEVEL_6, mod, level6sum); smg.addControls(cur, out cur); level6SummaryGroups.Add(smg); double scr = mod.score(out temp); int cred = mod.getCredit(); level6avg += scr * (double)cred; level6pass = level6pass && !temp; if(cred == 30) { level6sorted.Add(scr); } level6sorted.Add(scr); } if (level6sorted.Count() < 1) { Awardlabel.Text = "Degree Award : Insufficient Data"; level6avg = 0; level5avg /= (double)Course.sumModuleCredit(level5modules); } else { if (level5sorted.Count() < 1) { level5avg = 0; } level6sorted.Sort(); level5sorted.Add(level6sorted[0]); if (level6sorted.Count() > 1) { level6sorted.RemoveAt(0); } level6avg = level6sorted.Average(); level5sorted.Sort(); if (level5sorted.Count() > 1) { level5sorted.RemoveAt(0); } level5avg = level5sorted.Average(); if (level6avg >= 70.0) { a = 1; } else if (level6avg >= 60.0) { a = 2; } else if (level6avg >= 50.0) { a = 3; } else if (level6avg <= 50.0) { a = 4; } /* split */ if (level5avg >= 60.0) { b = 1; } else if (level5avg >= 50.0) { b = 2; } else if (level5avg >= 40.0) { b = 3; } else if (level5avg <= 40.0) { b = 4; } switch(Math.Max(a, b)) { case 1: Awardlabel.Text = "Degree Award : First"; break; case 2: Awardlabel.Text = "Degree Award : Upper Second"; break; case 3: Awardlabel.Text = "Degree Award : Lower Second"; break; default: if ((level5avg + level6avg) / 2.0 >= 40.0) { Awardlabel.Text = "Degree Award : Third"; } else { Awardlabel.Text = "Degree Award : Fail"; } break; } } marklevel6.Text = "Calculated Average : " + Math.Round(level6avg, 2) + "%"; passfail6.Text = level6pass ? "Pass" : "Fail"; marklevel5.Text = "Calculated Average : " + Math.Round(level5avg, 2) + "%"; passfail5.Text = level5pass ? "Pass" : "Fail"; }