public override TermBase Clone() { return(new ExponentTerm(Base.Clone(), Degree.Clone())); }
//generate the schedules private void btnGenerateSchedules_Click(object sender, EventArgs e) { int schedulesToGen = 0; try { schedulesToGen = Convert.ToInt32(txtGenSchedules.Text); } catch { System.Windows.Forms.MessageBox.Show("Unable to parse request. Please designate a number of schedules " + "between 1 and 10."); } if (schedulesToGen > 0 && schedulesToGen <= 10) { Degree copy = mDegree.Clone(); { copy.Semesters.Clear(); // PlanPage selected = (PlanPage)tabControl1.SelectedTab; //TODO DegreeControl control = (DegreeControl)mTabs.Items[mTabs.SelectedIndex]; control.Title = "Model"; mTabs.Items.Clear(); mTabs.Items.Add(control); copy.Semesters = control.Semesters; } DegreePlanner planner = new DegreePlanner(); copy.TakenCourses = uiClassList.GetTakenList(); List <Degree> generated = planner.GenerateSchedules(copy, schedulesToGen); int success = 0; for (int i = 0; i < generated.Count; i++) { bool grad = true; generated[i].Name = ((i + 1).ToString()); //nk DegreeControl control = new DegreeControl(generated[i], mCoursesTaken, this, (i + 1).ToString()); control.Verify(); mTabs.Items.Add(control); //tabControl1.TabPages.Add(new PlanPage(temp, mCoursesTaken, this)); //nk //tabControl1.TabPages[i + 1].Text = (i + 1).ToString(); //nk Degree checkGrad = generated[i].Clone(); checkGrad.Semesters = generated[i].Semesters; //Check for graduation on requirements foreach (Course course in checkGrad.RequiredCourses) { //check all semesters and the Taken list if (checkGrad.SemesterCourseTaken(course.UID).Count == 0 && !CourseIsTaken(course.Name)) { grad = false; } } //Check for graduation of electives foreach (Elective elective in checkGrad.ElectiveCourses) { elective.RemainingHours = checkGrad.ElectiveBeingTaken(elective); if (checkGrad.ElectiveBeingTaken(elective) > (Int64)0) { grad = false; } } if (grad) { success++; } } System.Windows.Forms.MessageBox.Show(schedulesToGen.ToString() + " schedules were successfully generated." + Environment.NewLine + Environment.NewLine + success.ToString() + " schedules resulted in graduation! " ); // tabControl1.TabPages.Add(new PlanPage()); } else { } }