0

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

109 5 0
  • 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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 15/06/2022, 05:12

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 MỤC LỤC CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU Mơ hình quan Các bảng liệu 2.1 Bảng 1: Admin 2.2 Bảng 2: Khoa (ngành) 2.3 Bảng 3: Khóa học 2.4 Bảng 4: Chức vụ 2.5 Bảng 5: Đợt thi 2.6 Bảng 6: Buổi thi 2.7 Bang 7: Ca thi 2.8 Bảng 8: Phòng thi 2.9 Bảng 9: Lịch thi 2.10 Bảng 10: Cán 2.11 Bảng 11: Lớp 2.12 Bảng 12: Sinh Viên 2.13 Bảng 13: Kết Quả Sơ đồ phân rã chức 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 Giao diện đăng nhập 11 Giao diện chương trình 11 Giao diện Quản lý thông tin khoa(ngành) 12 Giao diện Form thơng tin khóa học 13 Giao diện Form thông tin lớp 13 Giao diên Form quản lý đợt thi 14 Giao diện Form thêm mới/ cập nhât đợt thi 15 Giao diện form tạo lich thi 16 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 18 12 Giao diện Form thêm/ sửa thông tin cán 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 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 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 FrmNotification.cs (mã nguồn quản lý thông báo) 24 BaseDAO.cs (kết nối csdl) 27 frmLoginUser.cs (chức quản lý giao diện login) 27 LoginUser.cs (xử lý logic chức login) 30 Main.cs (quản lý giao diện mành hình chính) 30 UcKhoa.cs (usercontrol xử lý thao tác chức năng) 33 KhoaDAO.cs (xử lý logic quản lý khoa) 37 UcKhoaHoc.cs (xử lý thao tác chức năng) 40 KhoaHocDAO.cs (xử lý logic quản lý khóa học) 44 10 UcLop.cs (xử lý thao tác chức 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 giao diện quản lý đợt thi) 52 13 FrmAddEditDotThi.cs (xử lý thao tác chức 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 chức 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 chức quản lý sinh viên) 66 18 FrmThiSinhAddEdit.cs (xử lý thao tác chức thêm/ sửa sinh vên) 69 20 UcCanBo.cs (xử lý thao tác chức 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 chức quản lý phòng thi) 81 24 FrmEditPhongThi.cs (xử lý thao tác chức 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 chức quản lý số báo danh) 88 27 UcXepPhongThi.cs (xử lý thao tác chức xếp phòng thi) 91 28 XepPhongDAO.cs (xử lý logic chức xếp phòng thi) 94 29 UcQuanLyDiem.cs (xử lý thao tác chức quản lý điểm sinh viên) 96 30 KetQuaDAO.cs (xử lý logic quản lý điểm) 108 CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU Mơ hình quan Các bảng liệu 2.1 Bảng 1: Admin (idAdmin, tenDangNhap, matKhau, hoTen) STT Thuộc tính Kiểu liệu idAmin Varchar(10) tenDangNhap Varchar(10) Tên đăng nhập matKhau Varchar(10) Mạt đăng nhập hoTen Nvarchar(50) Họ tê nad 2.2 Khoa Khóa ngoại X Diễn dải Mã quản trị Bảng 2: Khoa (ngành) (maKhoa, tenKhoa, namThanhLap) STT Thuộc tính Kiểu liệu Khóa Khóa Diễn giải chinh ngoại maKhoa Varchar(10) tenKhoa Varchar(10) 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 liệu Khóa Khóa Diễn giải ngoại X Mã quản trị khóa học maKhoaHoc Varchar(10) tenKhoaHoc Varchar(10) Tên khóa học namBatDau Int Năm bắt đầu khóa học namKetThuc Int Năm kết thúc 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 liệu Khóa Khóa Diễn giải ngoại maDotThi Varchar(10) X tenDotThi nVarchar(100) Tiêu đề / tên đợt thi ngayBatDau Datetime Ngày bắt đầu đợt Mã quản trị đợt thi thi ngayKetThuc Datetime Ngày kết thúc đợt thi 2.6 Bảng 6: Buổi thi (maBuoiThi, tenBuoiThi) STT Thuộc tính Kiểu liệu Khóa Khóa Diễn giải ngoại maBuoiThi Varchar(5) 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 liệu maCaThi Varchar(5) tenCaThi nVarchar(5) Khóa Khóa 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 liệu Varchar(10) maPhongThi Khóa Khóa ngoại X Diễn giải Mã quản trị phòng thi tenPhongThi nVarchar(20) Tên phòng thi soCho Int Sỗ chỗ ngồi phòng 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 liệu maLichThi Varchar(10) ngayThi Datetime maDotThi Varchar(10) Khóa Khóa Diễn giải ngoại Mã quản trị lịch thi X Ngày thi X Mã đợt thi maBuoiThi Varchar(5) X Mã buổi thi maCaThi Varchar(5) X Mã ca thi maPhongThi Varchar(10) X Mã phòng thi tietBatDau Int Tiết bắt đầu làm soTiet Int Số tiết làm Bảng 10: Cán (maCanBo, hoTen, ngaySinh, gioiTinh, phone, 2.10 maKhoa, maChucVu) STT Thuộc tính Kiểu liệu Khóa Khóa Diễn giải ngoại Mã quản trị cán maCanBo Varchar(10) X hoTen nVarchar(200 ngaySinh Date Không rỗng gioiTinh Int Không rỗng Phone Varchar(11) Có thể rỗng maKhoa Varchar(10) Họ tên ) X Khóa ngoại( khơng rỗng) 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 liệu Khóa Khóa Diễn giải ngoại Tên lớp tenLop Varchar(50) maKhoa Varchar(50) X Mã khoa (ngành) maKhoaHoc Varchar(50) X Mã khóa học 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 liệu maSinhVien Varchar(10) soBaoDanh Varchar(10) Khóa Khóa Diễn giải ngoại Mã quản trị sinh viên X Số báo danh sinh viên hoTen Nvarchar(200) Họ tên ngaySinh Datetime Ngày sinh gioiTinh Int Giới tính Phone varchar(11) Số điện thoại tenLop nvarchar(50) X Tên lớp học maLichThi varchar(10) X Mã lịch thi maKetQua varchar(10) X Mã kết 2.13 Bảng 13: Kết Quả STT Thuộc tính Kiểu liệu maKetQua varchar(10) Khóa Khóa Diễn giải ngoại Mã quản trị kết X thi maSinhVien Varchar(10) diemThiNghe Float Điểm thi nghe diemThiViet Float Điểm thi viết diemThiNoi Float Điểm thi nói diemDauRa Float Điểm tổng kết đầu maDotThi Varchar(10) Sơ đồ phân rã chức X Mã quản trị sinh viên 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 coi thi o Thêm/ sửa/ xóa cán 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 phịng thi o Thêm/ sửa/ xóa phịng thi  Tổ chức thi 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 thi o Nhập/ xóa điểm thi  Quản lý 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 Giao diện đăng nhập Chức hco phém người dùng đăng nhập vào hệ thống với tên mật + Hệ thống hiển thị form đăng nhập yêu cầu nhập “Username” “Password” + Hệ thống kiểm tra thông tin đầu vào cho phép đăng nhập vào hệ thống Giao diện chương trình 11 if(lichThis_.Where(x => x.maDotThi == idDotThi).FirstOrDefault() != null) { SinhVien sv1 = db_.SinhViens.Where(x => x.maSinhVien == sv.maSinhVien && x.LichThi.maDotThi==idDotThi).FirstOrDefault(); if(sv1 != null ) { sv1.maLichThi = null; db_.SaveChanges(); } } } } } catch(Exception ex) { return false; } return true; } } } 29 UcQuanLyDiem.cs (xử lý thao tác chức quản lý điểm sinh viên) using BTL_DotNet1_QuanLyCongTacThiChuanDauRaNgoaiNgu.EF; 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.UC.TongKet { 96 public partial class UcQuanLyDiem : UserControl { public UcQuanLyDiem() { InitializeComponent(); dgvDanhSachDiem.AutoGenerateColumns = false; dgvDanhSachDiem.RowHeadersVisible = true; dgvDanhSachDiem.RowHeadersWidth = 22; clMaDiem.DataPropertyName = "maDiem"; clMsv.DataPropertyName = "msv"; clDiemNghe.DataPropertyName = "dNghe"; clDiemNoi.DataPropertyName = "dNoi"; clDiemViet.DataPropertyName = "dViet"; ClDiemTb.DataPropertyName = "dTb"; } private void FillDataGridView(string id) { DAO.TongKet.KetQuaDao dao = new DAO.TongKet.KetQuaDao(); dgvDanhSachDiem.DataSource = dao.GetByIdDotThi(id).Select(x => new { maDiem = x.maKetQua, msv = x.maSinhVien, dNghe = x.diemThiNghe, dNoi = x.diemThiNoi, dViet = x.diemThiViet, dTb = x.diemDauRa, }).ToList(); } 97 private void FillComboBox() { cbDotThi.Items.Clear(); cbDotThi.DataSource = null; DAO.KhoiTao.DotThiDao dao = new DAO.KhoiTao.DotThiDao(); foreach(DotThi i in dao.GetAll()) { cbDotThi.Items.Add(i.tenDotThi); } } private void ActiveBtn() { //btnSua.Enabled = true; txtId.Enabled = true; btnXoa.Enabled = false; btnHuyThaoTac.Enabled = true; } private void InactiveBtn() { //btnSua.Enabled = false; btnXoa.Enabled = true; btnHuyThaoTac.Enabled = true; txtId.Enabled = false; } private void ClearInput() 98 { txtId.Clear(); txtMSSV.Clear(); txtDiemViet.Clear(); txtDiemNoi.Clear(); txtDiemNghe.Clear(); txtDiemTB.Clear(); } private void UcQuanLyDiem_Load(object sender, EventArgs e) { FillComboBox(); btnSua.Text = "Nh ập điểm"; txtDiemTB.Enabled = false; btnSua.Enabled = true; btnXoa.Enabled = true; btnHuyThaoTac.Enabled = true; } private void cbDotThi_SelectedIndexChanged(object sender, EventArgs e) { DAO.KhoiTao.DotThiDao dao = new DAO.KhoiTao.DotThiDao(); string idDt = cbDotThi.SelectedItem.ToString(); var dt = dao.GetSigleByName(idDt); FillDataGridView(dt.maDotThi); } private void dgvDanhSachDiem_CellClick(object sender, DataGridViewCellEventArgs e) { 99 DAO.TongKet.KetQuaDao dao = new DAO.TongKet.KetQuaDao(); string id = dgvDanhSachDiem.CurrentRow.Cells["clMaDiem"].Value.ToString(); var a = dao.GetSingleByID(id); txtId.Text = a.maKetQua; txtMSSV.Text = a.maSinhVien; txtDiemNghe.Text = a.diemThiNghe.ToString(); txtDiemNoi.Text = a.diemThiNoi.ToString(); txtDiemViet.Text = a.diemThiViet.ToString(); txtDiemTB.Text = a.diemDauRa.ToString(); InactiveBtn(); btnSua.Text = "Sửa Điểm"; txtMSSV.Enabled = false; } private void Noti(string msg, Notification.FrmNotification.enmType type) { Notification.FrmNotification frm = new Notification.FrmNotification(); frm.ShowNoti(msg, type); } private KetQua GetInfo(KetQua kq) { kq.maKetQua = txtId.Text.Trim(); kq.maSinhVien = txtMSSV.Text.Trim(); DAO.KhoiTao.DotThiDao dao = new DAO.KhoiTao.DotThiDao(); kq.maDotThi = dao.GetSigleByName(cbDotThi.SelectedItem.ToString()).maDotThi; kq.diemThiNghe = float.Parse(txtDiemNghe.Text); kq.diemThiNoi = float.Parse(txtDiemNoi.Text); kq.diemThiViet = float.Parse(txtDiemViet.Text); kq.diemDauRa = float.Parse(txtDiemTB.Text); 100 return kq; } private float TinhDiemTb(string noi, string nghe, string viet) { float dTb = 0, dNoi = 0, dNghe = 0, dViet = 0; if(noi!="" && nghe != ""&& viet != "") { dNoi = float.Parse(noi); dNghe = float.Parse(nghe); dViet = float.Parse(viet); } if(noi == "" || nghe == "" || viet == "") { if(noi == "") { dNoi = 0; dNghe = float.Parse(nghe); dViet = float.Parse(viet); } else if (nghe == "") { dNoi = float.Parse(noi); dNghe = 0; dViet = float.Parse(viet); } else if (viet == "") { dNoi = float.Parse(noi); 101 dNghe = float.Parse(nghe); dViet = 0; } } dTb = (float)Math.Round(((dNghe + dNoi + dViet) / 3),2); return dTb; } private void btnSua_Click(object sender, EventArgs e) { if (btnSua.Text.Contains("Nh ập")) { DAO.TongKet.KetQuaDao dao = new DAO.TongKet.KetQuaDao(); KetQua newKetQua = new KetQua(); if (GetInfo(newKetQua).maKetQua == "" || GetInfo(newKetQua).maSinhVien == "" || GetInfo(newKetQua).maDotThi == "" || GetInfo(newKetQua).diemDauRa.ToString()== "" || GetInfo(newKetQua).diemThiNghe.ToString() == "" || GetInfo(newKetQua).diemThiNoi.ToString() == "" || GetInfo(newKetQua).diemThiViet.ToString() =="") { MessageBox.Show("Vui lịng điền đủ thơng tin"); } else if (GetInfo(newKetQua).maKetQua != "" && GetInfo(newKetQua).maSinhVien != "" && GetInfo(newKetQua).maDotThi != "" && GetInfo(newKetQua).diemDauRa.ToString() != "" && GetInfo(newKetQua).diemThiNghe.ToString() != "" && GetInfo(newKetQua).diemThiNoi.ToString() != "" && GetInfo(newKetQua).diemThiViet.ToString() != "") { if (dao.Add(GetInfo(newKetQua))){ this.Noti("Nh ập điểm thành công!", Notification.FrmNotification.enmType.Success); 102 DAO.KhoiTao.DotThiDao dotThiDao = new DAO.KhoiTao.DotThiDao(); FillDataGridView(dotThiDao.GetSigleByName(cbDotThi.SelectedItem.ToString()).maDotThi); ActiveBtn(); ClearInput(); btnSua.Text = "Nhập Điểm"; } else { this.Noti("Nh ập điểm thất bại!", Notification.FrmNotification.enmType.Error); } } } else if (btnSua.Text.Contains("S ửa")) { DAO.TongKet.KetQuaDao dao = new DAO.TongKet.KetQuaDao(); KetQua editKetQua = new KetQua(); if (dao.Edit(GetInfo(editKetQua))) { this.Noti("Sửa điểm thành công!", Notification.FrmNotification.enmType.Success); DAO.KhoiTao.DotThiDao dotThiDao = new DAO.KhoiTao.DotThiDao(); FillDataGridView(dotThiDao.GetSigleByName(cbDotThi.SelectedItem.ToString()).maDotThi); ActiveBtn(); ClearInput(); btnSua.Text = "Nh ập Điểm"; txtMSSV.Enabled = true; } 103 else { this.Noti("Sửa điểm thất bại!", Notification.FrmNotification.enmType.Error); } } } private void btnXoa_Click(object sender, EventArgs e) { string makq = dgvDanhSachDiem.CurrentRow.Cells["clMaDiem"].Value.ToString(); DAO.TongKet.KetQuaDao dao = new DAO.TongKet.KetQuaDao(); if (dao.Remove(makq)) { this.Noti("Xóa điểm thành cơng!", Notification.FrmNotification.enmType.Success); DAO.KhoiTao.DotThiDao dotThiDao = new DAO.KhoiTao.DotThiDao(); FillDataGridView(dotThiDao.GetSigleByName(cbDotThi.SelectedItem.ToString()).maDotThi); ActiveBtn(); ClearInput(); btnSua.Text = "Nh ập Điểm"; txtMSSV.Enabled = true; } else { this.Noti("Xóa điểm thất bại!", Notification.FrmNotification.enmType.Error); } } 104 private void btnHuyThaoTac_Click(object sender, EventArgs e) { ActiveBtn(); ClearInput(); txtMSSV.Enabled = true; btnSua.Text = "Nh ập Điểm"; } private void txtDiemNghe_TextChanged(object sender, EventArgs e) { float diem=0; try { { foreach(char i in txtDiemNghe.Text) { if (!char.IsControl(i) && !char.IsDigit(i) && (i != '.') && (i != ' ')) { MessageBox.Show("nhập vào ko phỉa số"); txtDiemNghe.Clear(); txtDiemNghe.Focus(); } } diem = float.Parse(txtDiemNghe.Text); if ((0 > diem || diem > 10)) { 105 MessageBox.Show("Điểm nhập không Mờ i nhâp lại!", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Error); txtDiemNghe.Clear(); txtDiemNghe.Focus(); } txtDiemTB.Text = TinhDiemTb(txtDiemNoi.Text, txtDiemNghe.Text, txtDiemViet.Text).ToString(); } while (0 > diem || diem > 10); }catch(Exception ex) { } } private void txtDiemViet_TextChanged(object sender, EventArgs e) { float diem; try { { foreach (char i in txtDiemViet.Text) { if (!char.IsControl(i) && !char.IsDigit(i) && (i != '.') && (i != ' ')) { MessageBox.Show("nhập vào ko phỉa số"); txtDiemViet.Clear(); txtDiemViet.Focus(); } 106 } diem = float.Parse(txtDiemViet.Text); if (0 > diem || diem > 10) { MessageBox.Show("Điểm nhập không Mời nhâp lại!", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Error); txtDiemViet.Clear(); txtDiemViet.Focus(); } txtDiemTB.Text = TinhDiemTb(txtDiemNoi.Text, txtDiemNghe.Text, txtDiemViet.Text).ToString(); } while (0 > diem || diem > 10); } catch (Exception ex) { } } private void txtDiemNoi_TextChanged(object sender, EventArgs e) { float diem; try { { foreach (char i in txtDiemNoi.Text) { if (!char.IsControl(i) && !char.IsDigit(i) && (i != '.') && (i != ' ')) 107 { MessageBox.Show("nhập vào ko phỉa số"); txtDiemNoi.Clear(); txtDiemNoi.Focus(); } } diem = float.Parse(txtDiemNoi.Text); if (0 > diem || diem > 10) { MessageBox.Show("Điểm nhập không Mờ i nhâp lại!", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Error); txtDiemNoi.Clear(); txtDiemNoi.Focus(); } txtDiemTB.Text = TinhDiemTb(txtDiemNoi.Text, txtDiemNghe.Text, txtDiemViet.Text).ToString(); } while (0 > diem || diem > 10); } catch (Exception ex) { } } } } 30 KetQuaDAO.cs (xử lý logic quản lý điểm) using BTL_DotNet1_QuanLyCongTacThiChuanDauRaNgoaiNgu.EF; using System; using System.Collections.Generic; using System.Linq; using System.Text; 108 using System.Threading.Tasks; using System.Windows; namespace BTL_DotNet1_QuanLyCongTacThiChuanDauRaNgoaiNgu.DAO.TongKet { class KetQuaDao : BaseDao { public List GetAll() { return db_.KetQuas.ToList(); } public List GetByIdDotThi( string maDt) { return db_.KetQuas.Where(x => x.maDotThi.Contains(maDt)).ToList(); } public KetQua GetSingleByID(string id) { return db_.KetQuas.Where(x => x.maKetQua.Contains(id)).FirstOrDefault(); } public bool Add(KetQua kq) { try { db_.KetQuas.Add(kq); db_.SaveChanges(); }catch(Exception ex) { MessageBox.Show(string.Format("{0}{1}{2}", "Có lỗi xảy ra!", Environment.NewLine, ex.Message),"Thơng Báo",MessageBoxButton.OK, MessageBoxImage.Warning); return false; } return true; } public bool Edit(KetQua kq) { try { 109 KetQua findKetqua = db_.KetQuas.Where(x => x.maDotThi.Contains(kq.maDotThi) && x.maKetQua.Contains(kq.maKetQua)).FirstOrDefault(); findKetqua.diemThiNghe = kq.diemThiNghe; findKetqua.diemThiNoi = kq.diemThiNoi; findKetqua.diemThiViet = kq.diemThiViet; findKetqua.diemDauRa = kq.diemDauRa; db_.SaveChanges(); }catch(Exception ex) { MessageBox.Show(string.Format("{0}{1}{2}", "Có lỗi xảy ra!", Environment.NewLine, ex.Message), "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning); return false; } return true; } public bool Remove(string id) { try { KetQua kq = GetSingleByID(id); db_.KetQuas.Remove(kq); db_.SaveChanges(); } catch (Exception ex) { MessageBox.Show(string.Format("{0}{1}{2}", "Có lỗi xảy ra!", Environment.NewLine, ex.Message), "Thơng Báo", MessageBoxButton.OK, MessageBoxImage.Warning); return false; } return true; } } } 110 ... 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 chức quản lý lịch thi) 60 16 LichThiDao.cs ( xử lý logic quản lý lịch thi) ... lý thao tác chức 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 giao diện quản lý đợt thi) 52 13 FrmAddEditDotThi.cs (xử lý thao tác. .. (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 chức quản lý phòng thi) 81 24 FrmEditPhongThi.cs (xử lý thao tác
- Xem thêm -

Xem thêm: 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 ,