- Hồ sơ: bao gồm cỏc thụng tin về thớ sinh: tờn, ngày sinh, nơi sinh, địa điểm, đố
4.2 Hướng phỏt triển của phần mềm
Phần mềm quản lý tuyển sinh tại chức vừa xõy dựng xong cũn nhiều mặt hạn chế do thiếu thời gian và kiến thức. Em hy vọng cú thể phỏt triển để hoàn thiện thờm phần mềm này theo hướng thay vỡ quản lý tuyển sinh cho một cơ sở đào tạo như hiện nay bằng quản lý tuyển sinh tại chức trực tuyến tại tất cả cỏc địa điểm đào tạo của trường đại học kinh tế quốc dõn trờn cả nước.
Kết luận
Đề tài :” Xõy dựng phần mềm quản lý tuyển sinh đại học tại chức tại trường đại học kinh tế quốc dõn”, được xõy dựng trờn ngụn ngữ lập trỡnh VisualBase 6.0 và hệ quản trị cơ sở dữ liệu Access 2003. Phần mềm đó thực hiện được cỏc chức năng cơ bản của quỏ trỡnh tuyển sinh tại chức của trường đại học Kinh tế quốc dõn.
Qua quỏ trỡnh nghiờn cứu đề tài em đó cú những hiểu biết sõu sắc về hoạt động tuyển sinh tại chức của trường. Đồng thời tỡm hiểu sõu hơn về nghiệp vụ phỏt triển hệ thống thụng tin quản lý cũng như nõng cao kiến thức về lập trỡnh VisualBase và hệ quản trị cơ sở dữ liệu Access 2003. Em rất hy vọng phần mềm của em cú thể được ỏp dụng vào thực tế và giỳp ớch cho việc tin học quỏ trỡnh quản lý của trường đại học Kinh tế quốc dõn nơi em đang học
Do thời gian và kiến thức cũn hạn chế nờn phần mềm của em vẫn cũn nhiều mặt thiếu xút. Em rất mong nhận được sự đúng gúp ý kiến của thầy cụ và cỏc bạn để đề ỏn của em được hoàn thiện hơn.
Em xin chõn thành cảm ơn những giỳp đỡ nhiệt tỡnh của cụ giỏo Tiến sĩ Trần thị Song Minh đó giỳp đỡ em trong quỏ trỡnh thực hiện đề tài.
Danh mục tài liệu tham khảo
1. Tự học lập trỡnh visual basic 6.0 – Nhà xuất bản văn húa thụng tin
2. TS Trương Văn Tỳ – TS Trần Thị Song Minh, Giỏo trỡnh “ Hệ thống thụng tin quản lý”
3. PGS.TS Hàn Viết Thuận, Giỏo trỡnh “Cấu trỳc dữ liệu và giải thuật”
4. Phựng Tiến Hải, Nghiờn cứu thiết kế một số phần mềm phục vụ cụng tỏc tin học hoỏ quản lý tại trường ĐH KTQD, Bộ GDĐT trường ĐH KTQD
5. Microsoft visual basic lập trỡnh cơ sở dữ liệu 6.0 – Nhà xuất bản lao động – xó hội
Phụ lục
Một vài đoạn mó nguồn quan trọng trong quỏ trỡnh sử lý dữ liệu của phần mềm quản lý tuyển sinh đại học tại chức:
Tỏch và sử lý chuỗi họ và tờn của thớ sinh:
Public Function atrim(ByVal ht As String) As String ' cắt bỏ toàn bộ dấu cỏch hai bờn phải và trỏi
ht = LTrim(RTrim(ht))
‘ Loại bỏ cỏc dấu cỏch thừa trong chuỗi Do While InStr(ht, " ") <> 0
ht = Replace(ht, " ", " ") Loop
atrim = ht End Function
Public Function TachTen(ByVal ht As String) As String ' Gọi hàm cắt cỏc dấu cỏch thừa
ht = atrim(ht) Dim i As Integer i = InStrRev(ht, " ")
' Kiểm tra chiều dài của chuỗi tờn If (Len(ht) - i) > 7 Then
MsgBox "Tên có trên 7 ký tự)" End If
TachTen = Right(ht, Len(ht) - i) End Function
Public Function TachHoDem(ByVal ht As String) As String ht = atrim(ht)
Dim i As Integer i = InStrRev(ht, " ")
' Lấy họ đệm bằng cách cắt lấy phần bên trái của chuỗi đến dấu cách cuối cùng TachHoDem = Trim(Left(ht, i))
End Function
Đoạn code để sử lý thụng tin tuyển sinh:
Public Sub PhongThi() On Error GoTo loi
Set RS = New ADODB.Recordset Set rs1 = New ADODB.Recordset Dim str, Str1 As String
Dim i As Integer
str = " SELECT * FROM DiaDiemThi"
RS.Open str, cn, adOpenDynamic, adLockOptimistic If RS.EOF = True Then
'MsgBox "Bạn cha nhập địa điểm", , "Thông báo" Exit Sub
End If
Str1 = "SELECT * FROM PhongThi"
rs1.Open Str1, cn, adOpenDynamic, adLockOptimistic If rs1.EOF = False Then
cn.Execute "DELETE * FROM PhongThi" End If
Do While RS.EOF = False i = 1
Do While i <= RS.Fields("SoPhongThi").Value If i < 10 Then
rs1.AddNew
rs1.Fields("MaPhongThi").Value = RS.Fields("MaDiaDiem").Value + "0" + CStr(i) rs1.Fields("MaDiaDiem").Value = RS.Fields("MaDiaDiem").Value
rs1.Update Else
rs1.AddNew
rs1.Fields("MaPhongThi").Value = RS.Fields("MaDiaDiem").Value + CStr(i) rs1.Fields("MaDiaDiem").Value = RS.Fields("MaDiaDiem").Value rs1.Update End If rs1.MoveNext i = i + 1 Loop RS.MoveNext Loop RS.Close rs1.Close Exit Sub loi: Exit Sub End Sub
Public Sub DanhSBD() On Error GoTo loi
Set RS = New ADODB.Recordset Set rs1 = New ADODB.Recordset ' Set rs2 = New ADODB.Recordset Dim str, Str1, str2 As String Dim i As Integer
If MsgBox("Bạn thực sự muốn kết thúc quá trình cập nhật hồ sơ?", vbOKCancel, "Thông báo") = vbOK Then
Exit Sub End If Else Cancel = 1 Exit Sub End If
' Danh so bao danh
str = " SELECT MaHoSo FROM HoSoDuTuyen ORDER BY Ten" RS.Open str, cn, adOpenDynamic, adLockOptimistic
If RS.EOF = True Then Exit Sub
End If
Str1 = "SELECT * FROM ThiSinh ORDER BY SoBaoDanh" rs1.Open Str1, cn, adOpenDynamic, adLockOptimistic
i = 1
If rs1.EOF = False Then
cn.Execute "DELETE * FROM ThiSinh" End If
Do While RS.EOF = False If i < 10 Then rs1.AddNew rs1.Fields("MaHoSo").Value = RS.Fields("MaHoSo").Value rs1.Fields("SoBaoDanh").Value = "TC" + CStr(19) + "000" + CStr(i) rs1.Update End If If i > 10 And i < 100 Then rs1.AddNew rs1.Fields("MaHoSo").Value = RS.Fields("MaHoSo").Value rs1.Fields("SoBaoDanh").Value = "TC" + CStr(19) + "00" + CStr(i) rs1.Update End If If i > 100 And i < 1000 Then rs1.AddNew rs1.Fields("MaHoSo").Value = RS.Fields("MaHoSo").Value rs1.Fields("SoBaoDanh").Value = "TC" + CStr(19) + "0" + CStr(i) rs1.Update End If If i > 1000 Then rs1.AddNew rs1.Fields("MaHoSo").Value = RS.Fields("MaHoSo").Value rs1.Fields("SoBaoDanh").Value = "TC" + CStr(19) + CStr(i) rs1.Update End If i = i + 1 RS.MoveNext Loop 'rs2.Close RS.Close
' Phan phong thi
str = "SELECT * FROM PhongThi"
RS.Open str, cn, adOpenDynamic, adLockOptimistic rs1.MoveFirst
Do While RS.EOF = False 'MsgBox "Thông bao" For i = 1 To 25
If rs1.EOF = False Then
rs1.Fields("MaPhongThi").Value = RS.Fields("MaPhongThi").Value rs1.Update
End If
If rs1.EOF = False Then rs1.MoveNext Else Exit Sub End If Next i RS.MoveNext Loop Exit Sub loi:
MsgBox "Bạn đã kết thúc quá trình cập nhật và phân phòng thi cho thí sinh", , "Thông báo"
Exit Sub End Sub
Public Sub TinhDiem()
Set RS = New ADODB.Recordset Set rs1 = New ADODB.Recordset Set rs2 = New ADODB.Recordset Dim str, Str1, str2, str3 As String Dim i, ChiTieu As Integer Dim DiemChuan As Single
str = "SELECT * FROM ChuyenNganh WHERE ChiTieu<>0" RS.Open str, cn, adOpenDynamic, adLockOptimistic
' Tinh chi tieu chung If RS.EOF = True Then
MsgBox "Bạn cha nhập chỉ tiêu của chuyên ngành nào", , "thông báo" Exit Sub
End If ChiTieu = 0
Do While RS.EOF = False
ChiTieu = ChiTieu + RS.Fields("ChiTieu").Value RS.MoveNext
' Tinh diem chuan toan truong
Str1 = "SELECT
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong) as TongDiem,ThiSinh.SoBaoDanh FROM ThiSinh INNER JOIN HoSoDuTuyen ON ThiSinh.MaHoSo=HoSoDuTuyen.MaHoSo "
'str1 = str1 + "WHERE HoSoDuTuyen.DuocTuyenThang='No' "
Str1 = Str1 + "ORDER BY
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong)DESC,HoSo DuTuyen.DiemThuong DESC"
rs1.Open Str1, cn, adOpenDynamic, adLockOptimistic i = 1
DiemChuan = 0
If rs1.EOF = True Then
MsgBox "Bạn cha nhập điểm thí sinh", vbOKOnly, "Thông báo" Exit Sub
End If
rs1.MoveFirst
Do While rs1.EOF = False If i <= ChiTieu Then DiemChuan = rs1.Fields("TongDiem") End If i = i + 1 rs1.MoveNext Loop
MsgBox "Diem chuan toan truong la " & DiemChuan & ""
Set rs3 = New ADODB.Recordset str3 = "SELECT * FROM CoSoDaoTao"
rs3.Open str3, cn, adOpenDynamic, adLockOptimistic rs3.Fields("DiemSan").Value = DiemChuan
rs3.Update rs3.Close
Set rs3 = New ADODB.Recordset
' Tinh diem chuan cho tung chuyen nganh
Dim MaNganh As String
str3 = "SELECT * FROM SinhVien"
rs3.Open str3, cn, adOpenDynamic, adLockOptimistic 'RS.MoveFirst
Do While RS.EOF = False
Set rs2 = New ADODB.Recordset
str2 = "SELECT
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong) as TongDiem,ThiSinh.MaHoSo FROM ThiSinh INNER JOIN HoSoDuTuyen ON ThiSinh.MaHoSo=HoSoDuTuyen.MaHoSo "
str2 = str2 + "WHERE (ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong)>='" & DiemChuan & "'"
str2 = str2 + " and HoSoDuTuyen.MaChuyenNganh='" & RS.Fields("MaChuyenNganh").Value & "'"
str2 = str2 + " ORDER BY
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong)DESC,HoSo DuTuyen.DiemThuong DESC"
rs2.Open str2, cn, adOpenDynamic, adLockOptimistic i = 1
' If rs2.EOF = True Then
' MsgBox "Khong co thi sinh nao dang ky chuyen nganh '" & RS.Fields("TenChuyenNganh").Value & "'"
' End If
MaNganh = RS.Fields("MaChuyenNganh").Value ChiTieu = RS.Fields("ChiTieu").Value
Do While rs2.EOF = False If i < ChiTieu Then RS.Fields("DiemChuan").Value = rs2.Fields("TongDiem").Value RS.Update rs3.AddNew rs3.Fields("MaHoSo").Value = rs2.Fields("MaHoSo").Value rs3.Fields("MaChuyenNganh").Value = MaNganh rs3.Update End If i = i + 1 rs2.MoveNext Loop rs2.Close RS.MoveNext Loop rs3.Close
Dim Thieu As Integer 'Dim str As String
Set RS = New ADODB.Recordset
str = "SELECT* FROM ChuyenNganh WHERE ChiTieu>0 " RS.Open str, cn, adOpenDynamic, adLockOptimistic
Do While RS.EOF = False
ChiTieu = RS.Fields("ChiTieu").Value
MaNganh = RS.Fields("MaChuyenNganh").Value Set rs3 = New ADODB.Recordset
str3 = "SELECT * FROM SinhVien WHERE MaChuyenNganh='" & MaNganh & "'" rs3.Open str3, cn, adOpenDynamic, adLockOptimistic
If ChiTieu > rs3.RecordCount Then Thieu = ChiTieu - rs3.RecordCount Set rs2 = New ADODB.Recordset
str2 = "SELECT
TongDiem,ThiSinh.MaHoSo FROM ThiSinh INNER JOIN HoSoDuTuyen ON ThiSinh.MaHoSo=HoSoDuTuyen.MaHoSo "
str2 = str2 + "WHERE
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong)>='" & DiemChuan & "'"
' str2 = str2 + " and HoSoDuTuyen.MaChuyenNganh='" & RS.Fields("MaChuyenNganh").Value & "'"
str2 = str2 + " ORDER BY
(ThiSinh.Mon1+ThiSinh.Mon2+ThiSinh.Mon3+HoSoDuTuyen.DiemThuong)DESC,HoSo DuTuyen.DiemThuong DESC"
rs2.Open str2, cn, adOpenDynamic, adLockOptimistic i = 1
'Do While i < Thieu
Do While rs2.EOF = False Dim str4 As String
Set rs4 = New ADODB.Recordset
str4 = "SELECT * FROM SinhVien WHERE MaHoSo='" & rs2.Fields("MaHoSo").Value & "'"
rs4.Open str4, cn, adOpenDynamic, adLockOptimistic If (rs4.EOF = True) And i < Thieu Then
'If rs2.Fields("MaHoSo").Value <> rs3.Fields("MaHoSo").Value Then rs3.AddNew rs3.Fields("MaHoSo").Value = rs2.Fields("MaHoSo").Value rs3.Fields("MaChuyenNganh").Value = MaNganh rs3.Update i = i + 1 End If rs2.MoveNext Loop End If RS.MoveNext Loop RS.Close rs1.Close
Set rs3 = New ADODB.Recordset
rs3.Open "Select * From SinhVien INNER JOIN HoSoDuTuyen On SinhVien.MaHoSo=HoSoDuTuyen.MaHoSo ORDER BY HoSoDuTuyen.Ten", cn, adOpenDynamic, adLockOptimistic
i = 1
Do While rs3.EOF = False
rs3.Fields("MaSinhVien").Value = "TC" + CStr(19) + CStr(i) rs3.Update i = i + 1 rs3.MoveNext Loop End Sub