MỤC ĐÍCH XÂY DỰNG PHÂN HỆ : Phân hệ Xếp thời khóa biểu được xây dựng nhằm thực hiện các chức năng sau ở mộthọc kỳ – năm học : Tạo và in ra màn hình số liệu dự kiến cho từng học kỳ như
Trang 1PHÂN HỆ XẾP THỜI KHÓA BIỂU
CHƯƠNG 1 :
MÔ TẢ PHÂN HỆ XẾP THỜI KHÓA BIỂU
I MỤC ĐÍCH XÂY DỰNG PHÂN HỆ :
Phân hệ Xếp thời khóa biểu được xây dựng nhằm thực hiện các chức năng sau ở mộthọc kỳ – năm học :
Tạo và in ra màn hình số liệu dự kiến cho từng học kỳ như kế hoạch giảng dạytrong học kỳ , chương trình đào tạo khóa-ngành
Xếp thời khóa biểu (TKB) dự kiến dựa trên cơ sở số nhóm lớp – môn học dự kiếnvà số sinh viên trong từng khóa-ngành-năm , số lượng giáo viên giảng dạy mônhọc, đăng ký bận giờ của các giảng viên và dữ liệu về phòng học trong học kỳ
Hiệu chỉnh TKB của thời gian thực
Quản lý tình trạng báo dạy cho giảng viên, TKB cho lớp –môn học
Phân hệ này cung cấp số liệu cho việc quản lý giảng dạy, quản lý phòng học và tính toán khối lượng giảng dạy, là cơ sở để sinh viên đăng ký môn học
II DỮ LIỆU TRONG PHÂN HỆ :
Để xếp TKB , ta cần có các dữ liệu sau :
Các bảng từ điển như : Khoa , Bộ môn , Môn học , Ngành , Phòng học, Cán bộ
giảng dạy , Các loại bận giờ
Bảng Chương trình giảng dạy trong học kỳ hiện hành bao gồm danh sách các mônhọc sẽ mở trong học kỳ tương ứng (trong Chương trình đào tạo ) Bảng này sẽ là
cơ sỡ để tạo ra dữ liệu Nhóm lớp – môn học – giảng viên
Các thông tin về thời gian học của các nhóm lớp (tuần bắt đầu , buổi học ưu tiên )
Nhập bảng Cán bộ giảng dạy các thông tin về tránh tiết , bận giờ của các Cán bộ
giảng dạy
Chuẩn bị danh mục Phòng học dự kiến cho các lớp dựa vào sức chứa phòng , sĩ số
lớp , dãy phòng ưu tiên
Trang 2Các bảng dữ liệu sử dụng trong phân hệ xếp thời khóa biểu :
Bảng phòng học
Tên cột Kiểu Chú thích
DAY_PHONG Char(3) Dãy phòng vd: B1B
1:không sử dụng được)
TKB_ngay , dùng để kiểm tra TKB
COUNT_S Tinyint Số lần chương trình tham khảo tham
khảo buồi sáng COUNT_C Tinyint Số lần chương trình tham khảo tham
khảo buồi chiều
Bảng TKB_NGAY :
Tên cột Kiểu Ghi chú
MA_TKB(primary) Char(10) Mã thời khóa biểu dùng để kiểm tra
TKB TIET1 Char(1) Kiểm tra tiết bận (0:không bận , 1:
bận , D : bận tương đối , T :bận tuyệtđối )
Trang 3Tên cột Kiểu Ghi chú
MUC_DO_XEP Tinyint Mức độ xếp : được đánh giá trong
chương trình
Bảng nhóm lớp :
Tên cột Kiểu Ghi chú
- Bảng SS_NGANH :
Tên cột Kiểu Ghi chú
Trang 4 Bảng CAN_BO_GD :
Tên cột Kiểu Ghi chú
Bảng BANG_LOAI_BAN_GIO :
Tên cột Kiểu Ghi chú
III NHỮNG RÀNG BUỘC TRONG PHÂN HỆ XẾP THỜI KHÓA BIỂU :
III.1 Ràng buộc về tài nguyên :
Ràng buộc về tài nguyên là ràng buộc chặt chẽ không thể vi phạm, bao gồm các ràngbuộc sau :
Số giờ học bị giới hạn ( thứ-tiết ) : 6 ngày /tuần , 12 tiết /ngày , những buổi nghỉhọc để sinh hoạt Đoàn , nghỉ chung toàn trường
Số lượng phòng học và sức chứa có giới hạn
Số lượng cán bộ giảng dạy có giới hạn
Giải quyết trường hợp các cán bộ chỉ rãnh trong một số giờ chỉ định (do nhà xa , có giađình , bận công tác khác )
Trang 5 Số lượng môn học mở trong một học kỳ phải có giơi hạn trong chương trình đào tạo.
III.2 Các ràng buộc theo qui tắc :
Mỗi Cán bộ giảng dạy chỉ dạy một Nhóm lớp tại một thời điểm
Mỗi phòng chỉ có một nhóm lớp học tại một thời điểm
Một nhóm lớp học một môn học tại một phòng trong một thời điểm
Các nhóm lớp – môn học phải được phân vào các phòng có sức chứa phù hợp
Một số nhóm lớp – môn học phải học tại phòng chuyên dụng (như :phòng thínghiệm , vẽ kỹ thuật , thể dục thể thao .)
Mỗi cán bộ giảng dạy bị hạn chế số tiết dạy tối đa trong ngày ( trừ trường hợp sốcán bộ giảng dạy cho một môn học nào đó ít làm số tiết dạy của giảng viên tănglên )
Có giới hạn số tiết liên tục của một môn học và sự phân tiết trong một tuần nêncách 1 ngày
III.3 Một số ràng buộc khác nhằm tăng tính tiện dụng và tăng hiệu quả sử dụng tài nguyên trong hệ thống :
Sử dụng các thông số chương trình : hệ số sử dụng phòng học , hệ số MAX củasinh viên đi học, ngày nghỉ chung của toàn trường
Các yêu cầu về tính liên tục TKB như : TKB của một nhóm lớp trong một buổinên liên tục ( không có tiết trống ở giữa ) , TKB của một nhóm lớp trong một ngàynên có tiết trống giữa hai buổi ( tiết 6 hoặc 7) ) nếu có
Tránh xếp quá nhiều buổi trong tuần cho một Cán bộ giảng dạy mà số tiết trongmột buổi quá ít ( Giới hạn số buổi tối đa / tuần của cán bộ giảng dạy )
Tránh xếp quá nhiều buổi trong tuần cho một Nhóm lớp mà số tiết trong một buổiquá ít ( Giới hạn số buổi tối đa / tuần của Nhóm lớp )
IV QUI TRÌNH XẾP THỜI KHÓA BIỂU :
IV.1 Bước chuẩn bị :
Bước này chuẩn bị các dữ liệu cần thiết cho việc xếp TKB:
Điều chỉnh các từ điển : khoa , bộ môn , môn học , ngành , Cán bộ giảng dạy ,
phòng học , Loại bận giờ
Xem / Sửa Chương trình giảng dạy học kỳ , tức danh sách các môn học dự kiến mởtrong học kỳ , các thông số về môn học như: sỉ số môn học, tính chất phòng , phântiết / tuần, xác suất số sinh viên đăng ký
Nhập tuần lễ đầu tiên nhập học và buổi học ưu tiên của các nhóm lớp
Trang 6IV.2 Bước nhập liệu :
Bước này chuẩn bị nhập các dữ liệu cần thiết cho việc xếp TKB :
Dựa vào danh sách môn học trong CTDT , chọn những môn học sẽ mở trong họckỳ
Dựa vào những môn học sẽ mở , đưa ra số nhóm lớp dự định mở trong học kỳ bằngcách nhập vào số % sinh viên có thể đăng ký và sĩ số của môn học đó
Nhập mã cán bộ giảng dạy theo các môn học đã định sẵn
IV.3 Bước Xếp thời khóa biểu : ( danh sách nhóm lớp sẽ tự động sinh ra khi xếp TKB
dựa vào số lớp dự định mở trong từng môn học )
Nhập danh sách các cán bộ bận giờ và chọn loại giờ thích hợp(lưu kết quả vàobảng thông tin cán bộ giảng dạy)
Dựa vào bảng loại bận giờ , thông tin cán bộ giảng dạy để tạo ra dữ liệy trongbảng TKB_ngày trong đó ghi rõ chi tiết bận giờ trong tuần của giáo viên
Cho phép chỉnh sửa các thông số của phòng học như : sức chứa , tính chất phòng ,tình trạng trong bảng từ điển phòng học
Cho phép sửa các thông số chương trình như : chọn hệ số sử dụng phòng học , hệsố max sức chứa /số SV , hệ số max đi học của SV có sử dụng bảng bận giờ haykhông , có tránh tiết liên tục giữa hai buổi hay không
Xếp TKB gồm các bước :
Xếp tự động cho từng học kỳ
Xếp tự dộng cho từng môn học
Xếp tự động cho từng ngành
Xếp TKB cho từng nhóm lớp môn học
IV.4 Bước chỉnh sửa thời khóa biểu :
Cho phép hiệu chỉnh TKB sau khi xếp theo nhóm lớp như :
Hủy bỏ TKB của một nhóm lớp môn học
Hủy bỏ TKB cho tất cả môn học trong học kỳ
Hủy bỏ TKB của một môn học
Kiểm tra những nhóm lớp môn học không thể xếp được (do quá trình nhập liệukhông hợp lý : mở nhiều nhóm lớp môn học đặc biệt nên không đủ phòng đặcbiệt , thiếu giáo viên , một số nhóm lớp học quá nhiều môn học
IV.5 Xem thời khóa biểu :
Trang 7Cho phép xem thời khóa biểu theo nhóm lớp , theo phòng , theo cán bộ giảng dạy xemchi tiết về một nhóm lớp môn học
V THIẾT KẾ GIAO DIỆN :
V.1 Thiết kế Form nhập liệu :
V.1.1 Form tự điển Khoa :
Chức năng : Quản lý tự điển các khoa , cho phép xem , thêm, sửa
Input : Lấy thông tin từ điển khoa từ bảng khoa Output : Thêm , sửa dữ liệu của bảng khoa
Ràng buộc : Form sẽ phát hiện và báp lỗi nếu 1 trong các trừơng hợp sau :
Trùng mã khoa
Sửa mã khoa
Khoa không đủ thông tin : mã khoa , tên khoa
Xóa một khoa do còn quan hệ dữ liệu với các bảng khác
Các cột vi phạm ràng buộc dữ liệu : mã khoa ( 2 kí tự ), tên khoa ( 50 kítự )
Thiết kế giao diện :
V.1.2 Form từ điển Ngành :
Chức năng : Quản lý từ điển Ngành và các thông số liên quan tới một ngànhnhư : sĩ số từng khóa học , năm thứ , buổi học
Input : Lấy thông tin từ điển Ngành từ bảng : KHOA , NGANH, SS_NGANH
Trang 8Output : Thêm, Sửa , xóa ngành cho một khoa Liệt kê , thêm , xóa thông tin
của một ngành
Ràng buộc : Form sẽ phát hiện và báo lỗi nếu xảy ra một trong các trường hợp
sau :
Nhập thông tin vi phạm ràng buộc : mã ngành ( 2 kí tự), tên ngành ( 50
kí tự), sỉ số (số nguyên), năm thứ (0->5), Khóa (4 kí tự số ), buổi học(Sáng (S) hoặc Chiều (C))
Xóa ngành mà dữ liệu còn liên quan tới các bảng khác
Thêm ngành có mã trùng với ngành cũ
Thêm Khóa học trùng với những khóa học cũ
Tiện ích :
Liệt kê các ngành theo khoa
Liệt kê thông tin các khóa học theo ngành
Thiết kế giao diện :
Trang 9V.1.3 Form từ điển môn học :
Chức năng : quản lý tất cả môn học từ trước đến nay và tất cả các thông tinliên quan tới môn học
Trang 10Input : Lấy thông tin từ điển Môn học từ bảng : mon_hoc
Output : Xem các môn học và thông tin liên quan tới môn học, không cho sửa ,xóa
Thiết kế giao diện :
V.1.4 Form từ điển giảng viên :
Chức năng : Quản lý cán bộ giảng dạy , cho phép người sử dụng xem thông tinvề giảng viên thep từng khoa
Input : Lấy thông tin từ điển Giảng viên từ bảng : can_bo_gd
Output : Xem thông tin giảng viên theo từng khoa
Tiện ích : Cho phép người sử dụng tìm kiếm giảng viên theo khoa
Thiết kế giao diện :
Trang 11V.1.5 Form từ điển phòng học :
Chức năng : Quản lý các thông tin về phòng học : Xem, thêm, sửa đổi
Input : Lấy thông tin từ điển phòng học từ bảng : phòng học
Output : Xem , sửa thông tin về phòng học và thêm phòng học
Tiện ích :
Xem danh sách phòng theo dãy học
Tự động thêm mã thời khóa biểu và tạo dữ liệu TKB để kiểm tra khi
xếp thời khóa biểu (bảng TKB_ngay).
Khi xóa phòng thì tự động xóa dữ liệu TKB
Ràng buộc : Form sẽ phát hiện và báo lỗi nếu xảy ra 1 trong các trường hợp
sau :
Nhập thông tin vi phạm ràng buộc : phòng (6 kí tự) , sức chứa ( sốnguyên ) , tình trạng ( 0 : hoạt động, 1 : không hoạt động ) , mã khoa ( 2
kí tự ) , tính chất phòng ( số nguyên )
Thêm phòng mới trùng tên với phòng cũ
Thiết kế giao diện :
Trang 12V.1.6 Form Hồ sơ cán bộ bận giờ :
Trang 13Chức năng : Quản lý các thông tin về các giờ bận tránh tiết của các CBBG
trong học kỳ , năm học hiện hành Form này cung cấp dữ liệu để xét khi xếp TKB chocác CBBG có liên quan
Input : Lấy thông tin từ bảng BANG_CAN_BO_BG
Output : Thêm , sửa , xóa dữ liệu của bảng BANG_CAN_BO_BG Bảng này
dùng để tham khảo khi xếp TKB
Ràng buộc : Form sẽ phát hiện và báo lỗi khi xảy ra một trong các trường hợp
sau :
Nhập trùng mã bận giờ
Nhập thông tin cho bảng bận giờ sai kiểu dữ liệu : số tiết , tiết bắt đầu( số nguyên 1-12 )
Tiện ích : Cho phép tạo mới , sửa đổi
Thiết kế giao diện :
Trang 14V.1.7 Form chương trình giảng dạy trong học kỳ :
Chức năng : Quản lý các môn học có trong chương trình đào tạo của học kỳ ,
năm học tương ứng Cho phép user xem các môn học trong chương trình giảng dạyhọc kỳ và có thể thêm sửa xóa trong phân hệ chương trình đào tạo
Input: Lấy thông tin từ các bảng CTDT
Output : Sửa đổi thông tin xác suất đăng kí học của sinh viên.
Ràng buộc : Form sẽ phát hiện và báo lỗi khi xác suất nhập phải là số nguyên
Trang 15V.1.8 Kế hoạch giảng dạy :
Chức năng : Quản lý thông tin giảng dạy của cán bộ giảng dạy cho từng môn
học Có thể thêm hay xóa thông tin giảng viên dạy đối với một môn
Input : Lấy thông tin từ bảng CTDT , DAY_HOC
Output : Thêm hay xóa giảng viên đối với một môn học và là cơ sở cho việc
xếp TKB
Thiết kế giao diện :
Trang 16V.1.9 Form Back up dữ liệu :
Chức năng : Cho phép back up dữ liệu tại thời điểm hiện tại vào một file Input : Lấy toàn bộ thông tin của phân hệ XTKB
Output : Dữ liệu sẽ được lưu ở dạng file
Tiện ích : cho phép chọn tên file back up và dường dẫn Sau khi back up thông
tin về file back up sẽ được lưu vào bảng backup_tkb trong database master
V.1.10 Form restore dữ liệu :
Chức năng : Cho phép restore dữ liệu từ các file đã back up
Trang 17Input : Lấy thông tin tên file và đường dẫn từ bảng backup_tkb trong database
Thiết kế giao diện :
V.1.11 Form nhập các thông số chương trình :
Chức năng : cho phép nhập các thông số như :
Hệ số max , min chia đôi lớp : Trong chương trình xếp thời khóa biểu ,các nhóm được sinh tự động dựa vào sĩ số của ngành và sĩ số cho phépcủa môn học , từ đó dễ dàng sinh các nhóm lớp chỉ có vài sinh viênhọc Do đó hệ số max, min chia đôi lớp giúp cho cân bằng số lượnggiữa các nhóm Nếu sĩ số còn < hệ số min*sĩ số môn thì tạo ra mộtnhóm lớp Nếu hệ số min * sĩ số môn < sĩ số còn < hệ số max * sĩ sốmôn , thì sĩ số còn sẽ được tách thành hai nhóm Chương trìng được mặcđịnh : hệ số min=1.3 , hệ số max = 1.7)
Hệ số đi học của sinh viên : do đi62u kiện khắc quan số sinh viên đếnlớp không bao giờ đạt 100% do đó để tận dụng sức chứa của phòng hệsố này được áp dụng <100 (=1) Chương trình được mặc định : 90%(0.9)
Hệ số lãng phí phòng học : do có thể khi xếp thời khóa biểu số phòngcó sức chứa phù hợp cạn dần ta cần tìm những phòng có sức chứa lớnhơn để xếp Chương trình được mặc định : 4 lần
Trang 18 Hệ số tham khảo phòng :để giúp cho chương trình tìm nhanh phòng tađưa thông số“số lần tối đa cập nhật phòng“ Chương trình được mặcđịnh : 15 lần
Ngày đặc biệt : trong tuần trừ ngày chủ nhật , hệ thống định ra ngàynghỉ đặc biệt cho toàn trường Chương trình sẽ tránh ngày đó , nếu hếtkhả năng xếp thì xếp vào ngày đó Chương trình được mặc định : thứ 7)
V.1.12 Form xóa TKB cũ :
Chức năng : Cho phép xóa TKB cũ cho từng ngành , từng môn học hay tất cả Input : lấy dữ liệu từ bảng ngành , CTDT
Output : Cho phép xóa thời khóa biểu cho từng ngành , từng môn học hay tất
cả : SP_DEL_TKB_NGANH , SP_DEL_TKB_MH , SP_DEL_ALL_TKB
Tiện ích : Có thể chọc từng môn, từng ngành hoặc tất cả để xếp
Trang 19Thiết kế giao diện :
V.1.13 Form xếp thời khóa biểu cho khoa / ngành :
Chức năng : cho phép chọn ngành để xếp thời khóa biểu
Input : lấy thông tin ngành từ bảng ngành
Output : xếp thời khóa biểu cho ngành : SP_XTKB_NGANH + tên ngành Tiện ích : những ngành nào đã xếp không cho xếp lại
Thiết kế giao diện :
Trang 20V.1.14 Form xếp thời khóa biểu cho từng môn học :
Chức năng : cho phép xếp thời khóa biểu cho từng môn học trong học kỳ Input : Lấy thông tin môn học trong bảng CTDT
Output : Xếp thời khóa biểu cho tưng môn học : SP_XTKB_MH + mã môn học
Thiết kế giao diện :
Trang 21V.1.15 Form xếp thời khóa biểu cho từng học kỳ :
Chức năng : cho phép xếp thời khóa biểu cho từng học kỳ Output : SP_XTKB_HOC_KY + học kỳ
Thiết kế giao diện :
Trang 22V.1.16 Chỉnh sửa kết quả xếp thời khóa biểu :
Chức năng : cho phép chọn những nhóm lớp môn học không xếp được : tìm
hiểu nguyên nhân và thay thông số để xếp lại
Input : Lấy thông tin kết quả xếp thời khóa biểu từ bảng gv_lop_mh
Output : Xóa kết quả của một nhóm môn học và xếp lại :
SP_DELETE_TKB_NHOM_MH_GV + mã nhóm , mã môn học , mã giảng viên SP_XTKB_NHOM_MH_GV + mã nhóm, mã môn học , mã giảng viên
Thiết kế giao diện :
V.2 Thiết kế Report :
V.2.1 Report TKB nhóm lớp :
Chức năng : Hiển thị TKB của một nhóm lớp lên màn hình.
Input : Lấy thông tin từ bảng GV_LOP_MH ,NGANH
Output : TKB nhóm lớp : môn học , gỉang viên , phòng.
Tiện ích : cho phép chọn tên nhóm , mã ngành Nếu chọn giảng viên thì hiển
thông tin về giảng viên , môn học thì hiển thị thông tin môn học và chọn phòng thìhiện thị thông tin phòng
Thiết kế giao diện :
Trang 23V.2.2 Report TKB giảng viên :
Chức năng : Hiển thị TKB của một giảng viên lên màn hình.
Input :Lấy thông tin từ bảng GV_LOP_MH , CAN_BO_GD.
Output : TKB nhóm lớp : môn học , gỉang viên , phòng.
Tiện ích : cho phép chọn tên nhóm , mã khoa Nếu chọn nhóm lớp thì hiển
thông tin về nhóm lớp , môn học thì hiển thị thông tin môn học và chọn phòng thì hiệnthị thông tin phòng
Thiết kế giao diện :