QUẢN LÍ ĐIỂM

Một phần của tài liệu PHẦN i: PROJECT và CONSOLE APPLICATION (Trang 33 - 38)

III. Xây dựng lớp kết nối dung chung: 1 Xây dựng lớp kết nối cơ sở dữ liệu:

5. QUẢN LÍ ĐIỂM

Hãy thiết kế form nhập điểm cho sinh viên và sau đó tính điểm trung bình cho từng học sinh. (tự thiết kế Form sau cho hợp lí)

* Yêu cầu:

- Hiển thị tất cả các lớp lên combobox Lớp. - Hiển thị tất cả môn học combobox Môn học. - Button “Các môn học chưa có điểm của lớp đó”.

- Khi chọn một lớp và click xem điểm thì sẽ xem được điểm của lớp đó (nếu đã có điểm), còn chưa thì để trống.

- Thực hiện thêm, xoá, sửa điểm của một lớp (lớp đã có điểm rồi nếu vẫn tiếp tục thêm thì hiện thông báo “…” và tiếp tục thêm nó sẽ xoá toàn bộ điểm cũ và thêm điểm mới vào, còn không chọn thì nó sẽ không thêm mà lấy điểm cũ).

(nếu có thể hãy thực hiện xoá điểm của một sinh viên trên môn học đó). - Nút “In bảng điểm” thực hiện việc in Report.

- Nút “Tính điểm trung bình” cho lớp đó

Ta khai báo biến toàn cục là dt

DataTable dt;

Form load của form Quản lí điểm

private void frmQLDiem_Load(object sender, EventArgs e)

{

//cho hiển thị lên danh sách các lớp c_Lop l = new c_Lop();

cboLop.DisplayMember = "tenlop"; cboLop.ValueMember = "mslop";

cboLop.DataSource = l.LaydsLop("select * from lop"); //cho hiển thị lên danh sách các môn học

c_Monhoc m = new c_Monhoc(); cboMonhoc.DisplayMember = "tenmh"; cboMonhoc.ValueMember = "msmh";

cboMonhoc.DataSource = m.LaydsMH("select * from monhoc"); }

Nút xem các môn học của lớp chọn chưa có điểm

Vào Designer của from khai báo như sau:

public static string malop;

private void btnXemmonhoc_Click(object sender, EventArgs e)

{

//malop lấy từ khai báo bên Designer và gán cho giá trị của mã lớp vừa chọn

malop = cboLop.SelectedValue.ToString();

//gọi Form mới chứa các môn học chưa có điểm của lớp đó Form frm = new frmMHchuacoDiem();

frm.ShowDialog(); }

private void HIenThiDataGridView()

{

//hiển thị tất cả các sinh viên của lớp được chọn

string sql = "select MSSV,HoTenSV from sinhvien where mslop='"+cboLop.SelectedValue.ToString()+ "'";

dt = DataServices.ExecuteQuery(sql); dgvDiem.DataSource = dt;

//đếm tổng số sinh viên của lớp đó

DataView dv = new DataView(dt);

lblTSSV.Text = "Tổng số Sinh viên là:" + dv.Count.ToString(); dgvDiem.DataSource = dv;

dgvDiem.Columns[1].DisplayIndex = 0; dgvDiem.Columns[1].Width = 100; dgvDiem.Columns[1].HeaderText = "Mã SV"; dgvDiem.Columns[2].DisplayIndex = 1; dgvDiem.Columns[2].Width = 170; dgvDiem.Columns[2].HeaderText = "Họ tên SV"; }

private void btnXemDiem_Click(object sender, EventArgs e)

{

c_Diem d = new c_Diem();

string malop = cboLop.SelectedValue.ToString(); int n = d.KiemtraDiem(malop);

if (n == 0) {

MessageBox.Show("Lớp chưa có điểm"); return;

}

//có điểm

int sodong = dgvDiem.Rows.Count;

string mamh = cboMonhoc.SelectedValue.ToString(); for (int i = 0; i < sodong - 1; i++)

{

DataGridViewRow row = dgvDiem.Rows[i];

string masv = Convert.ToString(row.Cells["mssv"].Value).Trim(); if (d.LayDiem(masv, mamh) == 0) { row.Cells["Diem"].Value = ""; } else {

row.Cells["Diem"].Value = d.LayDiem(masv, mamh); }

} }

Phát sinh sự kiện SelectedIndexChanged cho Combo lop

private void cboLop_SelectedIndexChanged(object sender, EventArgs e)

{

HIenThiDataGridView(); }

private void btnThoat_Click(object sender, EventArgs e)

{

Close(); }

private void btnThem_Click(object sender, EventArgs e)

//kiem tra điểm có tồn tại trong bang "ketqua" khong? //nếu có thì khong thêm điểm còn không thêm điểm mới vào c_Diem d = new c_Diem();

int sodong = dgvDiem.Rows.Count;

string mamh = cboMonhoc.SelectedValue.ToString(); for (int i = 0; i < sodong - 1; i++)

{

float diem;

DataGridViewRow row = dgvDiem.Rows[i];

string masv = Convert.ToString(row.Cells["mssv"].Value).Trim(); if(row.Cells["diem"].Value=="")

diem=0; else

diem = float.Parse(Convert.ToString(row.Cells["diem"].Value).Trim()); //kiem tra nhap diem

try {

d.ThemDiem(masv, mamh, diem); }

catch {

MessageBox.Show("Có Điểm rồi"); return;

} }

MessageBox.Show("Thêm điểm cho lop " + cboLop.Text); }

private void btnXoa_Click(object sender, EventArgs e)

{

//kiem tra lớp có điểm chưa c_Diem d = new c_Diem();

string malop = cboLop.SelectedValue.ToString(); int n = d.KiemtraDiem(malop);

if (n == 0) {

MessageBox.Show("Lớp chưa có điểm. Không xoá được"); return;

}

//tiến hành xoá

DialogResult dr = MessageBox.Show("Bạn Thật Sự Muốn Xóa", "Xóa", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { d.XoaDiemtheoLop(malop); } //xoá một dòng được chọn if(dr==DialogResult.No) {

DataGridViewRow row = dgvDiem.CurrentRow; string masv= Convert.ToString(row.Cells[0].Value);

string mamh=cboMonhoc.SelectedValue.ToString(); d.XoaDiem(masv,mamh); MessageBox.Show("Xoá một điểm"); row.Cells["Diem"].Value = ""; } }

private void btnSua_Click(object sender, EventArgs e) {

c_Diem d = new c_Diem();

int sodong = dgvDiem.Rows.Count;

string mamh = cboMonhoc.SelectedValue.ToString(); for (int i = 0; i < sodong - 1; i++)

{

float diem;

DataGridViewRow row = dgvDiem.Rows[i];

string masv = Convert.ToString(row.Cells["mssv"].Value).Trim(); if (row.Cells["diem"].Value == "")

diem = 0; else

diem = float.Parse(Convert.ToString(row.Cells["diem"].Value).Trim());

//kiem tra nhap diem try { d.SuaDiem(masv, mamh,diem); } catch { MessageBox.Show("Có rồi"); return; } }

MessageBox.Show("Sửa điểm cho lop " + cboLop.Text); }

Một phần của tài liệu PHẦN i: PROJECT và CONSOLE APPLICATION (Trang 33 - 38)

Tải bản đầy đủ (DOC)

(43 trang)
w