Mục đích của chương trình là đưa ra được thời khóa biểu cho từng lớp, thời khóa biểu cho các lớp trong từng khóa, phân công giảng dạy cho các giáo viên, bảng kế hoạch học tập cho từng lớp, từng khóa. Đặc biệt cần xem nhanh các thông tin lịch học cho các lớp, quá trình công tác của từng giáo viên trong từng học kỳ. Hay là biết được lớp nào đó đang học tại phòng học số mấy, môn học gì, do giáo viên nào dạy.
Phân công cho các giáo viên dạy trong kỳ.
9 trang |
Chia sẻ: netpro | Lượt xem: 1642 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Đề tài Xây dưng hệ thống chương trình quản lý giảng dạy tại trường đại học kỹ thuật đà nẵng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG III:
XÂY DỰNG MÔ HÌNH LÔGIC DỮ LIỆU
Mục đích của phần này đi xây dựng mô hình logic từ mô hình ý niệm dữ liệu đã được phân tích, rồi chuyển thành mô hình logic dữ liệu các tệp. Sau đó quyết định làm sao đưa ra công cụ phần mềm phù hợp, thích hợp với các cấu trúc dữ liệu mà ta đa định nghĩa.
I. MÔ HÌNH LOGIC DỮ LIỆU:
KHOA (Makhoa, Tenkhoa)
DIADIEM (MaDD, Diadiem, Phong)
NAMHOC (Namhoc, Hocky)
KHHT (#Namhoc, #Malop, TuanBD, TuanKT, Bdthi,
KTThi, Bdthuctap, KTThuctap)
LOP (Malop, #Makhoa, #MaDD, Hockhoa, SoSV)
HOC (#Malop, #Mamonhoc, Thu, Tiet)
MONHOC (Mamonhoc, Tenmonhoc, SotietLT, Btlon, TN_TH,
#MaGV, Ghichu)
CONGTAC (#Malop, #MaGV, Ngaydi, Ngayve)
GIAOVIEN (MaGV, TenGV, Chucdanh)
DOAN (MaDA, TenDA, #MaGV)
LAMDA (#MaDA, #MaLop, TuanBD, TuanKT)
II. XÂY DỰNG MÔ HÌNH LOGIC CÁC TỆP:
Nguyên tắc chuyển đổi các thực thể thành các tệp: mỗi thực thể được tạo thành một bảng (Table) trong hệ quản trị cơ sở dữ liệu Microsoft Access và tệp chỉ mục của nó. Các thuộc tính của thực thể tạo thành các trường (Field) của các bảng.
Dưới đây là các thực thể đã phân tích ở các phần trên được chuyển đổi thành các bảng (Table) trong các tệp (File) cơ sở dữ liệu Microsoft Access với tên là DATA.MDB
· Thực thể KHOA:
Table
Tên chỉ mục
KHOA
KHOA
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Makhoa
Makhoa
T10
Tenkhoa
T40
· Thực thể LỚP:
Table
Tên chỉ mục
LỚP
LOP
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Malop
Malop
T10
Makhoa
Makhoa
T10
MaDD
MaDD
T10
Hockhoa
T10
SoSV
N3
· Thực thể ĐỊA ĐIỂM:
Table
Tên chỉ mục
ĐỊA ĐIỂM
DIADIEM
Các trường
Khóa chỉ mục
Kiểu dữ liệu
MaDD
MaDD
T10
Diadiem
T50
Phong
T10
· Thực thể NĂM HỌC:
Table
Tên chỉ mục
NĂM HỌC
NAMHOC
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Namhoc
Namhoc
T10
Hocky
T10
· Thực thể KẾ HOẠCH HỌC:
Table
Tên chỉ mục
KẾ HOẠCH HỌC
KHTT
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Namhoc
Namhoc
T10
Malop
Malop
T10
TuanBD
N2
TuanKT
N2
BDThi
N2
KTThi
N2
BDThuctap
N2
KTThuctap
N2
· Thực thể HỌC:
Table
Tên chỉ mục
HỌC
HOC
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Malop
Malop
T10
Mamonhoc
Mamonhoc
T10
Thu
T7
Tiet
T4
· Thực thể MÔN HỌC:
Table
Tên chỉ mục
MÔN HỌC
MONHOC
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Mamonhoc
Mamonhoc
T10
Tenmonhoc
T40
SotietLT
N3
BTlon
N2
TN_TH
N2
Ghichu
T40
· Thực thể GIÁO VIÊN:
Table
Tên chỉ mục
GIÁO VIÊN
GIAOVIEN
Các trường
Khóa chỉ mục
Kiểu dữ liệu
MaGV
MaGV
T10
TenGV
T30
Chucdanh
T30
· Thực thể CÔNG TÁC:
Table
Tên chỉ mục
CÔNG TÁC
CONGTAC
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Malop
Malop
T10
MaGV
MaGV
T10
Ngaydi
D
Ngayve
D
· Thực thể LÀM ĐỒ ÁN:
Table
Tên chỉ mục
LÀM ĐỒ ÁN
LAMDA
Các trường
Khóa chỉ mục
Kiểu dữ liệu
Malop
Malop
T10
MaDA
MaDA
T10
TuanBD
N2
TuanKT
N2
· Thực thể ĐỒ ÁN:
Table
Tên chỉ mục
ĐỒ ÁN
DOAN
Các trường
Khóa chỉ mục
Kiểu dữ liệu
MaDA
MaDA
T10
TenDA
T40
III. HỢP THỨC HÓA MÔ HÌNH DỮ LIỆU BỞI XỬ LÝ SỰ KIỆN:
Sau khi phân tích thiết kế hệ thống, xây dựng mô hình logic dữ liệu các tệp, để chứng tỏ rằng tệp dữ liệu vừa được tạo ở trên thỏa mãn các xử lý trong bài toán quản lý giảng dạy tại trường Đại học Kỹ thuật Đà nẵng. Ta đi xây dựng các môdun thuật toán như sau:
III.1 Các thủ tục đăng ký (phần hệ thống):
â Đăng ký người sử dụng
â Thay đổi mật khẩu người sử dụng
¯ Đăng ký người sử dụng:
Để bảo đảm người truy nhập và sử dụng chương trình hợp pháp. Người sử dụng phải vào đúng mật khẩu để có thể sử dụng được chương trình. Nếu người dùng không có mật khẩu thì không vào được chương trình.
Private Sub Command1_Click()
If (Len(Tuser.Text) > 0) And ->
(Len(Tpass.Text) > 0) Then
Data1.Recordset.MoveLast
Data1.Recordset.AddNew
Tuser.Text = ""
Tpass.Text = ""
Else
If (Len(Tuser.Text) = 0) And (Len(Tpass.Text) = 0) Then
p.Caption = " User Name ?, Password ?"
Tuser.SetFocus
Else
If (Len(Tuser.Text) = 0) And (Len(Tpass.Text) > 0) Then
p.Caption = "User Name ?"
Tuser.SetFocus
End If
If (Len(Tuser.Text) > 0) And
(Len(Tpass.Text) = 0) Then
p.Caption = "Password ?"
Tpass.SetFocus
End If
End If
End If
End Sub
¯ Thay đổi mật khẩu người sử dụng:
Người dùng có thể thay đổi mật khẩu của mình khi đã đăng nhập vào chương trình qua Form Change PassWord và tính bảo mật vẫn được bảo đảm dưới các kí tự sao.
Function CheckPassword()
Dim CmpCmp
SqlStr$ = "Select * From Baove "
'Set tdyna = tDana.CreateDynaset(SqlStr$)
Cmp = StrComp(UCase$(tOldpassword.Text), "SUPERVISOR")
If Cmp = 0 Then
Cmp = StrComp(UCase$(TnewPassword.Text), "7775")
If Cmp = 0 Then
CheckPassword = True
Else
CheckPassword = False
End If
Else
StrFind$ = "UserName = "" &tOldpassword.Text&"
tdyna.FindFisrt Strfind$
If Not tdyna.NoMatch Then
Cmp StrComp(tdyna!Password, UCase$(TnewPassword.Text))
If Cmp = 0 Then
CheckPassword = True
Else
CheckPassword = False
End If
End If
End If
End Function
III.2 Các thuật toán cập nhật (đăng ký) quản lý:
â Phân phòng học.
â Phân công giảng dạy.
â Lập kế hoạnh học tập.
â Phân thời khóa biểu.
¯ Phân phòng học:
Private Sub SSCommand1_Click(Index As Integer)
Data1.Recordset.AddNew
Data1.Recordset.Update
Data1.Recordset.MoveLast
Data1.Refresh
End Sub
¯ Phân công giảng dạy:
Private Sub SSCommand1_Click(Index As Integer)
Data1.Recordset.AddNew
Data1.Recordset.Update
Data1.Recordset.MoveLast
End Sub
Private Sub SSCommand2_Click(Index As Integer)
Data1.Recordset.Delete
Data1.Recordset.MoveLast
End Sub
¯ Lập kế hoạnh học tập:
Private Sub SSCommand1_Click(Index As Integer)
Data1.Recordset.AddNew
Data1.Recordset.Update
Data1.Recordset.MoveLast
End Sub
Private Sub SSCommand2_Click(Index As Integer)
Data1.Recordset.Delete
Data1.Recordset.MoveLast
End Sub
¯ Phân thời khóa biểu:
Private Sub SSCommand1_Click(Index As Integer)
Data5.Recordset.AddNew
Data5.Recordset.Update
Data5.Recordset.MoveLast
End Sub
Private Sub SSCommand2_Click(Index As Integer)
Data5.Recordset.Delete
Data5.Recordset.MoveLast
End Sub
III.3. Các thuật toán xử lý báo cáo (các câu lệnh truy vấn dữ liệu SQL):
Mục đích của chương trình là đưa ra được thời khóa biểu cho từng lớp, thời khóa biểu cho các lớp trong từng khóa, phân công giảng dạy cho các giáo viên, bảng kế hoạch học tập cho từng lớp, từng khóa. Đặc biệt cần xem nhanh các thông tin lịch học cho các lớp, quá trình công tác của từng giáo viên trong từng học kỳ. Hay là biết được lớp nào đó đang học tại phòng học số mấy, môn học gì, do giáo viên nào dạy.
â Phân công cho các giáo viên dạy trong kỳ.
â Phân công giáo viên dạy theo lớp.
â Phân thời khóa biểu cho các lớp.
â Phân thời khóa biểu cho các khóa.
â Kế hoạch học tập cho lớp.
â Kế hoạch học tập cho các khóa học.
III.3.1 Phân công cho các giáo viên dạy trong kỳ:
Data1.RecordSource = "select distinctrow monhoc.malop, monhoc.tenmonhoc, monhoc.sotietlt, monhoc.diadiem, monhoc.magv, monhoc.tengv, monhoc.chucdanh, monhoc.namhoc, monhoc.hocky, hoc.thu, hoc.tiet ,monhoc.ghichu from hoc inner join monhoc on (hoc.mamonhoc = monhoc.mamonhoc) and (hoc.malop = monhoc.malop) and (hoc.namhoc = monhoc.namhoc) and (hoc.hocky = monhoc.hocky)where (monhoc.namhoc = '" & trim(right(text1.text, 10)) & "') and (monhoc.hocky = '" & trim(right(combo1.text, 10)) & "') and (monhoc.magv = '" & trim(right(text2.text, 10)) & "')order by monhoc.malop,hoc.thu,hoc.tiet "
III.3.2. Phân công giáo viên dạy theo lớp:
Data1.RecordSource = "select distinctrow hoc.namhoc, hoc.hocky, hoc.malop, hoc.mamonhoc, hoc.thu, hoc.tiet, monhoc.namhoc, monhoc.hocky, monhoc.mamonhoc, monhoc.tenmonhoc, monhoc.sotietlt, monhoc.magv, monhoc.tengv, monhoc.chucdanh, monhoc.diadiem, monhoc.ghichu from hoc inner join monhoc on (hoc.hocky = monhoc.hocky) and (hoc.namhoc = monhoc.namhoc) and (hoc.malop = monhoc.malop) and (hoc.mamonhoc = monhoc.mamonhoc) where (monhoc.magv = '" & trim(right(text1.text, 10)) & "') and (hoc.namhoc = '" & trim(right(text2.text, 10)) & "') and (hoc.hocky = '" & trim(right(combo1.text, 10)) & "')and (hoc.malop = '" & trim(right(text3.text, 10)) & "') order by hoc.malop"
III.3.3 Phân thời khóa biểu cho các lớp.
data1.recordsource = "select distinctrow lop.malop, lop.phong, lop.namhoc, lop.hocky, hoc.mamonhoc, hoc.tenmonhoc, hoc.thu, hoc.tiet, monhoc.magv, monhoc.tengv from (lop inner join hoc on (lop.hocky = hoc.hocky) and (lop.namhoc = hoc.namhoc) and (lop.malop = hoc.malop)) inner join monhoc on (hoc.malop = monhoc.malop) and (hoc.hocky = monhoc.hocky) and (hoc.namhoc = monhoc.namhoc) and (hoc.mamonhoc = monhoc.mamonhoc)where (hoc.malop = '" & trim(right(text1.text, 10)) & "')and (hoc.namhoc = '" & trim(right(text2.text, 10)) & "')and (hoc.hocky = '" & trim(right(combo1.text, 10)) & "') order by thu "
III.3.4 Phân thời khóa biểu cho các khóa:
data1.recordsource = "select distinctrow monhoc.tenmonhoc, monhoc.sotietlt, monhoc.tengv, monhoc.malop, monhoc.namhoc, monhoc.hocky, hoc.thu, hoc.tiet, lop.phong, lop.khoahoc from lop inner join (hoc inner join monhoc on (monhoc.hocky = hoc.hocky) and (monhoc.namhoc = hoc.namhoc) and (monhoc.malop = hoc.malop) and (hoc.mamonhoc = monhoc.mamonhoc)) on (lop.hocky = hoc.hocky) and (lop.namhoc = hoc.namhoc) and (lop.malop = hoc.malop)where (hoc.namhoc = '" & trim(right(text1.text, 10)) & "')and (hoc.hocky = '" & trim(right(combo1.text, 10)) & "') and (lop.khoahoc = '" & trim(right(text2.text, 10)) & "') order by lop.malop asc, hoc.thu asc"
III.3.5 Kế hoạch học tập cho lớp
data1.recordsource = "select distinctrow kehoach.ghichu1, kehoach.malop, kehoach.tenda, kehoach.sothoc, kehoach.tuanbd, kehoach.tuankt, kehoach.sotthi, kehoach.batdauthi, kehoach.ketthucthi, kehoach.sottt, lop.phong, lop.khoa, lop.khoahoc, monhoc.tenmonhoc, monhoc.sotietlt, monhoc.btlon, monhoc.tenda, monhoc.tnth, kehoach.bdthuctap, kehoach.ktthuctap, kehoach.namhoc, kehoach.hocky from (monhoc inner join kehoach on (monhoc.hocky = kehoach.hocky) and (monhoc.namhoc = kehoach.namhoc) and (monhoc.malop = kehoach.malop)) inner join lop on (kehoach.hocky = lop.hocky) and (kehoach.namhoc = lop.namhoc) and (kehoach.malop = lop.malop)where (kehoach.namhoc = '" & trim(right(text1.text, 10)) & "')and (kehoach.hocky = '" & trim(right(combo1.text, 10)) & "') and (kehoach.malop = '" & trim(right(text2.text, 10)) & "') order by monhoc.tenmonhoc asc"
III.3.6 Kế hoạch học tập cho các khóa học:
data1.recordsource = "select distinctrow lop.khoahoc, lop.hocky, lop.namhoc, lop.khoa, lop.malop, kehoach.ghichu1, kehoach.tenda, kehoach.sothoc, kehoach.tuanbd, kehoach.tuankt, kehoach.sotthi, kehoach.batdauthi, kehoach.ketthucthi, kehoach.sottt, kehoach.bdthuctap, kehoach.ktthuctap from kehoach inner join lop on (kehoach.hocky = lop.hocky) and (kehoach.namhoc = lop.namhoc) and (kehoach.malop = lop.malop) where (lop.namhoc = '" & trim(right(text1.text, 10)) & "')and (lop.hocky = '" & trim(right(combo1.text, 10)) & "') and (lop.khoahoc = '" & trim(right(text2.text, 10)) & "') order by lop.malop asc"