示例#1
0
 public Schedule(int classCount = 30, int daysPerWeek = 6, int lessonsPerDay = 7)
 {
     _guid            = Guid.NewGuid();
     _teacherSchedule = new ScheduleHelper.TeacherSchedule();
     _classes         = new List <ClassSchedule>(classCount);
     AddClasses(classCount, daysPerWeek, lessonsPerDay);
 }
示例#2
0
        public override int GetWeight(Schedule s)
        {
            TeacherSchedule ts  = s.TeacherSchedule;
            int             sum = 0;

            foreach (TeacherLessonCollection tlc in ts)
            {
                sum += tlc.GetTogetherCount();
            }
            return(sum * Weight);
        }
示例#3
0
        public Schedule(Schedule other)
        {
            this._guid       = other._guid;
            _teacherSchedule = new ScheduleHelper.TeacherSchedule();



            _classes = new List <ClassSchedule>(other._classes.Count);
            foreach (ClassSchedule cs in other._classes)
            {
                _classes.Add(new ClassSchedule(cs, this));
            }
        }
示例#4
0
        private void button1_Click(object sender, EventArgs e)
        {
            gas          = new Gas();
            gas.Evolved += gas_Evolved;
            gas.Genetic();
            schedule = gas.Best;
            //this.dataGridView1.DataSource = gas.Best.TeacherSchedule[59].GetTeacherLessonTable();
            ts = schedule.TeacherSchedule;
            //ts = gas.Worst.TeacherSchedule;
            loaded = true;
            //this.textBox1.AppendText(gas.Best.TeacherSchedule[]

            this.button1.Text = "完成";
        }
示例#5
0
        public override int GetWeight(Schedule s)
        {
            TeacherSchedule ts  = s.TeacherSchedule;
            int             sum = 0;

            foreach (TeacherLessonCollection tlc in ts)
            {
                if (tlc.Get4SectionCount() > 3)
                {
                    sum++;
                }
            }
            return(-sum * Weight);
        }
示例#6
0
        public override int GetWeight(Schedule s)
        {
            TeacherSchedule ts = s.TeacherSchedule;

            foreach (TeacherLessonCollection tlc in ts)
            {
                if (Global.GradeTeachers[tlc.TeacherID].SubjectName == SubjectName)
                {
                    foreach (TeacherLesson tl in tlc)
                    {
                        if (Weeks.Contains(tl.DayOfWeek) && tl.Forenoon)
                        {
                            sum += Weight;
                        }
                    }
                }
            }

            return(sum);
        }
示例#7
0
        public override int GetWeight(Schedule schedule)
        {
            TeacherSchedule ts  = schedule.TeacherSchedule;
            int             sum = 0;

            foreach (TeacherLessonCollection tc in ts)
            {
                foreach (TeacherLesson tl in tc)
                {
                    if (tl.Count > 1)
                    {
                        sum -= Weight * 5;
                    }
                    else
                    {
                        sum += Weight;
                    }
                }
            }
            return(sum);
        }
示例#8
0
        public override int GetWeight(Schedule s)
        {
            int             sum = 0;
            TeacherSchedule ts  = s.TeacherSchedule;

            //对所有教师都成立的规则
            if (TeacherID == -1)
            {
                foreach (TeacherLessonCollection tlc in ts)
                {
                    sum += getCount(tlc, DayOfWeek, Section);
                }
            }
            else
            {
                TeacherLessonCollection tlc = ts[TeacherID];
                sum = getCount(tlc, DayOfWeek, Section);
            }



            return(sum * Weight);
        }