TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT
KHOA CÔNG NGHỆ THÔNG TIN
---o0o---
BÀI TẬP LỚN MƠN: LẬP TRÌNH .NET + BTL
Đề tài:
XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ CƠNG TÁC THI CHUẨN
ĐẦU RA CHO TRUNG
TÂM NGOẠI NGỮ - TIN HỌC TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT
Hà Nội, 2021
1
MỤC LỤC
CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU .......................................................................... 5
1.
Mơ hình quan hê. ........................................................................................................... 5
2.
Các bảng dữ liệu ............................................................................................................ 5
2.1.
Bảng 1: Admin ........................................................................................................ 5
2.2.
Bảng 2: Khoa (ngành) ............................................................................................ 5
2.3.
Bảng 3: Khóa học ................................................................................................... 6
2.4.
Bảng 4: Chức vụ ..................................................................................................... 6
2.5.
Bảng 5: Đợt thi........................................................................................................ 6
2.6.
Bảng 6: Buổi thi ...................................................................................................... 6
2.7.
Bang 7: Ca thi ......................................................................................................... 7
2.8.
Bảng 8: Phòng thi ................................................................................................... 7
2.9.
Bảng 9: Lịch thi ...................................................................................................... 7
2.10.
Bảng 10: Cán bộ.................................................................................................. 8
2.11.
Bảng 11: Lớp ....................................................................................................... 8
2.12.
Bảng 12: Sinh Viên ............................................................................................. 9
2.13.
Bảng 13: Kết Quả ............................................................................................... 9
3.
Sơ đồ phân rã chức năng .............................................................................................. 9
CHƯƠNG 2: CÁC CHỨC NĂNG CHÍNH CỦA HỆ THỐNG ......................................... 10
CHƯƠNG 3: GIAO DIỆN CÁC CHỨC NĂNG ................................................................. 11
1.
Giao diện đăng nhập.................................................................................................... 11
2.
Giao diện chương trình chính..................................................................................... 11
3.
Giao diện Quản lý thơng tin khoa(ngành) ................................................................. 12
4.
Giao diện Form thơng tin các khóa học..................................................................... 13
5.
Giao diện Form thông tin các lớp............................................................................... 13
6.
Giao diên Form quản lý các đợt thi ........................................................................... 14
7.
Giao diện Form thêm mới/ cập nhât đợt thi ............................................................. 15
8.
Giao diện form tạo lich thi .......................................................................................... 16
9.
Giao diện form quản lú thông tin sinh viên............................................................... 17
10.
Giao diện thêm mới/ sửa thông tin sinh viên ......................................................... 17
11.
Giao diện Form thông tin cán bộ ............................................................................ 18
12.
Giao diện Form thêm/ sửa thông tin cán bộ .......................................................... 19
13.
Giao diên Form thơng tin Phịng thi ......................................................................19
14.
Giao diện Form thêm/ sửa thơng tin Phịng thi..................................................... 20
3
15.
Giao diện Form Xếp phòng thi cho sinh viên ........................................................ 21
16.
Giao diện Form đánh số báo danh ......................................................................... 22
17.
Giao diện Form quản lý điểm thi của sinh viên .................................................... 22
18.
Giao diện Form thông báo ......................................................................................24
CHƯƠNG 4: MÃ NGUỒN CỦA CÁC CHỨC NĂNG ....................................................... 24
1.
FrmNotification.cs (mã nguồn quản lý thông báo)................................................... 24
2.
BaseDAO.cs (kết nối csdl) ........................................................................................... 27
3.
frmLoginUser.cs (chức năng quản lý giao diện login) ............................................. 27
4.
LoginUser.cs (xử lý logic chức năng login)................................................................ 30
5.
Main.cs (quản lý giao diện mành hình chính) ........................................................... 30
6.
UcKhoa.cs (usercontrol xử lý thao tác các chức năng) ............................................ 33
7.
KhoaDAO.cs (xử lý logic quản lý khoa) .................................................................... 37
8.
UcKhoaHoc.cs (xử lý thao tác các chức năng) .......................................................... 40
9.
KhoaHocDAO.cs (xử lý logic quản lý khóa học) ......................................................44
10.
UcLop.cs (xử lý thao tác chức năng trên giao diện).............................................. 46
11.
LopDAO.cs (xử lý logic quản lý lớp) ...................................................................... 50
12.
UcDotThi.cs (xử lý thao tác chức năng trên giao diện quản lý đợt thi) .............. 52
13.
FrmAddEditDotThi.cs (xử lý thao tác các chức năng thêm/ sửa đợt thi)........... 55
14.
DotThiDAO.cs (xử lý logic quản lý đợt thi)........................................................... 57
15.
UcLichThi.cs (xử lý thao tác trên các chức năng quản lý lịch thi) ...................... 60
16.
LichThiDao.cs ( xử lý logic quản lý lịch thi).......................................................... 63
17.
UcThiSinh.cs (xử lý thao tác các chức năng quản lý sinh viên) ........................... 66
18.
FrmThiSinhAddEdit.cs (xử lý thao tác các chức năng thêm/ sửa sinh vên) ...... 69
20.
UcCanBo.cs (xử lý thao tác các chức năng quản lý cán bộ) ................................. 73
21.
FrmEditCanBo.cs (xử lý thao tác thêm/ xóa cán bộ)............................................ 76
22.
CanBoDAO.cs (xử lý logic quản lý cán bộ) ...........................................................79
23.
UcPhongThi.cs (xử lý thao tác các chức năng quản lý phòng thi) ...................... 81
24.
FrmEditPhongThi.cs (xử lý thao tác các chức năng thêm mới/ sửa phòng thi). 84
25.
PhongThiDAO.cs (xử lý logic quan lý phòng thi) ................................................. 86
26.
UcDanhSoBaoDanh.cs (xử lý thao tác các chức năng quản lý số báo danh) ...... 88
27.
UcXepPhongThi.cs (xử lý thao tác các chức năng xếp phòng thi) ......................91
28.
XepPhongDAO.cs (xử lý logic chức năng xếp phòng thi) ....................................94
29.
UcQuanLyDiem.cs (xử lý thao tác các chức năng quản lý điểm sinh viên) ........ 96
30.
KetQuaDAO.cs (xử lý logic quản lý điểm) ..........................................................108
4
CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU
1. Mơ hình quan hê.
2. Các bảng dữ liệu
2.1. Bảng 1: Admin (idAdmin, tenDangNhap, matKhau, hoTen)
STT
Thuộc tính
Kiểu dữ liệu
1
idAmin
Varchar(10)
2
tenDangNhap
Varchar(10)
Tên đăng nhập
3
matKhau
Varchar(10)
Mạt khẩu đăng nhập
4
hoTen
Nvarchar(50)
Họ và tê nad min
2.2.
Khoa
Khóa
chính
ngoại
X
Diễn dải
Mã quản trị
Bảng 2: Khoa (ngành) (maKhoa, tenKhoa, namThanhLap)
5
STT
Thuộc tính
Kiểu dữ liệu
Khóa Khóa
Diễn giải
chinh ngoại
1
maKhoa
Varchar(10)
2
tenKhoa
Varchar(10)
3
namThanhLap
Int
X
Mã quản trị khoa
Tên khoa
Năm thành lập
2.3. Bảng 3: Khóa học (maKhoaHoc, tenKhoaHoc, namBatDau, namKetThuc)
STT
Thuộc tính
Kiểu dữ liệu
Khóa Khóa
Diễn giải
chính ngoại
X
Mã quản trị khóa học
1
maKhoaHoc
Varchar(10)
2
tenKhoaHoc
Varchar(10)
Tên khóa học
3
namBatDau
Int
Năm bắt đầu của
khóa học
4
namKetThuc
Int
Năm kết thúc của
khóa học
2.4. Bảng 4: Chức vụ (maChucVu, tenChucVu)
2.5. Bảng 5: Đợt thi (maDotThi, tenDotThi,ngayBatDau, ngayKetThuc)
STT
Thuộc tính
Kiểu dữ liệu
Khóa Khóa
Diễn giải
chính ngoại
1
maDotThi
Varchar(10)
X
2
tenDotThi
nVarchar(100)
Tiêu đề / tên đợt thi
3
ngayBatDau
Datetime
Ngày bắt đầu của đợt
Mã quản trị đợt thi
thi
4
ngayKetThuc
Datetime
Ngày kết thúc của đợt
thi
2.6. Bảng 6: Buổi thi (maBuoiThi, tenBuoiThi)
6
STT Thuộc tính
Kiểu dữ liệu
Khóa Khóa
Diễn giải
chính ngoại
1
maBuoiThi
Varchar(5)
2
tenBuoiThi
nVarchar(10)
Mã quản trị buổi thi
X
Tên buổi thi
2.7. Bang 7: Ca thi (maCaThi, tenCaThi)
STT Thuộc tính
Kiểu dữ liệu
1
maCaThi
Varchar(5)
2
tenCaThi
nVarchar(5)
Khóa
Khóa
chính
ngoại
Diễn giải
Mã quản trị ca thi
X
Tên ca thi
2.8. Bảng 8: Phòng thi (maPhongThi, tenPhongThi, soCho, trangThai)
STT Thuộc tính
Kiểu dữ liệu
1
Varchar(10)
maPhongThi
Khóa
Khóa
chính
ngoại
X
Diễn giải
Mã quản trị phịng
thi
2
tenPhongThi
nVarchar(20)
Tên phịng thi
3
soCho
Int
Sỗ chỗ ngồi của 1
phịng
4
trangThai
Int
Trạng thái có lịch thi
hay chưa
2.9. Bảng 9: Lịch thi (maLichThi, ngayThi, maDotThi, maBuoiThi, maCaThi,
maPhongThi, tietBatDau, soTiet)
STT
Thuộc tính
Kiểu dữ liệu
1
maLichThi
Varchar(10)
2
ngayThi
Datetime
3
maDotThi
Varchar(10)
Khóa
Khóa Diễn giải
chính
ngoại
Mã quản trị lịch thi
X
Ngày thi
7
X
Mã đợt thi
4
maBuoiThi
Varchar(5)
X
Mã buổi thi
5
maCaThi
Varchar(5)
X
Mã ca thi
6
maPhongThi
Varchar(10)
X
Mã phòng thi
7
tietBatDau
Int
Tiết bắt đầu làm bài
8
soTiet
Int
Số tiết làm bài
Bảng 10: Cán bộ (maCanBo, hoTen, ngaySinh, gioiTinh, phone,
2.10.
maKhoa, maChucVu)
STT
Thuộc tính
Kiểu dữ liệu
Khóa
Khóa Diễn giải
chính
ngoại
Mã quản trị cán bộ
1
maCanBo
Varchar(10)
X
2
hoTen
nVarchar(200
3
ngaySinh
Date
Khơng rỗng
4
gioiTinh
Int
Khơng rỗng
5
Phone
Varchar(11)
Có thể rỗng
6
maKhoa
Varchar(10)
Họ tên các bộ
)
X
Khóa ngoại( khơng
rỗng)
7
maChucVu
Varchar(10)
X
Khóa ngoại (khơng
rỗng)
2.11.
STT
Bảng 11: Lớp (tenLop, maKhoa, maKhoaHoc)
Thuộc tính
Kiểu dữ liệu
Khóa
Khóa Diễn giải
chính
ngoại
Tên lớp
1
tenLop
Varchar(50)
2
maKhoa
Varchar(50)
X
Mã khoa (ngành)
3
maKhoaHoc
Varchar(50)
X
Mã khóa học
8
X
2.12.
Bảng 12: Sinh Viên (maSinhVien, soBaoDanh, hoTen, ngaySinh,
gioiTInh, phone, tenLop, maLichThi, maKetQua)
STT
Thuộc tính
Kiểu dữ liệu
1
maSinhVien
Varchar(10)
2
soBaoDanh
Varchar(10)
Khóa
Khóa Diễn giải
chính
ngoại
Mã quản trị sinh viên
X
Số báo danh của sinh
viên
3
hoTen
Nvarchar(200)
Họ và tên
4
ngaySinh
Datetime
Ngày sinh
5
gioiTinh
Int
Giới tính
6
Phone
varchar(11)
Số điện thoại
7
tenLop
nvarchar(50)
X
Tên lớp học
8
maLichThi
varchar(10)
X
Mã lịch thi
9
maKetQua
varchar(10)
X
Mã kết quả
2.13.
Bảng 13: Kết Quả
STT
Thuộc tính
Kiểu dữ liệu
1
maKetQua
varchar(10)
Khóa
Khóa Diễn giải
chính
ngoại
Mã quản trị kết quả
X
thi
maSinhVien
Varchar(10)
3
diemThiNghe
Float
Điểm thi nghe
4
diemThiViet
Float
Điểm thi viết
5
diemThiNoi
Float
Điểm thi nói
6
diemDauRa
Float
Điểm tổng kết đầu ra
7
maDotThi
Varchar(10)
3. Sơ đồ phân rã chức năng
9
X
Mã quản trị sinh viên
2
X
Mã quản trị đợt thi
CHƯƠNG 2: CÁC CHỨC NĂNG CHÍNH CỦA HỆ THỐNG
Quản lý đợt thi
o Thêm/ sửa/ xóa kì thi
Quản lý khoa (ngành)
o Thêm/ sửa/ xóa khoa
Quản lý khóa học
o Thêm/ sửa/ xóa khóa học
Quản lý cán bộ coi thi
o Thêm/ sửa/ xóa cán bộ coi thi
Quản lý thơng tin sinh viên
o Thêm/ sửa/ xóa sinh viên
Quản lý thơng tin các phịng thi
o Thêm/ sửa/ xóa phịng thi
Tổ chức thi tại các phòng máy
o Xếp lịch thi
o Đánh số báo danh
o Xếp phòng thi
Quản lý kết quả thi
o Nhập/ xóa điểm thi
Quản lý các danh muc (lớp, khoa, khóa hoc)
10
o Thêm/ sửa/ xóa thơng tin danh mục.
CHƯƠNG 3: GIAO DIỆN CÁC CHỨC NĂNG
1. Giao diện đăng nhập
Chức năng này hco phém người dùng đăng nhập vào hệ thống với tên và mật
khẩu
+ Hệ thống hiển thị form đăng nhập yêu cầu nhập “Username” và “Password”.
+ Hệ thống kiểm tra thông tin đầu vào và cho phép đăng nhập vào hệ thống.
2. Giao diện chương trình chính
11
3. Giao diện Quản lý thông tin khoa(ngành)
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin
Khoa(ngành).
Tại đây, có thể xe, thơng tin chi tiết về các khoa
Các chức năng chính:
o Thêm mới: thêm mới 1 khoa.
12
o Sửa: sửa thơng tin 1 khoa.
o Xóa: xóa thơng tin khoa trên danh sách. Khoa có ràng buộc liên quan thì
ko thể xóa.
o Hủy thao tác: trở lại trạng thái bạn đầu của giao diện.
4. Giao diện Form thông tin các khóa học
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Khóa học.
Tại đây, có thể xe, thơng tin chi tiết về các Khóa học.
Các chức năng chính:
o Thêm mới: thêm mới 1 khóa học.
o Sửa: sửa thơng tin 1 khóa học.
o Xóa: xóa thơng tin khóa học trên danh sách. Khóa học có ràng buộc liên
quan thì ko thể xóa.
o Hủy thao tác: trở lại trạng thái bạn đầu của giao diện.
5. Giao diện Form thông tin các lớp
13
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Lớp. Tại
đây, có thể xe, thông tin chi tiết về các Lớp.
Các chức năng chính:
o Thêm mới: thêm mới 1 lớp.
o Sửa: sửa thơng tin 1 lớp.
o Xóa: xóa thơng tin lớp trên danh sách. Lớp có ràng buộc liên quan thì ko
thể xóa.
o Hủy thao tác: trở lại trạng thái bạn đầu của giao diện.
6. Giao diên Form quản lý các đợt thi
14
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Đợt thi.
Tại đây, có thể xe, thông tin chi tiết về các Đợt thi.
Các chức năng chính:
o Thêm mới: gọi tới form thêm/ sửa thông tin.
o Sửa: gọi tới form thêm/ sửa thông tin.
o Xóa: xóa thơng tin đợt thi trên danh sách. Xóa tất cả các ràng buộc có
liên quan. Ví dụ: đơt thi 1 có lich thi 1 thì khi xóa đợt thi thì xóa tất cả
các lịch thi.
7. Giao diện Form thêm mới/ cập nhât đợt thi
15
Khi gọi form thêm mới đợt thi lên.
Cho phép thêm mới 1 đơt thi, với các trường không được trống.
Khi gọi form sửa thông tin đợt thi. Hiện thị thông tin đợt thi cần sửa
8. Giao diện form tạo lich thi
Tại đây người dùng tạo lịch thi tự động cho 1 đợt thi
Chức năng:
o Tạo: tạo tự đônh lần lượt các đợt thi ứng với 1 đợt thi, 2 buổi sáng chiều,
4 ca thi trong ngày và số phòng thi tương ứng.
16
o Xóa: xóa hết tất cả lịch thi có trong đợt thi đã chọn, nếu có ràng buộc thì
xóa hết ràng buộc.
9. Giao diện form quản lú thông tin sinh viên
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Sinh viên.
Tại đây, có thể xe, thông tin chi tiết về các Sinh viên.
Các chức năng chính:
o Thêm mới: gọi tới form thêm/ sửa thông tin.
o Sửa: gọi tới form thêm/ sửa thông tin.
o Xóa: xóa thơng tin Sinh viên trên danh sách. Xóa tất cả các ràng buộc có
liên quan.
10. Giao diện thêm mới/ sửa thông tin sinh viên
17
Tại đây người dùng tạo lịch thi tự động cho 1 sinh viên
Chức năng:
o Tạo: thêm mới 1 sinh viên với đầu đủ thơng tin đã điền
o Xóa: xóa sinh viện được chon ở Form thơng tin sinh viên
11. Giao diện Form thông tin cán bộ
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Cán bộ.
Tại đây, có thể xe, thơng tin chi tiết về các Cán bộ.
Các chức năng chính:
18
o Thêm mới: gọi tới form thêm/ sửa thông tin.
o Sửa: gọi tới form thêm/ sửa thơng tin.
o Xóa: xóa thơng tin Cán bộ trên danh sách. Nếu có ràng bc liên quan
thì ko thể xóa.
12. Giao diện Form thêm/ sửa thông tin cán bộ
Tại đây người dùng tạo lịch thi tự động cho 1 cán bộ
Chức năng:
o Tạo: thêm mới 1 cán bộ với đầu đủ thông tin đã điền
o Xóa: xóa sinh viện được chon ở Form thông tin cán bộ
13. Giao diên Form thông tin Phòng thi
19
Ở giao diện này cho phép người dùng có thể thêm/ sửa/ xóa thơng tin Phịng thi.
Tại đây, có thể xe, thơng tin chi tiết về các Phịng thi.
Các chức năng chính:
o Thêm mới: gọi tới form thêm/ sửa thông tin.
o Sửa: gọi tới form thêm/ sửa thông tin.
o Xóa: xóa thơng tin Phịng thi trên danh sách. Nếu có ràng bc liên quan
thì ko thể xóa.
14. Giao diện Form thêm/ sửa thơng tin Phịng thi
Tại đây người dùng tạo lịch thi tự động cho 1 phòng
Chức năng:
20
o Tạo: thêm mới 1 phịng với đầu đủ thơng tin đã điền
o Xóa: xóa sinh viện được chon ở Form thơng tin phịng
15. Giao diện Form Xếp phịng thi cho sinh viên
Ở đây ta phải chọn đợt thi hiển thị lịch thi đã tạo hoặc tạo mới lịch thi với mỗi
phịng thi có 30 sinh viên
o Sau khi chọn lịch thi/ xếp phịng ta có giao diên:
Chức năng:
21
o Tạo: thực hiện tự động thêm sinh viên vào lịch thi đã tạo ở form tạo lịch
thi
o Xóa: xóa sinh viên ra khỏi lịch thi
16. Giao diện Form đánh số báo danh
Ở giao diện này, cho phép đánh số báo danh tư động cho sinh viên trong 1 đợt
thi nhất định
Chức năng:
o Thực hiện: đánh số báo danh tự động cho sinh viên.
o Xóa SBD: xóa số báo danh của sinh viên
17. Giao diện Form quản lý điểm thi của sinh viên
22
Tại đây hệ thống yêu cầu chọn đợt thi để hiển thị điểm của sinh viên
Sau khi chọn đợt thi có giao diện:
Giao diện này cho phép người dùng có thể cập nhật thêm, sửa, xóa thơng tin
Điểm.
Các chức năng trên giao diện:
• Thêm mới: hệ thống cho phép người dùng thêm mới kết quả thi của sinh viên
23
với điểm tb hay điểm đầu ra của sinh viên sẽ tự động tính với điểm thi đầu vào
• Sửa: sửa tất cả các mục trên form.
• Lưu: lưu thay đổi sau khi thao tác nút thêm và sửa.
• Xóa: xóa thơng tin điểm trong danh sách.
18. Giao diện Form thông báo
Form này thông báo cho ta biết thực hiện chức năng thành cơng/ lỗi chương
trình
CHƯƠNG 4: MÃ NGUỒN CỦA CÁC CHỨC NĂNG
1. FrmNotification.cs (mã nguồn quản lý thông báo)
using BTL_DotNet1_QuanLyCongTacThiChuanDauRaNgoaiNgu.Properties;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace BTL_DotNet1_QuanLyCongTacThiChuanDauRaNgoaiNgu.Notification
{
public partial class FrmNotification : Form
{
public FrmNotification()
{
InitializeComponent();
}
public enum enmAction
{
wait,
start,
close
24
}
public enum enmType
{
Success,
Warning,
Error,
Info
}
private FrmNotification.enmAction action;
private int x, y;
private void timerCloseFrm_Tick( object sender, EventArgs e)
{
switch (this.action)
{
case enmAction.wait:
timerCloseFrm.Interval = 5000;
action = enmAction.close;
break;
case FrmNotification.enmAction.start:
this.timerCloseFrm.Interval = 1;
this.Opacity += 0.1;
if(this.x < this.Location.X)
{
this.Left--;
}
else
{
if(this.Opacity == 1.0)
{
action = FrmNotification.enmAction.wait;
}
}
break;
case enmAction.close:
timerCloseFrm.Interval = 1;
this.Opacity -= 0.1;
this.Left -= 3;
if(base.Opacity == 0.0)
{
base.Close();
25
}
break;
}
}
private void picClose_Click(object sender, EventArgs e)
{
timerCloseFrm.Interval = 1;
action = enmAction.close;
}
public void ShowNoti( string msg, enmType type)
{
this.Opacity = 0.0;
this.StartPosition = FormStartPosition.Manual;
string fname;
for(int i = 1; i < 10; i++)
{
fname = "";
FrmNotification frm =
(FrmNotification)Application.OpenForms[fname];
if(frm == null)
{
this.Name = fname;
this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width +
15;
this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height
* i - 5 * i;
this.Location = new Point(this.x, this.y);
break;
}
}
this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;
switch (type)
{
case enmType.Success:
this.picAvatar.Image = Resources.success;
this.BackColor = Color.SeaGreen;
break;
case enmType.Error:
this.picAvatar.Image = Resources.error;
this.BackColor = Color.DarkRed;
break;
26