Exemplo n.º 1
0
        public LichGiangDay[] CreateTKB_Lop(LopHoc lop, int MaNamHoc, string MaHocKy)
        {
            LichGiangDay[] TKB_Khoi           = new LichGiangDay[_SOTIETHOCTRONGTUAN]; // khởi tạo số tiết tối đa trong tuần là 70 tiết
            List <int>     SoTietHocTrongTuan = new List <int>();

            for (int i = 0; i < _SOTIETHOCTRONGTUAN; i++)
            {
                SoTietHocTrongTuan.Add(i);
            }

            Random rand  = new Random();
            int    index = 0;

            for (int i = 0; i < _ListChuongTrinhHoc.Count; i++)
            {
                if (_ListChuongTrinhHoc[i].maKhoi.Equals(lop.MaKhoi.ToString())) // lấy chương trình học đúng với lớp
                {
                    LayDanhSachGiaoVienTheoMon(_ListChuongTrinhHoc[i]);

                    //List<GiaoVien> listGiaoVienCuoiCungTheoMon = LayDanhSachNhungGiaoVienCuoiTheoMon(_ListGiaoVien);

                    for (int j = 0; j < _ListGiaoVien.Count; j++)
                    {
                        if (SoTietHocTrongTuan.Count > 0)
                        {
                            index = rand.Next(0, SoTietHocTrongTuan.Count);
                            LichGiangDay    lich = new LichGiangDay();
                            CT_LichGiangDay ct   = new CT_LichGiangDay();

                            lich.MaHocKy    = MaHocKy;
                            lich.MaNamHoc   = MaNamHoc;
                            lich.MaPhongHoc = int.Parse(lop.MaPhong);
                            lich.MaTietHoc  = SoTietHocTrongTuan.Count() % 5 + 1;
                            lich.MaMonHoc   = _MonHocService.LayMonHocTheoMaGiaoVien(_ListGiaoVien[j].PersonId).First().MaMonHoc;
                            lich.MaLopHoc   = lop.MaLopHoc;
                            int thu = (SoTietHocTrongTuan.Count() / 5 + 2);
                            if (thu >= 7)
                            {
                                thu = 7;
                            }
                            lich.Thu = "Thu " + thu;

                            ct.MaGiaoVien     = _ListGiaoVien[j].PersonId;
                            ct.MaLichGiangDay = lich.MaLichGiangDay;
                            ct.NgayBatDau     = new DateTime(2016, 1, 20);
                            ct.NgayKetThuc    = new DateTime(2016, 6, 12);

                            lich.dsCT_LichGiangDay.Add(ct);
                            TKB_Khoi[SoTietHocTrongTuan[index]] = lich;

                            SoTietHocTrongTuan.RemoveAt(index);
                        }
                    }

                    break;
                }
            }

            return(TKB_Khoi);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Lập thời khóa biểu cho toàn trường
        /// </summary>
        /// <returns></returns>
        public LichGiangDay[][] CreateTKB_ToanTruong(int MaNamHoc, string MaHocKy)
        {
            // Cấp phát vùng nhớ
            LichGiangDay[][] TKB_ToanTruong = new LichGiangDay[_ListLop.Count][];

            for (int i = 0; i < TKB_ToanTruong.Count(); i++)
            {
                TKB_ToanTruong[i] = CreateTKB_Lop(_ListLop[i], MaNamHoc, MaHocKy);
            }

            return(TKB_ToanTruong);
        }