//Create days public CoursesDetails CreateDays(string d) { CoursesDetails day = new CoursesDetails(); day.SubjectDescription = d; day.Class = ""; day.Lecturer = ""; day.GroupCode = -1; return(day); }
//Fill day with empty hours public void FillDay(Day l, TimeSpan et) { var lastClass = new TimeSpan(23, 0, 0); if (et < lastClass) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(new TimeSpan(23, 0, 0).TotalHours - et.TotalHours); blankLess.GroupCode = -1; l.Add(blankLess); } }
static void Main(string[] args) { int totalCreditHours = 0; double totalPoints = 0, gpa = 0; Console.WriteLine(" ***ABASYN UNIVERSITY ISLAMABAD CAMPUS***\n\n"); Console.WriteLine("***GPA Calculation Program by Sohaib Javed***\n\n"); Console.Write("Please Enter Number of Courses :"); byte courses = byte.Parse(Console.ReadLine()); CoursesDetails[] student = new CoursesDetails[courses]; Console.WriteLine("\nEnter your details\n"); for (int i = 0; i < courses; i++) { Console.Write("{0}: Enter Course Name :", (i + 1)); student[i].name = Console.ReadLine(); Console.Write("Enter Credit hours of {0} :", student[i].name); student[i].credits = int.Parse(Console.ReadLine()); Console.Write("Enter Grade of {0} :", student[i].name); student[i].grade = Console.ReadLine(); totalCreditHours += student[i].credits; switch (student[i].grade) { case "a": case "A": student[i].gpa = 4.0 * student[i].credits; break; case "a-": case "A-": student[i].gpa = 3.67 * student[i].credits; break; case "b+": case "B+": student[i].gpa = 3.33 * student[i].credits; break; case "b": case "B": student[i].gpa = 3.00 * student[i].credits; break; case "b-": case "B-": student[i].gpa = 2.67 * student[i].credits; break; case "c+": case "C+": student[i].gpa = 2.33 * student[i].credits; break; case "c": case "C": student[i].gpa = 2.00 * student[i].credits; break; case "c-": case "C-": student[i].gpa = 1.37 * student[i].credits; break; case "d+": case "D+": student[i].gpa = 1.33 * student[i].credits; break; case "d": case "D": student[i].gpa = 1.00 * student[i].credits; break; case "f": case "F": student[i].gpa = 0.00 * student[i].credits; break; case "i": case "I": student[i].gpa = 0.00 * student[i].credits; break; default: break; } totalPoints += student[i].gpa; Console.WriteLine("\n"); } gpa = totalPoints / totalCreditHours; Console.WriteLine("\n\nYour GPA is {0}", gpa); }
//Add course to list of courses public void Add(CoursesDetails c) { Courses.Add(c); }
//Create full timeTable including empty hours from 8:00 to 23:00 public List <TimeTable> MakeTimeTable(List <TimeTable> timeTables) { List <TimeTable> AllTimeTables = new List <TimeTable>(); for (int i = 0; i < timeTables.Count(); i++) { //List<List<SummerSemester>> tTable = new List<List<SummerSemester>>(); TimeTable tTable = new TimeTable(); Day daya = new Day(); Day dayb = new Day(); Day dayc = new Day(); Day dayd = new Day(); Day daye = new Day(); Day dayf = new Day(); daya.Courses.Add(CreateDays("יום ראשון")); dayb.Courses.Add(CreateDays("יום שני")); dayc.Courses.Add(CreateDays("יום שלישי")); dayd.Courses.Add(CreateDays("יום רביעי")); daye.Courses.Add(CreateDays("יום חמישי")); dayf.Courses.Add(CreateDays("יום שישי")); var sTimea = new TimeSpan(8, 0, 0); var sTimeb = new TimeSpan(8, 0, 0); var sTimec = new TimeSpan(8, 0, 0); var sTimed = new TimeSpan(8, 0, 0); var sTimee = new TimeSpan(8, 0, 0); var sTimef = new TimeSpan(8, 0, 0); bool first = true; int sumStart = 0, sumEnd = 0; int countStart = 0, countEnd = 0; foreach (var c in timeTables[i].Sunday.Courses) { //Average of start and end hours if (timeTables[i].Sunday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimea) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimea.TotalHours); daya.Courses.Add(blankLess); sTimea = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } daya.Courses.Add(c); sTimea = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } first = true; foreach (var c in timeTables[i].Monday.Courses) { if (timeTables[i].Monday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimeb) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimeb.TotalHours); dayb.Courses.Add(blankLess); sTimeb = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } dayb.Courses.Add(c); sTimeb = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } first = true; foreach (var c in timeTables[i].Tuesday.Courses) { if (timeTables[i].Tuesday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimec) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimec.TotalHours); dayc.Courses.Add(blankLess); sTimec = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } dayc.Courses.Add(c); sTimec = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } first = true; foreach (var c in timeTables[i].Wednesday.Courses) { if (timeTables[i].Wednesday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimed) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimed.TotalHours); dayd.Courses.Add(blankLess); sTimed = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } dayd.Courses.Add(c); sTimed = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } first = true; foreach (var c in timeTables[i].Thursday.Courses) { if (timeTables[i].Thursday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimee) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimee.TotalHours); daye.Courses.Add(blankLess); sTimee = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } daye.Courses.Add(c); sTimee = (TimeSpan)(c.EndHour + +new TimeSpan(0, 10, 0)); } first = true; foreach (var c in timeTables[i].Friday.Courses) { if (timeTables[i].Friday.Courses.Last() == c) { sumEnd += (int)c.EndHour.Value.Hours; countEnd++; } if (first) { sumStart += (int)c.StartHour.Value.Hours; countStart++; first = false; } if (c.StartHour > sTimef) { CoursesDetails blankLess = CreateDays(""); blankLess.NumConLessons = (int)(((TimeSpan)(c.StartHour)).TotalHours - sTimef.TotalHours); dayf.Courses.Add(blankLess); sTimef = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } dayf.Courses.Add(c); sTimef = (TimeSpan)(c.EndHour + new TimeSpan(0, 10, 0)); } tTable.StartHourAvg = sumStart / countStart; tTable.EndHourAvg = sumEnd / countEnd; FillDay(daya, sTimea); FillDay(dayb, sTimeb); FillDay(dayc, sTimec); FillDay(dayd, sTimed); FillDay(daye, sTimee); FillDay(dayf, sTimef); tTable.Sunday = daya; tTable.Monday = dayb; tTable.Tuesday = dayc; tTable.Wednesday = dayd; tTable.Thursday = daye; tTable.Friday = dayf; AllTimeTables.Add(tTable); } return(AllTimeTables); }