Tải bản đầy đủ (.pdf) (56 trang)

Lập trình giao diện C Winform Quản lý điểm sinh viên đại học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (847.94 KB, 56 trang )

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


×