Hiện tại, phòng đào tạo của trường Đại học Sư phạm Kỹ thuật TP.HCM đang sử dụng phần mềm quản lý đào tạo EduSoft trong đó đã có phần xếp lịch thi, tuy nhiên còn một số hạn chế như: - Chỉ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 4CHƯƠNG 1: MỞ ĐẦU 6
1.1TổNG QUAN 6
1.2TÍNH CấP THIếT CủA Đề TÀI 2
1.3MụC TIÊU Đề TÀI 3
1.4CÁCH TIếP CậN 3
1.5PHƯƠNG PHÁP NGHIÊN CứU 3
1.6ĐốI TƯợNG TƯợNG VÀ PHạM VI NGHIÊN CứU 4
1.6.1 Các đối tượng nghiên cứu: 4
1.6.2 Phạm vi nghiên cứu: 4
CHƯƠNG 2 GIẢI THUẬT XẾP LỊCH THI 4
2.1HƯớNG TIếP CậN GIảI QUYếT BÀI TOÁN XếP LịCH 4
2.2GIảI THUậT XếP LịCH THI Sử DụNG THUậT TOÁN TÔ MÀU 5
2.3HIệN THựC HOÁ THUậT TOÁN 6
2.3.1 Bước 1 Tạo ma trận kề 6
2.3.2 Bước 2 Tô màu đồ thị 7
2.3.3 Bước 3: Gán thời gian cho các nhóm thi và xếp phòng 8
CHƯƠNG 3 : XÂY DỰNG CHƯƠNG TRÌNH 10
3.1KHảO SÁT HIệN TRạNG 10
3.2PHÂN TÍCH THIếT Kế 12
3.2.1 Thiết kế usecase 12
3.2.2 Mô ta ̉ usecase 13
3.2.1 Mô hình hóa yêu cầu: 16
3.2.2 Thiết kế cơ sơ ̉ dữ liê ̣u 20
3.2.3 Thiết kế xử lý: 25
3.3GIAO DIệN PHầN MềM 36
3.3.1 Chọn môn không thi: 36
3.3.2 Ghép nhóm thi: 36
3.3.3 Lập danh sách sinh viên bị cấm thi: 37
3.3.4 Thiết lập thông số đầu vào cho kì thi: 37
3.3.5 Chọn phòng không tổ chức thi: 38
3.3.6 Xếp lịch thi tự động: 39
3.3.1 Xếp lịch thi thủ công: 39
3.3.1 Chỉnh sửa kết quả xếp lịch thi: 40
3.3.2 Xem lịch thi sinh viên dạng danh sách: 40
3.3.3 Xem lịch thi sinh viên dạng lịch: 41
3.3.4 Xem danh sách môn thi theo đợt: 41
3.3.5 Xem danh sách sinh viên thi theo phòng: 42
3.3.6 Xem danh sách sinh viên thi theo môn: 42
3.3.7 Xem danh sách môn học: 43
3.3.8 Xem danh sách sinh viên: 43
Trang 53.3.9 Xem danh sách phòng: 44
CHƯƠNG 4 KẾT LUẬN 44
KếT QUả ĐạT ĐƯợC 44
HạN CHế 45
HƯớNG PHÁT TRIểN 45
TÀI LIỆU THAM KHẢO 45
DANH MỤC CÁC HÌNH Hình 3.1: Lược đồ chức năng 12
Hình 3.2: Xem dữ liệu giảng viên 16
Hình 3.3: Xem dữ liệu phòng 16
Hình 3.4:Xem dữ liệu sinh viên 17
Hình 3.5: Xem dữ liệu môn học 18
Hình 3.6: Tra cứu lịch thi sinh viên 19
Hình 3.7: Cơ sở dữ liệu 20
Hình 3.8: Xử lý chính xem danh sách sinh viên 26
Hình 3.9: Xử lý chính chọn thiết lập 27
Hình 3.10: Xử lý chính chọn môn thi 28
Hình 3.11: Xử lý chính chọn sinh viên 29
Hình 3.12: Xử lý chính xem lịch thi của một sinh viên 29
Hình 3.13:Xử lý chính xem giáo viên 30
Hình 3.14: Xử lý chính xem phòng thi 31
Hình 3.15:Xử lý chính xem môn học 32
Hình 3.16: Xử lý chính chọn phòng thi 33
Hình 3.17: Xử lý chính xem lịch thi của một phòng 34
Hình 3.18: Xử lý chính xem lịch thi của sinh viên theo phòng 34
Hình 3.19: Xử lý chính hình xem lịch thi của sinh viên theo môn 35
Hình 3.20: Giao diện quản lý các môn không tổ chức thi 36
Hình 3.21: Giao diện ghép các nhóm thi 36
Hình 3.22: Giao diện lập danh sách sinh viên bị cấm thi 37
Hình 3.23: Giao diện thiết lập đầu vào 37
Hình 3.24: Giao diện chọn phòng không tổ chức thi 38
Hình 3.25: Giao diện xếp lịch thi tự động 39
Hình 3.26: Giao diện xếp lịch thi thủ công 39
Hình 3.27: Giao diện chỉnh sửa kết quả xếp lịch thi 40
Hình 3.28: Giao diện xem lịch thi sinh viên dạng danh sách 40
Hình 3.29: Giao diện xem lịch thi của sinh viên dạng lịch 41
Hình 3.30: Giao diện quản lý các môn thi theo đợt 41
Trang 6Hình 3.31: Giao diện xem danh sách sinh viên thi theo phòng 42
Hình 3.32: Giao diện danh sách sinh viên thi theo môn 42
Hình 3.33: Giao diện xem danh sách môn học 43
Hình 3.34: Giao diện xem danh sách sinh viên 43
Hình 3.35: Giao diện xem danh sách phòng 44
DANH MỤC CÁC BẢNG Bảng 3.1: Mô ta ̉ usecase nhân viên phòng đào tạo 13
Bảng 3.2 - Mô tả usecase Gia ̉ng Viên 14
Bảng 3.3 - Mô tả Usecase Sinh Viên 14
Bảng 3.4 - Các quy định liên quan 15
Bảng 3.5 - Bảng sinh viên 21
Bảng 3.6 - Bảng ca thi 21
Bảng 3.7 - Bảng phân công dạy 21
Bảng 3.8 - Bảng bộ môn 22
Bảng 3.9 - Bảng chuyên ngành 22
Bảng 3.10 - Bảng giáo viên 22
Bảng 3.11 - Bảng khoa 22
Bảng 3.12 - Bảng khối 23
Bảng 3.13 - Bảng lịch học vụ 23
Bảng 3.14 - Bảng lớp 23
Bảng 3.15 - Bảng môn học 24
Bảng 3.16 - Bảng nhóm 24
Bảng 3.17 - Bảng đăng kí môn học 24
Bảng 3.18 - Bảng phòng 25
Bảng 3.19 - Bảng thi 25
Bảng 3.20 - Danh sách các xử lý màn hình xem sinh viên 25
Bảng 3.21 - Danh sách các xử lý màn hình chọn thiết lập 26
Bảng 3.22 - Danh sách các xử lý màn hình chọn môn thi 27
Bảng 3.23 - Danh sách các xử lý màn hình chọn sinh viên 28
Bảng 3.24 - Danh sách các xử lý màn hình xem lịch thi của sinh viên 29
Bảng 3.25 - Danh sách các xử lý màn hình chọn giáo viên 30
Bảng 3.26 - Danh sách các xử lý màn hình xem phòng thi 31
Bảng 3.27 - Danh sách các xử lý màn hình xem môn học 32
Bảng 3.28 - Danh sách các xử lý màn hình chọn phòng thi 33
Bảng 3.29 - Danh sách xử lý màn hình xem lịch thi của một phòng 33
Bảng 3.30 - Danh sách xử lý màn hình xem lịch thi của SV theo phòng 34
Bảng 3.31 - Danh sách xử lý màn hình xem lịch thi SV theo môn 35
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
Trang 7Tp HCM, Ngày tháng năm
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung:
- Tên đề tài: Xây dựng hệ thống hỗ trợ xếp lịch thi cho trường đại học Sư phạm
Kỹ thuật Tp.HCM
- Mã số: T2013-27
- Chủ nhiệm: KS Phùng Quang Ngọc
- Cơ quan chủ trì: Trường ĐH Sư phạm Kỹ thuật TP.HCM
- Thời gian thực hiện:1/2013 đến 12/2013
2 Mục tiêu:
Xây dựng thành công hệ thống hỗ trợ xếp lịch thi cho trường ĐH Sư phạm
Kỹ thuật TP.HCM
3 Tính mới và sáng tạo:
Đề tài mang tính ứng dụng nên không đòi hỏi tính mới và sáng tạo
4 Kết quả nghiên cứu:
Một báo cáo khoa học hoàn chỉnh, làm tài liệu cho giảng viên và sinh viên tham khảo để phát triển linh hoạt hệ thống, tích hợp thêm các module, chức năng khác
Có thể triển khai thử nghiệm, nâng cấp thêm và chuyển giao
(ký, họ và tên) (ký, họ và tên)
INFORMATION ON RESEARCH RESULTS
Trang 81 General information:
Project title:Develop a software aided arrange the exam schedule at Universiti
of Technical Education Ho Chi Minh city
Code number: T2013-37
Coordinator: BE Phung Quang Ngoc
Implementing institution: Ho Chi Minh City University of Technical Education
Duration: from Jan 2013 to Dec 2013
2 Objective(s):
Building efficiently the system for making exam schedule at Ho Chi Minh City University of Technical Education
3 Creativeness and innovativeness:
Project has great applicability, so it does not require creativeness and innovativeness
4 Research results:
-A full work-out scientific report
-Lecturer and student can use this as a reference Then they can flexibly
develop the system and add other modules and functions
5 Products:
An application for making exam schedule at Academy Affair ofuniversity of
Technical Education Ho Chi Minh City
6 Effects, transfer alternatives of research results and applicability:
The application can be launched, updated, and transferred
CHƯƠNG 1: MỞ ĐẦU
1.1 Tổng quan
Bài toán lập lịch là bài toán đã ra đời từ rất lâu cùng với lịch sử phát triển của loài người Tuy nhiên cho đến ngày nay nó vẫn là bài toán khó và chưa có lời giải nào là tối ưu cho tất cả các trường hợp mà chỉ tốt trong một số điều kiện cụ thể
Trang 9Trong các trường học từ cấp tiểu học, phổ thông cho tới đại học thì việc lập lịch là công việc mất rất nhiều thời gian và phải thực hiện thường xuyên trong mỗi học kỳ, mỗi năm học Từ lập thời khóa biểu giảng dạy cho đến xếp lịch thi học kỳ đều được các trường thực hiện thủ công hay bán tự động
Trong nước có một số phần mềm quản lý trường học có hỗ trợ chức năng xếp lịch thi như: F-School, Vschool, EduMa… Tuy nhiên, đối với các phần mềm này đều là các phần mềm có phí, và chức năng xếp lịch thi trong các phần mềm này không thể sử dụng như là một phần mềm riêng biệt Do đó không thể tích hợp với các hệ thống có sẵn khác
1.2 Tính cấp thiết của đề tài
Tin học hóa là một trong các yêu cầu cấp thiết của các trường đại học nói chung và trường đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh nói riêng
Hệ thống hiện tại chưa kết nối được với hệ thống đăng ký môn học của sinh viên, quá trình đồng bộ dữ liệu giữa các hệ thống phải thực hiện thủ công Do đó cần có một công cụ hỗ trợ xếp lịch hiệu quả, kết nối được với hệ thống đăng ký môn học hiện có
Với hình thức học chế tín chỉ, sinh viên có thể chủ động chọn đăng kí môn học theo kế hoạch của mình, do đó mỗi sinh viên sẽ có một lịch học và lịch thi riêng Điều này làm cho việc xếp lịch thi trở nên khó khăn hơn Việc xếp lịch thủ công cho hàng ngàn sinh viên là không khả thi mà cần phải có sự trợ giúp của các phần mềm máy tính
Hiện tại, phòng đào tạo của trường Đại học Sư phạm Kỹ thuật TP.HCM đang
sử dụng phần mềm quản lý đào tạo EduSoft trong đó đã có phần xếp lịch thi, tuy nhiên còn một số hạn chế như:
- Chỉ chạy trên windows và dùng trong nội bộ mạng LAN chứ không hỗ trợ giao diện web
- Cơ sở dữ liệu sử dụng Foxpro và độc lập với hệ thống Đăng ký môn học hiện có:
Trang 10+ Sau khi đăng ký môn học xong, dữ liệu đăng ký môn học của sinh viên phải được export sang định dạng file Foxpro để có thể import và phần mềm Edusoft để xếp lịch thi
+ Sau khi xếp lịch thi xong phải chuyển dữ liệu xếp lịch được về lại SQL để đưa lên hệ thống Đăng ký môn học để hiển thị cho sinh viên
Việc liên tục chuyển đổi qua lại như vậy tiềm ẩn nguy cơ phát sinh lỗi rất cao
- Phần xuất kết quả xếp lịch không hỗ trợ sinh viên, giáo viên xem lịch thi của mình
Với những lý do trên, đề tài nhắm tới một phần mềm xếp lịch thi đáp ứng các yêu cầu sau:
- Chạy trên nền web cho phép xếp lịch thi bằng một máy tính bất kỳ
- Sử dụng chung cơ sở dữ liệu SQL với phần mềm Đăng ký môn học hiện có
- Hỗ trợ nhiều người sử dụng
- Kết quả cho phép sinh viên và giáo viên có thể xem trực tiếp thông tin lịch thi trên giao diện web
1.3 Mục tiêu đề tài
Xây dựng thành công hệ thống hỗ trợ xếp lịch thi cho trường ĐH Sư phạm
Kỹ thuật TP.HCM, qua đó góp phần từng bước tin học hóa quản lý trong nhà trường
1.4 Cách tiếp cận
- Nghiên cứu, ứng dụng những công cụ hiện đại của CNTT và truyền thông vào trong giáo dục và đào tạo Cụ thể là xây dựng hệ thống quản lý và xếp lịch thi bán tự động cho trường đại học SPKT
1.5 Phương pháp nghiên cứu
- Khảo sát, phân tích hiện trạng thực tế từ đó đề ra giải pháp và quy trình nghiệp vụ tổng quát
- Nghiên cứu các thuật toán lập lịch áp dụng vào bài toán xếp lịch thi của trường đại học
Trang 111.6 Đối tượng tượng và phạm vi nghiên cứu
1.6.1 Các đối tượng nghiên cứu:
- Quy trình xếp lịch thi tại trường đại học SPKT TP.HCM
- Thuật toán xếp lịch
1.6.2 Phạm vi nghiên cứu:
Phạm vi nghiên cứu của đề tài chỉ giới hạn trong các quy trình nghiệp vụ tại trường Đại học Sư phạm Kỹ thuật TP.HCM
CHƯƠNG 2 GIẢI THUẬT XẾP LỊCH THI
2.1 Hướng tiếp cận giải quyết bài toán xếp lịch
Có rất nhiều giải thuật có thể áp dụng để giải quyết bài toánlịch trong đó có thể kể đến:
Tô màu đồ thị (Graph Coloring)
Mô phỏng tôi thép (Anealing Simulate)
Di Truyền (Generics)
Tìm kiếm Tabu (Tabu Search)
Tìm kiếm tham lam, hoặc theo kinh nghiệm (heuristic)
Giải thuật Anealing Simulate & Generics có nguyên tắc khá giống nhau đó là sinh ngẫu nhiên một lời giải, sau đó biến đổi trên lời giải ban đầu một cách ngẫu nhiên để tạo ra các lời giải mới Về lý thuyết thì các giải thuật này chạy càng lâu càng cho ra lời giải tốt hơn, tuy nhiên vì dựa nhiều vào tính ngẫu nhiên nên rất khó
để kiểm soát tốc độ hội tụ cũng như độ tốt của lời giải
Phương án tìm kiếm Tabu được thực hiện dựa trên tư tưởng tìm kiếm cục bộ Xuất phát từ một lời giải ban đầu (có thể tạo ra bằng cách sinh ngẫu nhiên), tìm kiếm các lời giải lân cận (có thể biến đổi được từ lời giải đầu) và chọn lời giải tốt nhất trong số các lân cận Lặp lại quá trình đó với lời giải mới vừa được chọn tới khi nào không có lân cận nào tốt hơn lời giải hiện tại hoặc tới khi đạt được điều kiện dừng
Trang 12Phương pháp tìm kiếm tham lam thường lập lịch bằng cách sắp xếp mức độ
ưu tiên của các ràng buộc mềm sau đó tiến hành xếp lịch sao cho đáp ứng các ràng buộc mềm theo thứ tự đã sắp xếp Ràng buộc càng khó đạt được sẽ được ưu tiên đáp ứng trước
Giải thuật tô màu đồ thị là giải thuật dùng để tô màu cho các đỉnh của một đồ thị sao cho 2 cặp đỉnh kề nhau bất kỳ phải có màu khác nhau.Đối với bài toán xếp lịch, đỉnh của đồ thị thể hiện một phần tử cần xếp lịch, các đỉnh của đồ thị kề nhau hay không thể hiện giữa các đỉnh có vi phạm các ràng buộc hay không Bài toán xếp lịch cho các phần tử sao cho thỏa mãn các ràng buộc được giải quyết bằng cách tô màu cho các đỉnh của đồ thị sao cho không có cặp đỉnh kề nhau nào có cùng màu
Có thể sử dụng các heuristic trong quá trình tô màu
2.2 Giải thuật xếp lịch thi sử dụng thuật toán tô màu
Dữ liệu đầu vào của bài toán xếp lịch thi gồm có:
Danh sách các nhóm thi: Danh sách các lớp học phần cần xếp lịch thi
Lịch học của từng sinh viên: Danh sách các môn học của sinh viên cần phải xếp lịch thi
Thông tin phòng thi: Danh sách các phòng học được dùng để thi, khả năng chứa của phòng và lịch của phòng
Các ràng buộc của quá trình xếp lịch thi:
o Mỗi sinh viên chỉ thi tối đa một môn tại một thời điểm
o Lịch thi phải được xếp trong khoảng thời gian từ Ngày bắt đầu tới Ngày kết thúc thi
o 2 môn thi liên tiếp của một sinh viên phải cách nhau tối thiểu D
ca thi
o Các sinh viên học cùng lớp học phần phải thi cùng lúc
Đầu ra của bài toán:
Danh sách lịch thi (gồm có ngày thi ca thi phòng thi)của từng sinh viên, từng môn học
Trang 13Mô hình lại bài toán xếp lịch thi dưới dạng đồ thị như sau:
Có thể giải bài toán lập lịch thi bằng mô hình đồ thị, với các đỉnh là các môn thi (lớp học phần), có một cạnh nối hai đỉnh nếu có sinh viên phải thi cả hai môn được biểu diễn bằng hai đỉnh này Thời gian thi của mỗi môn được biểu thị bằng các màu khác nhau Như vậy việc lập lịch thi sẽ tương ứng với việc tô màu đồ thị này
Việc mô hình mỗi đỉnh là một môn thi đã giải quyết được ràng buộc các sinh
viên học cùng lớp học phần phải thi cùng lúc
Sau khi tô màu xong, ta có danh sách các màu được sử dụng để tô cho các đỉnh của đồ thị Các môn thi được tô màu khác nhau nghĩa là phải được xếp lịch vào các khoảng thời gian khác nhau Điều đó giúp đáp ứng ràng buộc về trùng lịch thi
của sinh viên: sinh viên không thi 2 môn cùng lúc
Ta sẽ sử dụng các heuristic để giải quyết các ràng buộc còn lại khi tiến hành phẩn bổ thời gian, phòng thi cho các màu
2.3 Hiện thực hoá thuật toán
Trang 14 AdjacencyMatrix[i,j] = 1 : Nếu có sinh viên học cùng lúc Groups[i] và Groups[j]
color[x] = ColorNumber; // Cho nó 1 cái màu mới unprocessed ;
// Tìm tập hợp các đỉnh không phải hàng xóm của x