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); } }
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); } }
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); }
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); }
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); }
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); }
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; } }
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); }
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"; } }
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(); } }
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); }
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); }
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); }
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(); } }
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); } } }
public void ThemSinhVien(DTO_SinhVien SinhVien) { dalSinhVien.ThemSinhVien(SinhVien); }
public bool themSV(DTO_SinhVien sv) { return(dal_SV.themSV(sv)); }
//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; }
//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)); }
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))); }
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))); }
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))); }
public void SuaSinhVien(string maSinhVien, DTO_SinhVien SinhVien) { dalSinhVien.SuaSinhVien(maSinhVien, SinhVien); }