Exemplo n.º 1
0
 public override TermBase Clone()
 {
     return(new ExponentTerm(Base.Clone(), Degree.Clone()));
 }
Exemplo n.º 2
0
        //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
            {
            }
        }