예제 #1
0
파일: frmMain.cs 프로젝트: rollrat/InhaTT
        /// <summary>
        /// 시간표의 생성 경우의 수를 보여줍니다.
        /// </summary>
        private void EstimateCountOfResult()
        {
            // 시간표 생성
            TimeTableGenerator generator = new TimeTableGenerator();

            if (subject_group.Count > 1)
            {
                lCount.Invoke(new Action(() => lCount.Text = "산출중..."));
                generator.StartCreate(subject_group, !cbContinuity.Checked);
                lCount.Invoke(new Action(() => lCount.Text = generator.GetResultCount().ToString()));
            }
        }
예제 #2
0
파일: frmMain.cs 프로젝트: rollrat/InhaTT
        private void bStart_Click(object sender, EventArgs e)
        {
            PushUndo();

            // 웹강의 삭제
            List <ListViewItem> lvil = new List <ListViewItem>(getLviArray());

            for (int i = 0; i < lvil.Count;)
            {
                if (TimeParser.Get(lvil[i].SubItems[8].Text).te.Count == 0)
                {
                    DelInIndex(lvil[i].SubItems[0].Text); lvil.RemoveAt(i);
                }
                else
                {
                    i++;
                }
            }
            lvSearch.Items.Clear();
            lvSearch.Items.AddRange(lvil.ToArray());

            // 시간표 생성
            TimeTableGenerator generator = new TimeTableGenerator();

            if (subject_group.Count > 1)
            {
                // 시간표 테스트 샘플을 크기에 대한 내림차순으로 정렬합니다.
                // 이 정렬을 통해 더 고른 샘플을 추출할 수 있습니다.
                subject_group.Sort((v1, v2) => v2.Count.CompareTo(v1.Count));
                generator.StartCreate(subject_group, !cbContinuity.Checked);
            }

            System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + @"combinations.txt", generator.GetResult());

            MessageBox.Show("생성완료!\n생성횟수: " + generator.GetResultCount(), Version.Name, MessageBoxButtons.OK, MessageBoxIcon.Information);
            (new frmTTViewer(bot.subject)).Show();
        }