Пример #1
0
        public List <DTO_SinhVien> getDSDV(int soLuong)
        {
            List <DTO_SinhVien> dssv = new List <DTO_SinhVien>();

            try
            {
                string sql = "select top " + soLuong + " * from DS_SINHVIEN";
                kn.Mo();
                SqlDataReader rd = kn.ExecuteReader(sql);
                while (rd.Read())
                {
                    DTO_SinhVien sv = new DTO_SinhVien();
                    sv.MSSV1     = rd["MSSV"].ToString();
                    sv.HoTen1    = rd["hoTen"].ToString();
                    sv.HDH1      = double.Parse(rd["HDH"].ToString());
                    sv.HQT_CSDL1 = double.Parse(rd["HQT_CSDL"].ToString());
                    sv.KTMT1     = double.Parse(rd["KTMT"].ToString());
                    sv.CSDL1     = double.Parse(rd["CSDL"].ToString());
                    sv.CTDLGT1   = double.Parse(rd["CTDL"].ToString());
                    sv.LTHDT1    = double.Parse(rd["LTHDT"].ToString());
                    sv.MMT1      = double.Parse(rd["MMT"].ToString());
                    sv.NMLT1     = double.Parse(rd["NMLT"].ToString());
                    sv.TH_CSDL1  = double.Parse(rd["TH_CSDL"].ToString());
                    dssv.Add(sv);
                }
                kn.Dong();
                return(dssv);
            }
            catch {
                return(dssv);
            }
        }
Пример #2
0
        private void btnSua_Click(object sender, EventArgs e)
        {
            maSinhVien  = txtMaSV.Text.Trim();
            maLop       = cbbLop.SelectedValue.ToString();
            tenSinhVien = txtTenSV.Text.Trim();
            ngaySinh    = DateTime.Parse(DateNgaySinh.Value.ToLongDateString());
            string ngaySinhFormat = ngaySinh.ToString("yyyy-MM-dd");

            ngaySinh = DateTime.Parse(ngaySinhFormat);
            queQuan  = txtQueQuan.Text.Trim();
            if (rdoNam.Checked)
            {
                gioiTinh = "Nam";
            }
            if (rdoNu.Checked)
            {
                gioiTinh = "Nữ";
            }
            DTO_SinhVien SinhVien = new DTO_SinhVien(maSinhVien, maLop, tenSinhVien, queQuan, ngaySinh, gioiTinh);

            try
            {
                MessageBox.Show("Bạn đã sửa thành công");
                busSinhVien.SuaSinhVien(maSinhVien, SinhVien);
                dataGridView1.DataSource = busSinhVien.GetSinhVien();
                Xoa();
            }
            catch (Exception A)
            {
                MessageBox.Show(A.Message);
            }
        }
Пример #3
0
 public DTO_SinhVien[] themPhanTu_1C(DTO_SinhVien[] mangKq, DTO_SinhVien sv)
 {
     //Thêm 1 tên mới vào mảng chuỗi chứa tên các biến của mỗi cụm
     Array.Resize(ref mangKq, mangKq.Length + 1);
     mangKq[mangKq.Length - 1] = sv;
     return(mangKq);
 }
Пример #4
0
 public void taoMang_Rong(DTO_SinhVien[][] kq, double[][] mang2C_KC)
 {
     //Tạo mảng chuỗi chứa các giá trị null
     for (int i = 0; i < kq.GetLength(0); i++)
     {
         kq[i] = new DTO_SinhVien[1];
     }
 }
        public bool themSV(DTO_SinhVien sv)
        {
            dbConn.Open();
            string     cmd    = "INSERT INTO SINHVIEN VALUES('" + sv.MaSV + "',N'" + sv.HoSV + "', N'" + sv.TenSV + "',N'" + sv.MaLop + "', '" + sv.MaKhoa + "', '" + sv.MaNganh + "', '" + sv.NgaySinh + "', '" + sv.GioiTinh + "', N'" + sv.DiaChi + "', '" + sv.DoanVien + "', '" + sv.NgayVD + "', N'" + sv.NoiKN + "', '" + sv.SoCMND + "', '" + sv.NgayCap + "', N'" + sv.NoiCap + "','" + sv.HeDaoTao + "', '" + sv.NamTuyenSinh + "', N'" + sv.DanToc + "')";
            SqlCommand sqlCmd = new SqlCommand(cmd, dbConn);

            sqlCmd.ExecuteNonQuery();
            dbConn.Close();
            return(true);
        }
        public bool suaSV(DTO_SinhVien sv)
        {
            dbConn.Open();
            string     cmd    = "UPDATE SINHVIEN SET HOSV=N'" + sv.HoSV + "', TENSV=N'" + sv.TenSV + "',MALOP='" + sv.MaLop + "', MAKHOA='" + sv.MaKhoa + "', MANGANH='" + sv.MaNganh + "', NGAYSINH='" + sv.NgaySinh + "', GIOITINH='" + sv.GioiTinh + "', DIACHI=N'" + sv.DiaChi + "', DOANVIEN='" + sv.DoanVien + "', NGAYVD='" + sv.NgayVD + "', NOIKETNAP=N'" + sv.NoiKN + "', SOCMND='" + sv.SoCMND + "', NGAYCAP='" + sv.NgayCap + "', NOICAP=N'" + sv.NoiCap + "',HEDAOTAO='" + sv.HeDaoTao + "', NAMTUYENSINH='" + sv.NamTuyenSinh + "', DANTOC=N'" + sv.DanToc + "' WHERE MASV='" + sv.MaSV + "'";
            SqlCommand sqlCmd = new SqlCommand(cmd, dbConn);

            sqlCmd.ExecuteNonQuery();
            dbConn.Close();
            return(true);
        }
Пример #7
0
 public int TimViTri(DTO_SinhVien[] ds, DTO_SinhVien sv)
 {
     for (int i = 0; i < ds.Count(); i++)
     {
         if (ds[i].MSSV1 == sv.MSSV1)
         {
             return(i);
         }
     }
     return(-1);
 }
Пример #8
0
 public DTO_SinhVien[][] Kmeans_CNPM(List <DTO_SinhVien> lstTam, double[][] mang2C_KC, int soLuong)
 {
     //
     DTO_SinhVien[][] kq = new DTO_SinhVien[2][];
     taoMang_Rong(kq, mang2C_KC);
     //
     tinhKC_CNPM(getDSDV(soLuong), lstTam, mang2C_KC);
     //
     //List<DTO_SinhVien> lst_TamCum = taoTamCum_Moi(kq);
     gomCum(mang2C_KC, kq, soLuong);
     return(kq);
 }
Пример #9
0
        public void themPhanTu(DTO_SinhVien[][] mangKq, DTO_SinhVien sv, int viTri)
        {
            //Thêm 1 tên mới vào mảng chuỗi chứa tên các biến của mỗi cụm
            int k = mangKq[viTri].Length;

            if (mangKq[viTri][k - 1] == null)
            {
                mangKq[viTri][k - 1] = sv;
            }
            else
            {
                Array.Resize(ref mangKq[viTri], mangKq[viTri].Length + 1);
                mangKq[viTri][k] = sv;
            }
        }
Пример #10
0
        public DTO_SinhVien[] xoaPtu(DTO_SinhVien[] ds, DTO_SinhVien sv)
        {
            int viTri = TimViTri(ds, sv);

            for (int i = 0; i < ds.Count(); i++)
            {
                if (i > viTri)
                {
                    DTO_SinhVien t = ds[i];
                    ds[i]     = sv;
                    ds[i - 1] = t;
                }
            }
            Array.Resize(ref ds, ds.Length - 1);
            return(ds);
        }
Пример #11
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                bool gt = true;

                if (radNam.Checked)
                {
                    gt = true;
                }
                else
                {
                    gt = false;
                }

                bool dv = true;
                if (radDVCO.Checked)
                {
                    dv = true;
                }
                else
                {
                    dv = false;
                }

                bool dt = true;
                if (radDanSu.Checked)
                {
                    dt = true;
                }
                else
                {
                    dt = false;
                }

                DTO_SinhVien SinhVien = new DTO_SinhVien(txtMaSV.Text, txtHoSV.Text, txtTenSV.Text, comboLop.SelectedValue.ToString(), comboKhoa.SelectedValue.ToString(), comboNganh.SelectedValue.ToString(), txtNgaySinh.Text, gt.ToString(), txtDiaChi.Text, dv.ToString(), txtNgayVaoDoan.Text, txtNoiKetnap.Text, txtSoCMND.Text, txtNgayCap.Text, txtNoiCap.Text, dt.ToString(), txtNamtuyenSinh.Text, txtDanToc.Text);
                sv.themSV(SinhVien);
                lbThongBao.Text = "Thêm thành công";
            }
            catch
            {
                lbThongBao.Text = "Thêm không thành công. Vui lòng kiểm tra lại mã sinh viên và mã đối tượng";
            }
        }
Пример #12
0
 public void SuaSinhVien(string maSinhVien, DTO_SinhVien SinhVien)
 {
     try
     {
         sqlCon.Open();
         string     strQuery = string.Format(@"Update dbo.SinHVien Set maLop='{0}',tenSinHVien=N'{1}',queQuan=N'{3}',ngaySinh='{2}',gioiTinh=N'{4}'
                                         Where maSinhVien ='{5}'", SinhVien.MaLop, SinhVien.TenSinhVien, SinhVien.NgaySinh, SinhVien.QueQuan, SinhVien.GioiTinh, maSinhVien);
         SqlCommand sqlCom   = new SqlCommand(strQuery, sqlCon);
         sqlCom.ExecuteNonQuery();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     finally
     {
         sqlCon.Close();
     }
 }
Пример #13
0
        public DTO_SinhVien tinhKCTB_CNPM(DTO_SinhVien[][] lstTenPTu)
        {//Tính tâm cụm của mỗi cụm mới tạo
            DTO_SinhVien kq       = new DTO_SinhVien();
            double       tong4    = 0;
            double       tong5    = 0;
            double       tong6    = 0;
            int          tongDiem = 0;

            for (int i = 0; i < lstTenPTu[0].Length; i++)
            {
                tong4 += lstTenPTu[0][i].NMLT1;
                tong5 += lstTenPTu[0][i].LTHDT1;
                tong6 += lstTenPTu[0][i].CTDLGT1;
                tongDiem++;
            }
            kq.CTDLGT1 = tong6 / tongDiem;
            kq.LTHDT1  = tong5 / tongDiem;
            kq.NMLT1   = tong4 / tongDiem;
            return(kq);
        }
Пример #14
0
        public DTO_SinhVien tinhKCTB_MMT(DTO_SinhVien[][] lstTenPTu)
        {//Tính tâm cụm của mỗi cụm mới tạo
            DTO_SinhVien kq       = new DTO_SinhVien();
            double       tong1    = 0;
            double       tong3    = 0;
            double       tong4    = 0;
            int          tongDiem = 0;

            for (int i = 0; i < lstTenPTu[0].Length; i++)
            {
                tong1 += lstTenPTu[0][i].MMT1;
                tong3 += lstTenPTu[0][i].KTMT1;
                tong4 += lstTenPTu[0][i].HDH1;
                tongDiem++;
            }
            kq.MMT1  = tong1 / tongDiem;
            kq.KTMT1 = tong3 / tongDiem;
            kq.HDH1  = tong4 / tongDiem;
            return(kq);
        }
Пример #15
0
        public DTO_SinhVien tinhKCTB_HTTT(DTO_SinhVien[][] lstTenPTu)
        {//Tính tâm cụm của mỗi cụm mới tạo
            DTO_SinhVien kq       = new DTO_SinhVien();
            double       tong1    = 0;
            double       tong2    = 0;
            double       tong3    = 0;
            int          tongDiem = 0;

            for (int i = 0; i < lstTenPTu[0].Length; i++)
            {
                tong1 += lstTenPTu[0][i].HQT_CSDL1;
                tong2 += lstTenPTu[0][i].CSDL1;
                tong3 += lstTenPTu[0][i].TH_CSDL1;
                tongDiem++;
            }
            kq.HQT_CSDL1 = tong1 / tongDiem;
            kq.CSDL1     = tong2 / tongDiem;
            kq.TH_CSDL1  = tong3 / tongDiem;
            return(kq);
        }
Пример #16
0
 public void ThemSinhVien(DTO_SinhVien SinhVien)
 {
     try
     {
         // Kết Nối với cơ sở dữ liệu
         sqlCon.Open();
         // Câu truy vấn để thêm thông tin
         string strQuery = string.Format(@"Insert Into dbo.SinhVien (maSinhVien,maLop,tenSinhVien,queQuan,ngaySinh,gioiTinh)
                                          Values('{0}','{1}',N'{2}',N'{3}','{4}',N'{5}')", SinhVien.MaSinhVien, SinhVien.MaLop, SinhVien.TenSinhVien, SinhVien.QueQuan, SinhVien.NgaySinh, SinhVien.GioiTinh);
         // Dùng đối tượng sqlCommand để thao tác với cơ sở dữ liệu với 2 tham số truyền vào là câu truy vấn và đối tượng thực thi
         SqlCommand sqlCom = new SqlCommand(strQuery, sqlCon);
         sqlCom.ExecuteNonQuery();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
     finally
     {
         sqlCon.Close();
     }
 }
Пример #17
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            maSinhVien  = txtMaSV.Text.Trim();
            maLop       = cbbLop.SelectedValue.ToString();
            tenSinhVien = txtTenSV.Text.Trim();
            ngaySinh    = DateTime.Parse(DateNgaySinh.Value.ToShortDateString().ToString());
            queQuan     = txtQueQuan.Text.Trim();
            if (rdoNam.Checked)
            {
                gioiTinh = "Nam";
            }
            if (rdoNu.Checked)
            {
                gioiTinh = "Nữ";
            }
            DTO_SinhVien SinhVien = new DTO_SinhVien(maSinhVien, maLop, tenSinhVien, queQuan, ngaySinh, gioiTinh);

            if (busSinhVien.KiemTraMaTrung(maSinhVien) == 1)
            {
                MessageBox.Show("Đã tồn tại mã sinh viên! Mời bạn nhập lại");
            }
            else
            {
                try
                {
                    MessageBox.Show("Bạn đã thêm thành công");
                    busSinhVien.ThemSinhVien(SinhVien);
                    dataGridView1.DataSource = busSinhVien.GetSinhVien();
                    Xoa();
                }
                catch (Exception A)
                {
                    MessageBox.Show(A.Message);
                }
            }
        }
Пример #18
0
 public void ThemSinhVien(DTO_SinhVien SinhVien)
 {
     dalSinhVien.ThemSinhVien(SinhVien);
 }
 public bool themSV(DTO_SinhVien sv)
 {
     return(dal_SV.themSV(sv));
 }
Пример #20
0
        //public void readFile()
        //{//Đọc file xml
        //    List<DTO_SinhVien> lst = new List<DTO_SinhVien>();
        //    String file = "D:/KhaiThacDuLieu/Kmeans/Test1.xml";
        //    try
        //    {
        //        XmlDocument reader = new XmlDocument();
        //        reader.Load(file);
        //        XmlNodeList nodeList = reader.SelectNodes("/TapHop/Diem");
        //        foreach (XmlNode node in nodeList)
        //        {
        //            DTO_SinhVien d = new DTO_SinhVien();
        //            d. = node["ten"].InnerText.ToString();
        //            d.X = float.Parse(node["x"].InnerText);
        //            d.Y = float.Parse(node["y"].InnerText);
        //            lstDiem.Add(d);
        //        }
        //    }
        //    catch (FileNotFoundException e)
        //    {
        //        Console.WriteLine(e.ToString());
        //    }
        //}

        public void Kmeans(int soLuong)
        {
            List <DTO_SinhVien> dsSV   = getDSDV(soLuong);
            List <DTO_SinhVien> nguong = new List <DTO_SinhVien>();

            int n = soLuong;

            double[][] mang2C_cnpm = new double[n][];
            for (int i = 0; i < n; i++)
            {
                mang2C_cnpm[i] = new double[n];
            }
            double[][] mang2C_httt = new double[n][];
            for (int i = 0; i < n; i++)
            {
                mang2C_httt[i] = new double[n];
            }
            double[][] mang2C_mmt = new double[n][];
            for (int i = 0; i < n; i++)
            {
                mang2C_mmt[i] = new double[n];
            }
            nguong.Add(NT);
            nguong.Add(ND);
            DTO_SinhVien[][] dsCNPM = Kmeans_CNPM(nguong, mang2C_cnpm, soLuong);
            DTO_SinhVien[][] dsHTTT = Kmeans_HTTT(nguong, mang2C_httt, soLuong);
            DTO_SinhVien[][] dsMMT  = Kmeans_MMT(nguong, mang2C_mmt, soLuong);

            DTO_SinhVien[][] cnpm = dsCNPM;
            DTO_SinhVien[][] httt = dsHTTT;
            DTO_SinhVien[][] mmt  = dsMMT;
            //
            gomCumMoi(cnpm, httt, mmt);
            //Tao them 2 tam cum chua
            List <DTO_SinhVien> nguong_1 = new List <DTO_SinhVien>();
            List <DTO_SinhVien> nguong_2 = new List <DTO_SinhVien>();

            //Tinh KCTB Tạo 3 tâm cụm mới.
            List <DTO_SinhVien> nguong_CNPM = new List <DTO_SinhVien>();
            List <DTO_SinhVien> nguong_HTTT = new List <DTO_SinhVien>();
            List <DTO_SinhVien> nguong_MMT  = new List <DTO_SinhVien>();
            DTO_SinhVien        n1          = tinhKCTB_CNPM(cnpm);

            nguong_CNPM.Add(n1);
            DTO_SinhVien n2 = tinhKCTB_HTTT(httt);

            nguong_HTTT.Add(n2);
            DTO_SinhVien n3 = tinhKCTB_MMT(mmt);

            nguong_MMT.Add(n3);
            while (!soSanh_CNPM(nguong, nguong_CNPM) || !soSanh_HTTT(nguong_1, nguong_HTTT) || !soSanh_MMT(nguong_2, nguong_MMT))
            {
                DTO_SinhVien[][] kq = new DTO_SinhVien[3][];
                cnpm = dsCNPM;
                httt = dsHTTT;
                mmt  = dsMMT;
                gomCumMoi(cnpm, httt, mmt);
                nguong   = nguong_CNPM;
                nguong_1 = nguong_HTTT;
                nguong_2 = nguong_MMT;

                //
                tinhKC_CNPM(dsSV, nguong_CNPM, mang2C_cnpm);
                tinhKC_CNPM(dsSV, nguong_HTTT, mang2C_httt);
                tinhKC_CNPM(dsSV, nguong_MMT, mang2C_mmt);
                //
                taoMang_Rong(kq, mang2C_cnpm);
                taoMang_Rong(kq, mang2C_httt);
                taoMang_Rong(kq, mang2C_mmt);
                //
                gomCum(mang2C_cnpm, kq, soLuong);
                gomCum(mang2C_httt, kq, soLuong);
                gomCum(mang2C_mmt, kq, soLuong);
                //
                nguong_CNPM = new List <DTO_SinhVien>();
                nguong_HTTT = new List <DTO_SinhVien>();
                nguong_MMT  = new List <DTO_SinhVien>();
                n1          = tinhKCTB_CNPM(cnpm);
                nguong_CNPM.Add(n1);
                n2 = tinhKCTB_HTTT(httt);
                nguong_HTTT.Add(n2);
                n3 = tinhKCTB_MMT(mmt);
                nguong_MMT.Add(n3);
            }
            dsCN = cnpm;
            dsHT = httt;
            dsM  = mmt;
        }
Пример #21
0
        //public bool kTra_KhoangCach() {

        //}
        public void gomCumMoi(DTO_SinhVien[][] cnpm, DTO_SinhVien[][] httt, DTO_SinhVien[][] mmt)
        {
            bool kt1 = false;

            for (int i = 0; i < cnpm[0].Length; i++)
            {
                if (kt1 == true)
                {
                    i--;
                    kt1 = false;
                }
                DTO_SinhVien svHT  = httt[0].FirstOrDefault(ht => ht.MSSV1 == cnpm[0][i].MSSV1);
                DTO_SinhVien svM   = mmt[0].FirstOrDefault(m => m.MSSV1 == cnpm[0][i].MSSV1);
                int          viTri = i;
                if (svHT != null && cnpm[0][viTri].KhoangCach > svHT.KhoangCach)
                {
                    cnpm[0] = xoaPtu(cnpm[0], cnpm[0][viTri]);
                    kt1     = true;
                    if (i == cnpm[0].Length)
                    {
                        break;
                    }
                }
                if (svM != null && cnpm[0][viTri].KhoangCach > svM.KhoangCach)
                {
                    kt1     = true;
                    cnpm[0] = xoaPtu(cnpm[0], cnpm[0][viTri]);
                }
            }
            //HTTT
            bool kt2 = false;

            for (int i = 0; i < httt[0].Length; i++)
            {
                if (kt2 == true)
                {
                    i--;
                    kt2 = false;
                }
                DTO_SinhVien svM   = mmt[0].FirstOrDefault(m => m.MSSV1 == httt[0][i].MSSV1);
                DTO_SinhVien svCN  = cnpm[0].FirstOrDefault(cn => cn.MSSV1 == httt[0][i].MSSV1);
                int          viTri = i;
                if (svM != null && httt[0][viTri].KhoangCach > svM.KhoangCach)
                {
                    httt[0] = xoaPtu(httt[0], httt[0][viTri]);
                    kt2     = true;
                    if (i == httt[0].Length)
                    {
                        break;
                    }
                }
                if (svCN != null && httt[0][viTri].KhoangCach > svCN.KhoangCach)
                {
                    httt[0] = xoaPtu(httt[0], httt[0][viTri]);
                    kt2     = true;
                }
            }
            //MMT
            bool kt3 = false;

            for (int i = 0; i < mmt[0].Length; i++)
            {
                if (kt3 == true)
                {
                    i--;
                    kt3 = false;
                }
                DTO_SinhVien svHT = httt[0].FirstOrDefault(ht => ht.MSSV1 == mmt[0][i].MSSV1);
                DTO_SinhVien svCN = cnpm[0].FirstOrDefault(cn => cn.MSSV1 == mmt[0][i].MSSV1);

                if (svHT != null && mmt[0][i].KhoangCach > svHT.KhoangCach)
                {
                    mmt[0] = xoaPtu(mmt[0], mmt[0][i]);
                    kt3    = true;
                    if (i == mmt[0].Length)
                    {
                        break;
                    }
                }
                if (svCN != null && mmt[0][i].KhoangCach > svCN.KhoangCach)
                {
                    mmt[0] = xoaPtu(mmt[0], mmt[0][i]);
                    kt3    = true;
                }
            }
        }
 public bool suaSV(DTO_SinhVien sv)
 {
     return(dal_SV.suaSV(sv));
 }
Пример #23
0
 public double khoangCach_CNPM(DTO_SinhVien sv1, DTO_SinhVien sv2)
 {
     return(Math.Sqrt(Math.Pow(sv1.CTDLGT1 - sv2.CTDLGT1, 2) + Math.Pow(sv1.LTHDT1 - sv2.LTHDT1, 2) + Math.Pow(sv1.NMLT1 - sv2.NMLT1, 2)));
 }
Пример #24
0
 public double khoangCach_HTTT(DTO_SinhVien sv1, DTO_SinhVien sv2)
 {
     return(Math.Sqrt(Math.Pow(sv1.HQT_CSDL1 - sv2.HQT_CSDL1, 2) + Math.Pow(sv1.CSDL1 - sv2.CSDL1, 2) + Math.Pow(sv1.TH_CSDL1 - sv2.TH_CSDL1, 2)));
 }
Пример #25
0
 public double khoangCach_MMT(DTO_SinhVien sv1, DTO_SinhVien sv2)
 {
     return(Math.Sqrt(Math.Pow(sv1.HDH1 - sv2.HDH1, 2) + Math.Pow(sv1.KTMT1 - sv2.KTMT1, 2) + Math.Pow(sv1.MMT1 - sv2.MMT1, 2)));
 }
Пример #26
0
 public void SuaSinhVien(string maSinhVien, DTO_SinhVien SinhVien)
 {
     dalSinhVien.SuaSinhVien(maSinhVien, SinhVien);
 }