XD phần mềm Quản lý điểm: Bài 10. Xử lý dữ liệu Bảng điểm chi tiết, tính điểm TB toàn khóa và XL toàn khóa


Video này sẽ hoàn thiện việc xử lý dữ liệu Bảng điểm chi tiết sinh viên, bao gồm đưa vào bảng điểm mã môn học, tên môn học, số tín chỉ, điểm học phần, điểm số, điểm chữ quy đổi theo quy chế của Hệ thống tín chỉ.

 

Code của nội dung các Videos về xây dựng Bảng điểm chi tiết cho sinh viên các bạn có thể tham khảo:

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 Quan_Ly_Diem
{
    public partial class frmBangDiemChiTiet : Form
    {
        public frmBangDiemChiTiet()
        {
            InitializeComponent();
        }

        QLDDataContext dt = new QLDDataContext();
        XuLy xl = new XuLy();
        private void frmBangDiemChiTiet_Load(object sender, EventArgs e)
        {
            cboLop.ValueMember = "maLop";
            cboLop.DisplayMember = "tenLop";
            cboLop.DataSource = dt.Lops_SelectAll();            
        }

        private void cboLop_SelectedIndexChanged(object sender, EventArgs e)
        {
            treeViewSV.Nodes.Clear();
            foreach(var r in dt.SinhVien_SelectMaLop(cboLop.SelectedValue.ToString()))
            {
                TreeNode node = new TreeNode();
                node.Name = r.maSV;
                node.Text = r.hoTen;
                treeViewSV.Nodes.Add(node);
            }
            treeViewSV.ExpandAll();  
        }

         private void treeViewSV_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {            
            foreach (var r in dt.SinhVien_SelectID(e.Node.Name))
            {
                lblMaSV.Text = e.Node.Name;
                lblHoTen.Text = r.hoTen;
                lblNgaySinh.Text = r.ngaySinh.Value.ToShortDateString();
                if (r.gioiTinh.ToString() == "1")
                {
                    lblGioiTinh.Text = "Nữ";
                }
                else
                {
                    lblGioiTinh.Text = "Nam";
                }                
                lblDanToc.Text = r.danToc;
                lblNoiSinh.Text = r.noiSinh;               
            }
            var table = new DataTable();
            DataColumnCollection col = table.Columns;
            if (!col.Contains("maMon"))
                table.Columns.Add("maMon", typeof(String));
            if (!col.Contains("tenMon"))
                table.Columns.Add("tenMon", typeof(String));
            if (!col.Contains("soTinChi"))
                table.Columns.Add("soTinChi", typeof(String));
            if (!col.Contains("diemHP"))
                table.Columns.Add("diemHP", typeof(String));
            if (!col.Contains("diemChu"))
                table.Columns.Add("diemChu", typeof(String));
            if (!col.Contains("diemSo"))
                table.Columns.Add("diemSo", typeof(String));
            Double tong = 0;
            int soTinChi = 0;
            foreach(var m in dt.MonHP_SelectAll())
            {
                DataRow r = table.NewRow();
                r["maMon"] = m.maMon;
                r["tenMon"] = m.tenMon;
                r["soTinChi"] = m.soTinChi;
                soTinChi += Convert.ToInt32(m.soTinChi);
                foreach(var d in dt.DiemHP_Search(m.maMon, e.Node.Name))
                {
                    if(d.diemLan2 == null)
                    {
                        r["diemHP"] = d.diemLan1;
                        r["diemChu"] = xl.diemChu(Convert.ToDouble(d.diemLan1));
                        r["diemSo"] = xl.diemSo(Convert.ToDouble(d.diemLan1));
                        tong += xl.diemSo(Convert.ToDouble(d.diemLan1))
                            * Convert.ToDouble(m.soTinChi);
                    }
                    else
                    {
                        r["diemHP"] = d.diemLan2;
                        r["diemChu"] = xl.diemChu(Convert.ToDouble(d.diemLan2));
                        r["diemSo"] = xl.diemSo(Convert.ToDouble(d.diemLan2));
                        tong += xl.diemSo(Convert.ToDouble(d.diemLan2))
                            * Convert.ToDouble(m.soTinChi);
                    }
                }
                table.Rows.Add(r);
            }// End for mon HP
            Double t = Math.Round(tong / soTinChi, 2);
            lblTBTK.Text = t.ToString();
            lblXLTK.Text = xl.xlTK(t);
            dtgDiem.DataSource = table;
        }

    }
}
 


Bình luận

Đăng ký là thành viên để tham gia bình luận