Tải bản đầy đủ (.docx) (37 trang)

Phân hệ xếp thời khóa biểu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (357.58 KB, 37 trang )

PHÂ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ột
họ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ạy trong
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ến và
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ôn họ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ôn
họ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 .
Cá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
PHONG(primary) Char(6) Phòng học vd : 202B1B
SUC_CHUA Smallint Sức hứa của phòng (>0)vd :100
MA_KHOA Char(2) Mã khoa vd : MT
TINH_TRANG Bit Tình trạng phòng (0:sử dụng được;
1:không sử dụng được)
MA_TKB Char(10) Mã thời khóa biểu : tham khảo tới bảng
TKB_ngay , dùng để kiểm tra TKB .
LOAI_PHONG Tinyint Mô tả tính chất phòng (0 → 37)
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 )
TIET2 Char(1)
TIET3 Char(1)
TIET4 Char(1)
TIET5 Char(1)
TIET6 Char(1)
TIET7 Char(1)
TIET8 Char(1)
TIET9 Char(1)
TIET10 Char(1)

TIET11 Char(1)
TIET12 Char(1)
THU(primary) Tinyint Thứ (2→7)
− Bảng GV_LOP_MH
Tên cột Kiểu Ghi chú
MA_GV(primary) Int Mã giảng viên
MA_NHOM(primary) Char(8) Mã nhóm vd :CK199501
MA_MH(primary) Char(6) Mã môn học
SI_SO Smallint Só số nhóm
SO_BUOI_HOC Tinyint Số lần học trong tuần
PHONG1 Char(6) Mã phòng
THU1 Tinyint Thứ
TIET_BD1 Tinyint Tiết bắt đầu
SO_TIET1 Tinyint Số tiết
PHONG2 Char(6) Mã phòng
THU2 Tinyint Thứ
TIET_BD2 Tinyint Tiết bắt đầu
SO_TIET2 Tinyint Số tiết
PHONG3 Char(6) Mã phòng
THU3 Tinyint Thứ
TIET_BD3 Tinyint Tiết bắt đầu
SO_TIET3 Tinyint Số tiết
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ú
MA_NHOM Char(8) Mã nhóm
MA_NGANH Char(2) Mã ngành
MA_TKB Char(10) Mả thời khóa biểu
TUAN_DAU Tinyint Tuần bắt đầu

DAY_PHONG Char(3) Dãy phòng
STT Tinyint Số thứ tự nhóm
- Bảng SS_NGANH :
Tên cột Kiểu Ghi chú
MA_NGANH Char(2) Mã ngành
KHOA_HOC Char(4) Khóa học vd :1995
SI_SO Int Só số của khóa học
NAM_THU Char(1) Năm thứ (1-> 5)
BUOI Char(1) Buổi xếp ưu tiên
LOP_MAX Tinyint Số nhóm tối đa trong khóa học
− Bảng CAN_BO_GD :
Tên cột Kiểu Ghi chú
MA_GV Int Mã giảng viên
HO_LOT_GV Varchar(50) Họ lót giảng viên
TEN_GV Varchar(50) Tên giảng viên
MA_LOAI Tinyint Mã loại bận giờ
UU_TIEN Bit Ưu tiên : 0 tương đối, 1 tuyệt đối
MA_TKB Char(10) Mã thời khóa biểu
MA_KHOA Char(2) Mã khoa
TOI_UU Tinyint Tối ưu
− Bảng BANG_LOAI_BAN_GIO :
Tên cột Kiểu Ghi chú
MA_LOAI Tinytint Mã loại bận giờ
TEN_MA_LOAI Varchar(50) Tên mã loại bận giờ
TIETBD_T2 Char(1) Tiết bắt đầu thứ 2
SO_TIET_T2 Char(1) Số tiết thứ 2
SO_TIET_T3 Char(1) Tiết bắt đầu thứ 3
TIETBD_T3 Char(1) Số tiết thứ 3
SO_TIET_T4 Char(1) Tiết bắt đầu thứ 4
TIETBD_T4 Char(1) Số tiết thứ 4

SO_TIET_T5 Char(1) Tiết bắt đầu thứ 5
TIETBD_T5 Char(1) Số tiết thứ 5
SO_TIET_T6 Char(1) Tiết bắt đầu thứ 6
TIETBD_T6 Char(1) Số tiết thứ 6
SO_TIET_T7 Char(1) Tiết bắt đầu thứ 7
TIETBD_T7 Char(1) Số tiết thứ 7
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àng
buộ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 . . .) .
• 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ăng lê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ên
cá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ủa sinh
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ổi nê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ày nê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 trong
mộ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ổi
quá í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ân
tiế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 .
IV.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ọc kỳ .
• 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ằng
cá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ào bả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 trong bả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ờ hay
khô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ệu
không hợp lý : mở nhiều nhóm lớp môn học đặc biệt nên không đủ phòng đặc biệ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 :
Cho 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 xem
chi 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ành
như : 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 .
Output : 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 :
V.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 tin liên
quan tới môn học .
Input : 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 tin
về 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 :
V.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 :
V.1.6. Form Ho sụ caựn boọ baọn giụứ :
Chứ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 cho
cá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 :
V.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ạy họ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
<=100% .
Tiện ích :
Tự động tạo số lớp mở dựa vào xác suất đăng kí và só số của từng khoa , ngành .
Thiết kế giao diện :

×