HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
BÁO CÁO BÀI TẬP LỚN
Mơn: Cơ sở lập trình 2
ĐỀ TÀI: Quản lý điểm sinh viên Đại học
Giảng viên hướng dẫn: Lê Cẩm Tú
Nhóm thực hiện: Nhóm 4 (Ca 2)
Lớp: 202IS11A 01
Hà Nội, ngày 29 tháng 6 năm 2021
MỤC LỤC
I. Bảng phân công công việc cụ thể :............................................................... 1
II.
Bảng và các yêu cầu của đề bài ................................................................ 2
1.
Bảng sinh viên ......................................................................................... 2
2.
Bảng Điểm, Dân tộc và Hệ đào tạo ....................................................... 3
3.
Bảng Thời khóa biểu, Q, Mơn học .................................................... 3
4.
Bảng Khoa và Lớp .................................................................................. 4
5.
Bảng Khoa – Chuyên ngành, Môn học, Chức vụ ................................ 5
III. Vẽ sơ đồ và phân tích các bảng : .............................................................. 6
IV. Giao diện của tất cả các form và code đại diện ....................................... 8
1.
Code đại diện form Điểm : ................................................................... 11
2.
Code đại diện Form sinh viên .............................................................. 19
3.
Code đại diện Form Lớp ...................................................................... 36
4.
Code đại diện Form Thời khóa biểu ................................................... 43
DANH SÁCH THÀNH VIÊN
Họ tên
Phần trăm đóng góp
1. Nguyễn Quang Huy – 22A4040156
22%
2. Hà Thị Nguyễn – 22A4040144
20%
3. Trần Thị Huệ - 22A4040152
19%
4. Trần Phương Thảo – 22A4040125
20%
5. Nguyễn Thị Hồng Phượng –
19%
22A4040092
I.
Bảng phân công công việc cụ thể :
Công việc cụ thể
Sinh viên
- Tạo các form, edit các form, viết các nút Thêm, Sửa,
1. Nguyễn Quang Huy
Xóa, Lưu, Đóng
- Làm các yêu cầu đối với form Sinhvien
2. Hà Thị Nguyễn
- Phụ trách tạo form in các danh sách sinh viên
- In thời khóa biểu
3. Trần Thị Huệ
- Code các yêu cầu đề bài trong form Diem
- Làm báo cáo
- Phụ trách nút tìm kiếm (Theo khoa, lớp, dân tộc)
4. Trần Phương Thảo
trong form sinh viên
- Tập hợp code hàm Function
5. Nguyễn Thị Hồng Phượng
- Code các yêu cầu đề bài đối với form Lop
- Làm báo cáo
1
II.
Bảng và các yêu cầu của đề bài
1. Bảng sinh viên
Bảng: tblsinhvien
Kiểu
Ràng buộc
masinhvien
nvarchar(10)
Not null
tensinhvien
nvarchar(50)
Not null
makhoa
nvarchar(10)
Not null – Foreign key
malop
nvarchar(10)
Not null – Foreign key
ngaysinh
datetime
Not null
gioitinh
nvarchar(10)
Not null
maque
nvarchar(10)
Not null – Foreign key
madantoc
nvarchar(10)
Not null – Foreign key
machuyennganh
nvarchar(10)
Not null – Foreign key
mahedaotao
nvarchar(10)
Not null – Foreign key
machucvu
nvarchar(10)
Not null – Foreign key
- Khi nhập thông tin sinh viên, Mã lớp chỉ hiển thị danh sách các lớp
tương ứng với khoa được chọn ở Mã khoa
- Khi nhập thông tin sinh viên, chọn mã lớp sẽ chỉ hiển thị danh sách các
SV ở lớp đó và khi cập nhật ds các SV thì trường Sĩ số trong bảng Lớp
được cập nhật theo.
- Tìm kiếm sinh viên theo: quê, chuyên ngành, khoa.
- Khi nhập thông tin sinh viên, mã chuyên ngành chỉ hiển thị danh sách
các chuyên ngành của mã khoa tương ứng
2
2. Bảng Điểm, Dân tộc và Hệ đào tạo
Bảng: tbldiem
Kiểu
Ràng buộc
masinhvien
nvarchar(10)
Not null – Foreign key
malop
nvarchar(10)
Not null – Foreign key
mamon
nvarchar(10)
Not null – Foreign key
hocki
int
Not null
lanthi
int
Not null
diem
float
Not null
Bảng: tbldantoc
Kiểu
Ràng buộc
madantoc
nvarchar(10)
Not null
tendantoc
nvarchar(50)
Not null
Bảng: tblhedaotao
Kiểu
Ràng buộc
mahedaotao
nvarchar(10)
Not null
tenhedaotao
nvarchar(50)
Not null
- Khi nhập điểm cho sinh viên, chọn mã lớp và học kỳ trước, khi đó mã
mơn chỉ hiện danh sách các mơn học theo thời khố biểu của lớp đó,
mơn đó. Sau khi chọn mơn học và lần thi sẽ hiển thị danh sách các sv
thoả mãn đk để nhập điểm
- In danh sách điểm của các sinh viên theo lớp học, môn học, lần thi
- In bảng điểm các môn học theo mã sinh viên
3. Bảng Thời khóa biểu, Q, Mơn học
3
Bảng: tblthoikhoabieu
Kiểu
Ràng buộc
malop
nvarchar(10)
Not null – Foreign key
mamon
nvarchar(10)
Not null – Foreign key
hocki
int
Not null
thuhoc
int
Not null
cahoc
int
Not null
maphong
nvarchar(10)
Bảng: tblque
Not null – Foreign key
Kiểu
Ràng buộc
maque
nvarchar(10)
Not null
tendantoc
nvarchar(50)
Not null
Kiểu
Ràng buộc
maphong
nvarchar(10)
Not null
tenphong
nvarchar(50)
Not null
Bảng: tblphonghoc
-
In thời khoá biểu cho mỗi lớp theo học kỳ
4. Bảng Khoa và Lớp
4
Bảng: tblkhoa
Kiểu
Ràng buộc
makhoa
nvarchar(10)
Not null
tenkhoa
nvarchar(50)
Not null
dienthoai
nvarchar(15)
Not null
diachi
nvarchar(50)
Not null
website
nvarchar(50)
Null
Bảng: tbllop
Kiểu
Ràng buộc
malop
nvarchar(10)
Not null
tenlop
nvarchar(50)
Not null
makhoa
nvarchar(10)
Not null – Foreign key
khoahoc
nvarchar(50)
Not null
int
Not null
siso
- Trường Sĩ số trong bảng Lớp ban đầu có giá trị = 0
5. Bảng Khoa – Chuyên ngành, Môn học, Chức vụ
Bảng:tblkhoa_chuyennganh
Kiểu
Ràng buộc
machuyennganh
nvarchar(10)
Not null
makhoa
nvarchar(10)
Not null – Foreign key
tenchuyennganh
nvarchar(50)
Not null
Kiểu
Ràng buộc
nvarchar(10)
Not null
Bảng: tblmonhoc
mamon
5
tenmon
nvarchar(10)
Not null
DVHT
nvarchar(10)
Null
Kiểu
Ràng buộc
machucvu
nvarchar(10)
Not null
tenchucvu
nvarchar(50)
Not null
Bảng: tblchucvu
III.
Vẽ sơ đồ và phân tích các bảng :
6
Phân tích các bảng:
- tblque(maque, tenque)
- tblchucvu(machucvu, tenchucvu)
- tblkhoa(makhoa, tenkhoa, dienthoai, diachi, website)
- tbllop(malop, tenlop, makhoa, khoahoc, siso)
- tblhedaotao(mahedaotao, tenhedaotao)
- tbldantoc(madantoc, tendantoc)
- tblkhoa_chuyennganh(machuyennganh, makhoa, tenchuyennganh)
- tblmonhoc(mamon, tenmon, DVHT)
- tblphonghoc(maphong, tenphong)
- tblthoikhoabieu(malop, mamon, hocki, thuhoc, cahoc, maphong)
7
- tblsinhvien(masinhvien, tensinhvien, makhoa, malop, ngaysinh, gioitinh,
maque, madantoc, machuyennganh, mahedaotao, machucvu, anh)
- tbldiem(masinhvien, malop, mamon, hocki, lanthi, diem)
IV.
Giao diện của tất cả các form và code đại diện
8
9
10
1. Code đại diện form Điểm :
private void frmDiem_Load(object sender, EventArgs e)
{
cboSinhvien.Enabled = false;
cboLop.Enabled = false;
cboMon.Enabled = false;
cboLanthi.Enabled = false;
QuanlydiemSVDaihoc.Connect();
btnLuu.Enabled = false;
btnBoqua.Enabled = false;
Load_DataGridView();
QuanlydiemSVDaihoc.FillCombo("SELECT masinhvien, tensinhvien
FROM tblsinhvien", cboSinhvien, "masinhvien", "tensinhvien");
cboSinhvien.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT malop, tenlop FROM
tbllop", cboLop, "malop", "tenlop");
cboLop.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT mamon, tenmon FROM
tblmonhoc", cboMon, "mamon", "tenmon");
cboMon.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT Distinct hocki FROM
tblthoikhoabieu", cboHocki, "hocki", "hocki");
cboHocki.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT Distinct lanthi FROM
tbldiem", cboLanthi, "lanthi", "lanthi");
cboLanthi.SelectedIndex = -1;
}
11
private void btnThem_Click(object sender, EventArgs e)
{
btnSua.Enabled = false;
btnXoa.Enabled = false;
btnBoqua.Enabled = true;
btnLuu.Enabled = true;
btnThem.Enabled = false;
ResetValues();
cboLop.Enabled = true;
cboLop.Focus();
txtDiem.Enabled = false;
cboMon.Enabled = false;
cboLanthi.Enabled = false;
cboSinhvien.Enabled = false;
}
private void btnDong_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bạn có muốn thốt khơng?", "Thơng báo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
private void btnBoqua_Click(object sender, EventArgs e)
{
ResetValues();
btnBoqua.Enabled = false;
12
btnThem.Enabled = true;
btnXoa.Enabled = true;
btnSua.Enabled = true;
btnLuu.Enabled = false;
cboSinhvien.Enabled = false;
cboLop.Enabled = false;
cboMon.Enabled = false;
}
private void btnLuu_Click(object sender, EventArgs e)
{
string sql;
if (cboSinhvien.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập mã sinh viên", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboSinhvien.Focus();
return;
}
if (cboLop.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập lớp", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboLop.Focus();
return;
}
if (cboMon.Text.Trim().Length == 0)
{
13
MessageBox.Show("Bạn phải nhập môn", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboMon.Focus();
return;
}
if (cboHocki.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải chọn học kì", "Thơng báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboHocki.Focus();
return;
}
if (cboLanthi.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập lần thi", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboLanthi.Focus();
return;
}
if (txtDiem.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập điểm", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtDiem.Focus();
return;
}
if(Convert.ToDouble(txtDiem.Text)>10 &&
Convert.ToDouble(txtDiem.Text) < 0)
14
{
MessageBox.Show("Nhập lại điểm", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtDiem.Focus();
return;
}
sql = "SELECT masinhvien, mamon FROM tbldiem WHERE
masinhvien = N'" + cboSinhvien.Text.Trim() + "'and mamon = N'" +
cboMon.Text.Trim() + "'";
if (QuanlydiemSVDaihoc.CheckKey(sql))
{
MessageBox.Show("Điểm này đã tồn tại, Vui lịng nhập lại", "Thơng
báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboSinhvien.Focus();
cboSinhvien.Text = "";
cboMon.Text = "";
cboLop.Text = "";
return;
}
sql = "INSERT INTO tbldiem(masinhvien, malop, mamon, hocki, lanthi,
diem) VALUES(N'" + cboSinhvien.SelectedValue.ToString() + "',N'" +
cboLop.SelectedValue.ToString() + "', N'" + cboMon.SelectedValue.ToString()
+ "',N'" + cboHocki.SelectedValue.ToString() + "',N'" +
cboLanthi.SelectedValue.ToString() + "',N'" + txtDiem.Text.Trim() + "')";
QuanlydiemSVDaihoc.RunSql(sql);
Load_DataGridView();
ResetValues();
DataGridView.Visible = true;
15
btnXoa.Enabled = true;
btnThem.Enabled = true;
btnSua.Enabled = true;
btnBoqua.Enabled = false;
btnLuu.Enabled = false;
cboSinhvien.Enabled = false;
}
private void btnSua_Click(object sender, EventArgs e)
{
string sql;
if (cboSinhvien.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập mã sinh viên", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboSinhvien.Focus();
return;
}
if (cboLop.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập lớp", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboLop.Focus();
return;
}
if (cboMon.Text.Trim().Length == 0)
{
16
MessageBox.Show("Bạn phải nhập môn", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboMon.Focus();
return;
}
if (cboHocki.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải chọn học kì", "Thơng báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboHocki.Focus();
return;
}
if (cboLanthi.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập lần thi", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
cboLanthi.Focus();
return;
}
if (txtDiem.Text.Trim().Length == 0)
{
MessageBox.Show("Bạn phải nhập điểm", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtDiem.Focus();
return;
}
if (Convert.ToDouble(txtDiem.Text) > 10 &&
Convert.ToDouble(txtDiem.Text) < 0)
17
{
MessageBox.Show("Nhập lại điểm", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtDiem.Focus();
return;
}
sql = "UPDATE tbldiem SET masinhvien=N'" +
cboSinhvien.SelectedValue.ToString() + "',malop=N'" +
cboLop.SelectedValue.ToString() + "',mamon= N'" +
cboMon.SelectedValue.ToString() + "',hocki=N'" +
cboHocki.SelectedValue.ToString() + "',lanthi=N'" +
cboLanthi.SelectedValue.ToString() + "',diem=N'" + txtDiem.Text.Trim() + "'
WHERE masinhvien=N'" + cboSinhvien.SelectedValue + "'and malop= N'" +
cboLop.SelectedValue + "'and mamon= N'" + cboMon.SelectedValue + "'";
QuanlydiemSVDaihoc.RunSql(sql);
Load_DataGridView();
ResetValues();
btnXoa.Enabled = true;
btnThem.Enabled = true;
btnSua.Enabled = true;
btnBoqua.Enabled = false;
btnLuu.Enabled = false;
cboSinhvien.Enabled = false;
}
private void btnXoa_Click(object sender, EventArgs e)
{
string sql;
18
if (tblD.Rows.Count == 0)
{
MessageBox.Show("Khơng cịn dữ liệu!", "Thơng báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (cboSinhvien.Text == "")
{
MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (MessageBox.Show("Bạn có muốn xóa khơng?", "Thơng báo",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question) ==
DialogResult.OK)
{
sql = "DELETE tbldiem WHERE masinhvien=N'" +
cboSinhvien.SelectedValue.ToString() + "'and malop= N'" +
cboLop.SelectedValue.ToString() + "'and mamon= N'" +
cboMon.SelectedValue.ToString() + "'";
QuanlydiemSVDaihoc.RunSqlDel(sql);
Load_DataGridView();
ResetValues();
}
}
2. Code đại diện Form sinh viên
private void frmSinhvien_Load(object sender, EventArgs e)
19
{
QuanlydiemSVDaihoc.Connect();
txtMasinhvien.Enabled = false;
btnLuu.Enabled = false;
btnBoqua.Enabled = false;
txtAnh.Enabled = false;
Load_DataGridView();
QuanlydiemSVDaihoc.FillCombo("SELECT makhoa,tenkhoa FROM
tblkhoa", cboKhoa, "makhoa", "Tenkhoa");
cboKhoa.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT malop, tenlop FROM
tbllop ", cboLop, "malop", "tenlop");
cboLop.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT maque, tenque FROM
tblque", cboQue, "maque", "tenque");
cboQue.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT madantoc, tendantoc
FROM tbldantoc", cboDantoc, "madantoc", "tendantoc");
cboDantoc.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT machuyennganh,
tenchuyennganh FROM tblkhoa_chuyennganh", cboChuyennganh,
"machuyennganh", "tenchuyennganh");
cboChuyennganh.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT mahedaotao, tenhedaotao
FROM tblhedaotao", cboHedaotao, "mahedaotao", "tenhedaotao");
cboHedaotao.SelectedIndex = -1;
QuanlydiemSVDaihoc.FillCombo("SELECT machucvu, tenchucvu
FROM tblchucvu", cboChucvu, "machucvu", "tenchucvu");
20
cboChucvu.SelectedIndex = -1;
}
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog dlgOpen = new OpenFileDialog();
dlgOpen.Filter = "JPG(*.jpq) |*.jpg|All files(*.*) | *.* ";
dlgOpen.InitialDirectory = "D:\\";
dlgOpen.FilterIndex = 3;
dlgOpen.Title = "Chon hinh anh de hien thi";
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
pic.Image = Image.FromFile(dlgOpen.FileName);
txtAnh.Text = dlgOpen.FileName;
}
}
private void btnDong_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Bạn có muốn thốt khơng?", "Thơng báo",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
System.Windows.Forms.DialogResult.Yes)
Application.Exit();
}
private void btnThem_Click(object sender, EventArgs e)
{
btnSua.Enabled = false;
btnXoa.Enabled = false;
21
btnBoqua.Enabled = true;
btnLuu.Enabled = true;
btnThem.Enabled = false;
btnOpen.Enabled = true;
ResetValues();
txtMasinhvien.Enabled = true;
txtMasinhvien.Focus();
cboLop.Enabled = false;
cboChuyennganh.Enabled = false;
}
private void ResetValues()
{
txtTensinhvien.Text = "";
txtAnh.Text = "";
chkNam.Checked = false;
chkNu.Checked = false;
mskNgaysinh.Text = "";
cboQue.Text = "";
cboLop.Text = "";
cboKhoa.Text = "";
cboChuyennganh.Text = "";
cboDantoc.Text = "";
cboHedaotao.Text = "";
cboChucvu.Text = "";
txtMasinhvien.Text = "";
pic.Image = null;
}
22