Báo cáo bài tập lớn đề tài tìm hiểu hệ chuyên gia bài toán ứng dụng

76 6 0
Báo cáo bài tập lớn đề tài tìm hiểu hệ chuyên gia  bài toán ứng dụng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC MỎ-ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO BÀI TẬP LỚN Đề tài: Tìm hiểu Hệ chun gia- tốn ứng dụng Giảng viên hướng dẫn: Vương Như Quỳnh Sinh viên thực hiện: Nguyễn Đức Hoàn-1924010079 MỤC LỤC Chương I: TỔNG QUAN I.1 Lời nói đầu I.2 Nhân tướng học I.2.1 Giới thiệu .3 I.2.3 Biết qua vầng trán I.2.4 Cá tính thể qua cặp mắt .5 I.2.5 Mũi cho ta biết điều ? .6 I.2.6 Hình dáng miệng biểu đạt ? I.2.7 Đơi tai mách bảo điều ? I.2.8 Một số khuôn mặt thường thấy I.3 Phương hướng giải 10 Chương II : HỆ CHUYÊN GIA 11 II.1 Tổng quan .11 II.1.1 Hệ chuyên gia ? 11 II.1.2 Đặc trưng ưu điểm hệ chuyên gia 12 II.1.3 Các lĩnh vực ứng dụng hệ chuyên gia 13 II.1.4 Cấu trúc hệ chuyên gia 15 II.1.5 Một số mơ hình kiến trúc hệ chuyên gia .17 II.2 Cơ sở tri thức 19 II.2.1 Phân biệt tri thức liệu 19 II.2.2 Phân loại tri thức 20 II.2.3 Các cấp độ tri thức 22 II.2.4 Các phương pháp biểu diễn tri thức 23 II.3 Mô tơ suy diễn 31 II.3.1 Cơ chế suy diễn .31 II.3.2 Cơ chế điều khiển 33 Chương III : ÁP DỤNG MƠ HÌNH HỆ CHUN GIA XÂY DỰNG CHƯƠNG TRÌNH ĐỐN NHẬN TÍNH CÁCH NGƯỜI QUA ĐẶC TẢ KHUÔN MẶT .38 III.1 Vecto suy diễn tiến 38 III.2 Cơ sở tri thức 40 Chương IV : CHƯƠNG TRÌNH CHÍNH 47 IV.1 Môi trường .47 IV.2 Giao diện chương trình 47 IV.3 Mã nguồn số form 50 IV.4 Đánh giá chương trình 72 Chương I: TỔNG QUAN I.1 Lời nói đầu Có thể nói khn mặt nơi “anh hoa phát tiết ngồi” người Nó khơng biểu trạng thái tâm lý, mà thể cá tính, sức khỏe, địa vị xã hội… người Một khn mặt đầy đặn, tươi tắn, rạng rỡ có tạo cho bạn cảm giác thoải mái, dễ chịu cảm nhận tinh thần khỏe mạnh hay khơng ? Ngược lại, khn mặt gày gị, xanh xao, buồn bã liệu có làm cho bạn phải suy tư, trăn trở ? Hay nói hơn, khn mặt tư chất, tâm trạng người đó, mà cịn để lại ấn tượng tốt xấu cho người đối diện Và “Nhân tướng học” “chìa khóa giải mã bí ẩn” mà bạn nên khám phá, để thấy hấp dẫn thú vị khuôn mặt bạn người mà bạn quen biết, giao tiếp Những tìm tịi, hiểu biết, kinh nghiệm, kiến giải… Nhân tướng học tích lũy từ ngàn xưa, đương nhiên trở thành kho tàng vô phong phú, không dành cho riêng mà di sản tinh thần cho tất Chính lẽ mà em dự định xây dựng “Hệ chuyên gia” cho phép đoán tính cách người qua đặc tả khn mặt Trái ngược với lâu đời “Nhân tướng học”, “Hệ chuyên gia” người nghiên cứu, phát triển ứng dụng khoảng thời gian ngắn gần Hệ chuyên gia lĩnh vực nghiên cứu độc lập trí tuệ nhân tạo Đây lĩnh vực quan tâm tới việc phát triển chương trình xử lý tri thức mơ tả ký hiệu để mô cách làm việc chuyên gia người I.2 Nhân tướng học I.2.1 Giới thiệu Từ đất nước mở cửa,Văn hóa giới giao lưu,hội nhập rộng rãi với Việt Nam Đặc biệt văn hóa cổ Trung Hoa-vốn gần gũi từ lâu-một lần lại nghiên cứu,tìm hiểu đầy đủ,trong Nhân tướng học phận thâm nhập sâu vào sống,xã hội,con người Việt Nam Với người,khuôn mặt trước hết biểu cá tính tâm trạng Đó cảm xúc thơng thường buồn, vui, lo lắng, giận hờn…Nhưng đồng thời thể sức khỏe, nhân cách, địa vị xã hội… người Nhìn mặt đốn tính cách vốn kinh nghiệm có từ lâu đời,đến sử dụng “môn nghệ thuật” với kỹ mức độ khác Ở phương Đông,”môn nghệ thuật” gọi với tên quen thuộc “Nhân tướng học” Và nay, chuyên ngành khoa học người công nhận Nhân tướng học Á-đơng khơng dừng chân việc đốn tính cách Khoa cịn đào sâu địa hạt phú quý,bệnh tật,thọ yểu,sinh kế,nghề nghiệp Mặt khác Nhân tướng học cịn tìm hiểu-qua nét tướng cá nhân-những chi tiết liên quan đến người khác có liên hệ mật thiết với : cha mẹ, vợ chồng, anh em, cái, bạn bè Sau cùng, Nhân tướng học Á-đơng cịn rộng rãi táo bạo hẳn khoa tâm lý phương Tây Từ nội tâm liên hệ người, Nhân tướng học Á-đơng tiên đốn ln vận mạng, dám khẳng định thành bại, thịnh suy, xét khứ lẫn tương lai, không dừng lại giai đoạn Tóm lại, Nhân tướng học môn nhân văn, từ người mà ra, người mà có nhằm phục vụ cho người việc “tri kỷ, tri bỉ” Tuy nhiên khuôn khổ đề tài này, tìm hiểu đến phần khoa Nhân tướng học : Tìm hiểu cá tính biểu khn mặt Qua ta nắm yếu tố quan trọng để phát triển trì mối quan hệ hài hịa, hiệu người với I.2.2 Những điều cá tính thể khn mặt Thuật tìm hiểu tính cách qua khn mặt dựa kích thước, hình dạng, vị trí, tính chất, màu sắc số quan thể khuôn mặt Một dấu hiệu quan trọng thuật tìm hiểu cá tính biểu khn mặt khn mặt có cân đối hay khơng Khn mặt người cân đối, người có nhiều khả bị rối loạn tâm lý, sống gặp nhiều khó khăn, khổ sở nhiều thất vọng Cũng não chia thành hai phần với chức khác nhau, bên khuôn mặt phản ánh nhiều đặc điểm khác Ở hầu hết người, bên trái khuôn mặt biểu thị cá tính tính khí, bên phải mô tả cảm xúc, địa vị xã hội kinh tế, mối quan hệ cá nhân với người khác Có loại khn mặt bản, với loại tương ứng với loại cá tính vận may cụ thể : tam giác, trịn, vng Khuôn mặt chia thành vùng theo phương nằm ngang : trán; vùng từ chân mày đến cuối mũi; từ cuối mũi đến cằm Ta quan sát đặc tả khuôn mặt chủ yếu dựa phận : trán, mắt, mũi, miệng, tai, cằm Ngồi dựa số chi tiết khác : nếp nhăn, chân mày, gò má (lưỡng quyền), nốt ruồi, răng… I.2.3 Biết qua vầng trán a)Trán cao, rộng:  Trán cao, rộng dấu hiệu trí năng, nghị lực  Cá nhân có loại trán dành nhiều thời gian để quan sát suy ngẫm  Trán cao rộng đặc điểm thường gặp người thành công b)Trán thấp, rộng :  Loại trán dấu hiệu khả quan sát tinh tế, tính kiên nhẫn kiên trì  Ngồi ra, người có trán thấp rộng thường e dè, ngượng ngập, đến mức nhận biết toàn khả tiềm ẩn thân c)Trán cao, hẹp :  Người có trán thường thờ ơ,dửng dưng,khơng biết thương xót người khác họ thông minh  Nhiều nhà khoa học có loại trán d)Trán thấp, hẹp :  Đây dấu hiệu biểu thị thái độ vô trách nhiệm, cẩu thả, không thành thật, nhiều trường hợp cịn có hành động tội ác … I.2.4 Cá tính thể qua cặp mắt a)Mắt to:  Nam giới có cặp mắt to áp đảo, dễ nhận thấy thường người đầy cảm xúc, thích nghệ thuật, tinh thần chiến đấu cao Họ thường có khuynh hướng cấp tiến tư tưởng lẫn hành động quan tâm đến dự án có tính đột phá  Nữ giới có cặp mắt to thường có khuynh hướng nhạy cảm, có khiếu nghệ thuật b)Mắt nhỏ :  Người có cặp mắt nhỏ người có khuynh hướng thực tế tâm  Họ có thiên hướng nghệ thuật c)Mắt lồi :  Người có mắt lồi với mí mắt mỏng giỏi khả ngoại cảm, cẩn thận, bị động nhút nhát  Người có mắt lồi với mí mắt dầy thường có khuynh hướng dũng cảm, tham vọng, nhiều nghị lực lạ thường, đạt thành công d)Mắt lõm : Đây dấu hiệu cho thấy thiếu tự tin, suy nghĩ chậm chạp, ăn nói lắp bắp khơng có khả biểu cảm hay thể tình yêu … I.2.5 Mũi cho ta biết điều ? a)Mũi ngắn, dẹt :  Người có mũi ngắn, dẹt gần lúc có nhiều trở ngại, thể xác lẫn tinh thần, chênh lệch họ thường mức điều khác thường  Những người nhóm thường người đứng chậm chạp, họ vô trung thành đối xử tử tế họ b)Mũi dài :  Mũi người dài họ thường có khuynh hướng linh động hơn, có nhiều khả quan trọng hóa vấn đề Nhưng họ lại có ý thức trách nhiệm cao, tỉ mỉ công việc họ  Tuy nhiên, người có mũi q dài thường khơng thực tế, gặp khó khăn việc xác lập, trì mối quan hệ gắn bó, cảm xúc biểu tình yêu c)Mũi dài, to, cao : Người có mũi dài, to, cao tiếng cố chấp mực làm theo ý mình, thường đạt mục đích thơng qua dọa dẫm d)Mũi khoằm :  Họ người có cá tính tốt, có tài năng, tham vọng cao  Tuy nhiên dù họ thường phải đối mặt với nhiều trở ngại nghiêm trọng, vấn đề khó khăn … I.2.6 Hình dáng miệng biểu đạt ? a)Miệng rộng : Người có miệng rộng thường sống cởi mở, chan hịa, có nghị lực, tham vọng, thân mật, thoải mái b)Miệng nhỏ :  Miệng nhỏ thường kèm với yếu đuối, nhút nhát, lệ thuộc, đa cảm số đặc điểm không mong muốn khác  Người có miệng nhỏ, mơi mỏng thường có khuynh hướng tự xem trung tâm, nhẫn tâm người khác c)Miệng trề :  Miệng trề miệng nhìn nghiêng nhơ khỏi đường thẳng mũi cằm  Đây dấu hiệu cho thấy cố chấp trí kém, biểu thị cá nhân ln khăng khăng giữ ý kiến riêng Và họ đặc biệt thích nói nhiều d)Miệng lồi, mơi dầy : Người có mơi dầy, miệng cong xuống phía khóe miệng thường thích tranh luận, phàn nàn không sẵn sàng nghe theo lời khuyên người khác e)Miệng lõm, môi dày : Nó biểu thị lịng từ tâm, nhân cách tốt Ngồi ra, người có loại miệng thường dễ thích nghi làm việc có hiệu … I.2.7 Đơi tai mách bảo điều ? a)Tai to :  Tai to biểu thị lòng can đảm chủ động, kết hợp với trường thọ  Những người có đơi tai to thường thơng minh, lịch lãm, làm việc chuyên cần, kiên nhẫn tâm b)Tai nhỏ : Chúng biểu thị cá nhân thường có khuynh hướng hay thay đổi trí nhớ kém, cho thấy người sở hữu chúng có khiếu nghệ thuật tính sáng tạo … I.2.8 Một số khuôn mặt thường thấy  Trán bằng, rộng; mắt nhỏ, dài; mũi hẹp, thẳng; miệng nhỏ, tươi; vành tai rõ át vành tai trong; cằm mang tai vừa phải, có thịt trễ xuống: tính ơn hịa, độ lượng, có trách nhiệm, phóng khống, khơng thích nhục mạ người khác  Lông mày đậm, lớn giao nhau; mắt lớn khơng có thần; mũi nhỏ, dài; lưỡng quyền cao; mơi dày, miệng nhỏ; vành tai ngồi nở ngược chiều thơng thường; cằm ngắn phẳng : tính trầm lặng; thiếu đảm lược; khơng thích khó nhọc, khung cảnh ồn ào, náo nhiệt  Trán cao thiếu bề ngang; lơng mày ngắn, to bản, đậm; ánh mắt nhìn xuống; mũi thẳng, cao; miệng nhỏ, mơi dày; tai có dái tai lớn hướng phía trước; xương quyền cao, nhọn : tính cang cường, khỏe mạnh, dám nói dám làm  Trán bằng, rộng thiếu chiều cao; lơng mày thưa, nhỏ, ít; mắt hướng xuống; nhân trung ngắn, lợi lộ; tai dài, dái tai rủ xuống; cằm có nhiều thịt : tính ưa nhàn tản, không chịu khổ sở, thọ mệnh không dài  Đầu cân xứng, tròn trịa; trán cao; mắt lớn, ánh mắt lanh lẹ, sáng sủa; mũi to, ngắn; lưỡng quyền cao; tai mỏng, lớn dài : ý chí kiên cường, có khí phách, can đảm  Đỉnh đầu phẳng; trán cao, lông mày nhỏ, tú dài mắt; hai mắt sáng; mũi thẳng; miệng nhỏ, môi hồng; mang tai vừa phải, thẳng xuôi; cằm đầy đặn, khơng khuyết hãm : tính tình từ thiện, sáng suốt, làm việc có kế hoạch lâu dài dứt khoát, trường thọ  Trán hãm (hoặc gồ cao, lõm, gồ chỗ lõm chỗ khác, bên cao bên thấp); đuôi mắt rủ xuống, ánh mắt có thần; miệng vng; mũi thẳng, lưỡng quyền cao; cằm trịn đầy : khơng có nhiều khả phú túc  Đầu thấp nhỏ; trán phẳng; mắt có thần, mày rủ gần mắt, cười thường xệ, khó biết cười vui hay khinh thị; tai nhỏ, mỏng : tính tình độc, đa phần vất vả, khổ sở, đoản thọ  Trán cao, rộng; mắt trịn, nhỏ; lơng mày ít, thưa; mũi nhỏ ngắn; miệng nhỏ dáng đẹp; cằm hẹp; tai mỏng phần : giỏi mưu trí, làm việc trí óc thành cơng bắp cơ, dễ rung cảm  Trán rộng, phẳng, phía sau đầu nảy nở rõ; mày hướng lên; mũi thon, ngắn; khóe miệng xuống; lưỡng quyền cằm phẳng; tai dày, nhỏ : thông tuệ kiêu ngạo, bi quan  Đầu nhỏ; trán ngắn; lông mày nhỏ, ngắn; ánh mắt nghi kỵ; mũi lệch; hai chân mày gần giao nhau; cằm ngắn; mang tai hẹp :tâm tính bất chính, tính nết hiểm 10 frm_Quiz.Disposed += new EventHandler(frm_CSDL_Disposed); } private void cb_DacDiem_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { bt_AddFeature_Click(bt_AddFeature, new EventArgs()); } } private void bt_Close_Click(object sender, EventArgs e) { this.Dispose(); } } b) Form cập nhập sở liệu : public partial class CSDL : Form { public const int DAC_DIEM_TRAN = 0; public const int DAC_DIEM_MAT = 1; public const int DAC_DIEM_MUI = 2; public const int DAC_DIEM_MIENG = 3; public const int DAC_DIEM_TAI = 4; private BoiToanDataSet.tbl_FeaturesDataTable dt_DacDiem; private BoiToanDataSet.tbl_CharactersDataTable dt_TinhCachChuan; private int idAddFeature; public CSDL() { InitializeComponent(); } public static String correctString(String _input) { String result = ""; Char pChar = ' '; for (int i = 0; i < _input.Length; i++) 62 { if (_input[i] == ' ' && pChar == ' ') continue; pChar = _input[i]; result += _input[i].ToString(); } return result; } private void Main_Load(object sender, EventArgs e) { this.tbl_FeatureTypeTableAdapter.Fill(this.boiToanDataSet.tbl_Fea tureType); cb_Type.SelectedIndex = 0; refreshCharacters(); cb_Type_SelectedIndexChanged(cb_Type, new EventArgs()); } private void refreshCharacters() { dt_TinhCachChuan = new BoiToanDataSet.tbl_CharactersDataTable(); BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter(); adapter.Fill(dt_TinhCachChuan); lv_TinhCach.Items.Clear(); for (int i = 0; i < dt_TinhCachChuan.Rows.Count; i++) { ListViewItem item = new ListViewItem(i.ToString()); item.SubItems.Add(dt_TinhCachChuan.Rows[i] [dt_TinhCachChuan.MotaColumn].ToString()); lv_TinhCach.Items.Add(item); } } private void cb_Type_SelectedIndexChanged(object sender, EventArgs e) { 63 if (cb_Type.SelectedIndex < 0) return; lv_DDNhanDang.Items.Clear(); dt_DacDiem = new BoiToanDataSet.tbl_FeaturesDataTable(); BoiToanDataSetTableAdapters.tbl_FeaturesTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.tbl_FeaturesTableAdapter(); try { adapter.FillByType(dt_DacDiem, int.Parse(cb_Type.SelectedValue.ToString())); } catch { } for (int i = 0; i < dt_DacDiem.Rows.Count; i++) { ListViewItem item = new ListViewItem(i.ToString()); item.SubItems.Add(dt_DacDiem.Rows[i] [dt_DacDiem.MotaColumn].ToString()); item.SubItems.Add(getHasCharaters(int.Parse(dt_DacDiem.Rows[i] [dt_DacDiem.idColumn].ToString()))); lv_DDNhanDang.Items.Add(item); } } private String getHasCharaters(int _id_feature) { String result = ""; BoiToanDataSet.view_FeatureRelationDataTable tbl = new BoiToanDataSet.view_FeatureRelationDataTable(); BoiToanDataSetTableAdapters.view_FeatureRelationTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.view_FeatureRelationTableAdapter(); adapter.FillByFeatureID(tbl, _id_feature); for (int i = 0; i < tbl.Rows.Count; i++) { 64 if (tbl.Rows[i][tbl.weightColumn].ToString() == "2") { result += tbl.Rows[i][tbl.MotaColumn].ToString() + ", "; } } return result; } private void bt_ThemTC_Click(object sender, EventArgs e) { InputText frm_input = new InputText(); frm_input.Finished += new InputText.EventUpdate(frm_input_Finished); frm_input.Show(); } private void frm_input_Finished(object sender, String _value) { BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter(); int i = 0; String tmp = adapter.getMaxID().ToString(); if (!(tmp == "")) i = int.Parse(tmp) + 1; _value = correctString(_value.Trim()); if (adapter.GetDataByMota(_value).Rows.Count > 0) { MessageBox.Show("Đã tồn tính cách này!"); return; } adapter.Insert(i, _value); refreshCharacters(); } private void bt_XoaTC_Click(object sender, EventArgs e) { if (lv_TinhCach.SelectedIndices.Count == 0) return; 65 BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.tbl_CharactersTableAdapter(); try { int id = int.Parse(dt_TinhCachChuan.Rows[lv_TinhCach.SelectedIndices[0]] [dt_TinhCachChuan.idColumn].ToString()); BoiToanDataSetTableAdapters.tbl_FeatureRelationTableAdapter featureAdap = new BoiToan.BoiToanDataSetTableAdapters.tbl_FeatureRelationTableAdapter(); featureAdap.DeleteByCharacterID(id); BoiToanDataSetTableAdapters.tbl_CharacterRelationTableAdapter charAdap = new BoiToan.BoiToanDataSetTableAdapters.tbl_CharacterRelationTableAdapter(); featureAdap.DeleteByCharacterID(id); String mota = dt_TinhCachChuan.Rows[lv_TinhCach.SelectedIndices[0]] [dt_TinhCachChuan.MotaColumn].ToString(); adapter.Delete(id, mota); } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); } refreshCharacters(); cb_Type_SelectedIndexChanged(cb_Type, new EventArgs()); } private void bt_ChiTietTC_Click(object sender, EventArgs e) { CharacterRelation frm_Relation = new CharacterRelation(); frm_Relation.Show(); } private void lv_TinhCach_MouseDoubleClick(object sender, MouseEventArgs e) { bt_ChiTietTC_Click(sender, new EventArgs()); 66 } private void bt_AddFeature_Click(object sender, EventArgs e) { if (cb_Type.SelectedIndex < 0) return; InputText frm_inputFeature = new InputText(); frm_inputFeature.Finished += new InputText.EventUpdate(frm_inputFeature_Finished); frm_inputFeature.Show(); idAddFeature = int.Parse(cb_Type.SelectedValue.ToString()); } private void frm_inputFeature_Finished(object sender, String _value) { BoiToanDataSetTableAdapters.tbl_FeaturesTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.tbl_FeaturesTableAdapter(); try { int newID = int.Parse(adapter.getMaxID().ToString()) + 1; _value = correctString(_value.Trim()); if (adapter.GetDataByMota(_value, idAddFeature).Rows.Count > 0) { MessageBox.Show("Đã tồn đặc điểm này!"); return; } adapter.Insert(newID, _value, idAddFeature); } catch { } cb_Type_SelectedIndexChanged(cb_Type, new EventArgs()); } private void bt_RemoveFeature_Click(object sender, EventArgs e) { if (lv_DDNhanDang.SelectedItems.Count 0) { cb_TinhCach.SelectedIndex = 0; cb_TinhCach_SelectedIndexChanged(cb_TinhCach, new EventArgs()); } } private void bt_ThemTC_Click(object sender, EventArgs e) { InputCharactersRelation frm_InputRelation = new InputCharactersRelation(); frm_InputRelation.Show(); frm_InputRelation.Disposed += new EventHandler(frm_InputRelation_Disposed); } private void frm_InputRelation_Disposed(object sender, EventArgs e) { cb_TinhCach_SelectedIndexChanged(cb_TinhCach, new EventArgs()); } private void bt_XoaTC_Click(object sender, EventArgs e) { if (lv_TinhCach.SelectedItems.Count 0) return; lv_DDNhanDang.Items.Clear(); tbl_Relation = new BoiToanDataSet.view_FeatureRelationDataTable(); BoiToanDataSetTableAdapters.view_FeatureRelationTableAdapter adapter = new BoiToan.BoiToanDataSetTableAdapters.view_FeatureRelationTableAdapter(); adapter.FillByFeatureID(tbl_Relation, int.Parse(cb_DacDiem.SelectedValue.ToString())); for (int i = 0; i < tbl_Relation.Rows.Count; i++) { ListViewItem item = new ListViewItem(i.ToString()); item.SubItems.Add(tbl_Relation.Rows[i] [tbl_Relation.MotaColumn].ToString()); int weight = int.Parse(tbl_Relation.Rows[i] [tbl_Relation.weightColumn].ToString()); 72 String qh = "Có"; if (weight == -1) qh = "Khơng có"; item.SubItems.Add(qh); lv_DDNhanDang.Items.Add(item); } } private void bt_RemoveFeature_Click_1(object sender, EventArgs e) { if (lv_DDNhanDang.SelectedItems.Count

Ngày đăng: 26/12/2023, 05:03

Tài liệu cùng người dùng

Tài liệu liên quan