Professional Documents
Culture Documents
Đề Tài:
Tư vấn tử vi
Giảng viên hướng dẫn: ThS. Nguyễn Thanh Hùng
Lớp: Khoa Học Máy Tính 1 – K5
MỤC LỤC
Trang 4/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Cấu trúc đề tài gồm 3 mục chính được đánh số I đến III, đi từ việc giới
thiệu đề tài và mục đích đề tài đến hướng giải quyết chính và cuối cùng là chi
tiết cài đặt chương trình Demo của nhóm.
Ngoài ra phần đầu đề tài là “giới thiệu sơ lược nội dung đề tài” và phần
cuối là “Một số tài liệu tham khảo” được nhóm sử dụng.
Một nội dung quan trong của đề tài là phần thuật toán sử dụng và chi tiết
cài đặt thuật toán của nhóm.
Đề tài với mục đích demo là chính giúp chúng ta hiểu được vai trò quan
trọng của việc xây dựng các hệ chuyên gia, và công dụng hữu ích của chúng
cho con người, hiểu được các bước cơ bản để hiện thực hóa một hệ chuyên gia.
Sau đây là nội dung chi tiết của đề tài, mọi ý kiến đóng góp xin gửi về
nhóm thực hiện Nhóm 8 Lớp KHMT1 - K5 Trường ĐH Công Nghiệp Hà Nội.
Ngày nay, công nghệ thông tin là lĩnh vực không thể thiếu trong đời sống
con người. Hầu như trong mọi ngành, mọi lĩnh vực công nghệ thông tin đều có
mặt. Các sản phẩm phần mền tạo ra đã phục vụ và đem lại không ít lợi ích về
mặt kinh tế như các phần mền quản lý, thương mại điện tử, các dịch vụ mạng
truyền thống v.v…. Đặc biệt các sản phẩm của công nghệ thông tin ngày nay
còn đóng vai trò như một chuyên gia trong mọi lĩnh vực, nó đã giải quyết được
rất nhiều vấn đề thường ngày mà người bình thường không thể làm được. Các
hệ chuyên gia này chẩn đoán hay đưa ra các quyết định từ tập các giả thiết đầu
vào.
Trong cuộc sống hằng ngày, có rất nhiều người muốn biết trước số mình
sau này sướng hay khổ, giàu hay nghèo hoặc một số người dùng bói toán để
giảm stress... Cho nên yêu cầu của con người chúng ta cần có một hệ chuyên
gia giúp họ dự đoán tương lai của mình như thế nào.
Cũng xuất phát từ yêu cầu đó, chúng tôi chọn đề tài “Tư Vấn Tử Vi”.
Mọi sự đóng góp ý kiến xin liên hệ nhóm 8, lớp KHMT1 - K5, trường
ĐH Công Nghiệp Hà Nội.
Trang 6/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Trong thời gian thực hiện đề tài, nhóm đã họp mặt nhiều lần để bàn luận
và góp ý lẫn nhau giúp hoàn thiện đề tài. Các cuộc họp của nhóm xoay quanh
các mục đích nghiên cứu của đề tài và bàn luận về phương pháp từ việc thu thập
tài liệu đến việc nên lấy phần nào của tài liệu đưa vào bài… Chúng em xin trân
thành cảm ơn sự giúp đỡ nhiệt tình từ phía các thầy cô giáo khoa Công Nghệ
Thông Tin trường ĐH Công Nghiệp Hà Nội đã giúp đỡ chúng em trong việc
cung cấp tài liệu và hướng dẫn đọc hiểu tài liệu và gỡ bỏ những vướng mắc gặp
phải. Chúng em cũng xin trân thành cảm ơn thầy Trần Thanh Hùng đã tận tình
chỉ bảo, giúp đỡ chúng em để chúng em không đi sai hướng và hoàn thành tốt
đề tài.
Hoạt động của nhóm theo hướng tất cả các thành viên cùng nghiên cứu
chung các vấn đề khó, khi có vướng mắc hay phát hiện điều mới thì cùng nhau
tranh luận để tìm ra hướng giải quyết thích hợp.
Kết quả nhận được sau các cuộc họp của nhóm là sự thành công trong
công việc của nhóm. Nhóm đã hoàn thiện việc xây dựng mục đích đề tài, đề
cương vắn tắt các nội dung cần triển khai và bàn giao công việc cụ thể cho các
Trang 7/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
thành viên. Bằng sự lỗ lực thật sự của bản thân các thành viên trong nhóm cuối
cùng nhóm đã hoàn thiện đề tài tốt đẹp.
Hệ chuyên gia xây dựng được phải có khả năng dự đoán tương lai của
một người nào đo
Cần dự đoán tương lại và hiện tại một cách chuẩn xác , giải thích rõ ràng,
giao diện cần có tính hướng người sử dụng …
Bài toán là một hệ chuyên gia được xây dựng nhằm dự đoán tương lai
của người sử dụng nó hoặc nó có thể giúp con người phần nào giảm đi áp lực
khi gặp một vấn đề khó giải quyết nào đó. Với mong muốn một phần nào đó có
thể tư vấn cho người sử dụng hệ thống biết tương lai mình như thế nào, số mình
sướng hay khổ… , chương trình có thể đưa ra các lời khuyên hoặc nhận xét về
Trang 8/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
con người bạn .Người sử dụng chỉ cần trả lời đúng hoặc sai các câu hỏi về nhận
dạng, hoặc dấu vết trên người của mình trên hệ thống và từ đó hệ thống sẽ đưa
ra các nhận xét hoặc lời khuyên cho người dùng
Ví dụ: người dùng sẽ nhận được câu dự đoán là “số bạn xung túc”
nếu tất cả các đặc điểm sau: dáng vóc cao, nốt ruồi ở mặt, bàn tay dài,trán cao,
trán rộng. đều được người dùng cung cấp là “True” (Đúng).
Để làm được các yêu cầu trên thì hệ thống cần có một cơ sở tri
thức về các triệu chứng (hay các sự kiện cụ thể được thu thập từ người dùng),
các luật suy diễn cụ thể cho tử vi dựa trên các đặc điểm về hình dáng được cung
cấp. Với tính chất demo là chính nhóm chúng em xây dựng hệ chuyên gia để dự
đoán 9 loại “số” con người khác nhau mà khi các thầy bói thường hay phán là :
“số đào hoa”, số phát đạt”, sô sung túc”, “số lận đận”, số bình an”, số nghèo
khổ”, “số thọ lâu”, số phú quý”, “bệnh thủy đậu”. Tương ứng với các “số” đó
thì có các đặc điểm về hình dáng con người tương ứng.
Sau đây sẽ là định nghĩa chi tiết về các “số của con người”, các đặc điểm
hình dáng của con người hay gặp và các nhận xét mà chương trình đưa ra.
- Một người có thể được gọi là “Số sung túc” khi người đó có
những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở
mặt”, “Bàn tay dài”, “trán cao”, “trán rộng”.
- Một người có thể được gọi là “Số đào hoa” khi người đó có
những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở
mặt”, “nốt ruồi ở tay”, “bàn tay vuông”, “bàn tay ít đường chỉ”.
Trang 9/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
- Một người có thể được gọi là “Số nghèo khổ” khi người đó có
những đặc điểm hình dáng như: “có mạt trái xoan”, “gò má
cao”, “bàn tay ngắn” , “bàn tay vuông”..
- Một người có thể được gọi là “Số lận đận” khi người đó có
những đặc điểm hình dáng như: Có mặt trái xoan”, “gò má
thấp”, “trán cao”, “trán rộng”.
- Một người có thể được gọi là “Số thọ” khi người đó có những
đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở mặt”, “nốt
ruồi ở chân”, “cổ tròn”,“gò má cao””.
- Một người có thể được gọi là “Số bình an” khi người đó có
những đặc điểm hình dáng như: “Dáng vóc cao”, “nốt ruồi ở
tay”, “bàn tay vuông”.
- Một người có thể được gọi là “Số tài giỏi” khi người đó có
những đặc điểm hình dáng như: “Dáng vóc cao”, “trán cao”,
“bàn tay dài”.
- Một người có thể được gọi là “Số phát đạt” khi người đó có
những đặc điểm hình dáng như: “trán rộng”, “cổ tròn”, “nốt
ruồi ở mặt”, “bàn tay dài”.
- Một người bị coi là mắc “bệnh thủy đậu” khi người đó có các
triệu chứng như: “sốt”, “da nổi đỏ”, “mụn nước trên da”.
a) Quy ước
Trang 10/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Trang 11/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Trang 12/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Từ sơ đồ suy diễn trên ta có được tập 9 luật như sau: (dấu ^ biểu thị
cho phép hội)
- Luật 1: a^b^c->5
- Luật 2: a^b^d->6
- Luật 3: a^b^e^f^g->1
- Luật 4: a^o^y->9
- Luật 5: a^o^u^p->8
- Luật 6: f^h^r^g^x->2
- Luật 7: f^h^t^i^j->4
- Luật 8: k^l^m->3
Trang 13/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
- Luật 9: n^u^q->7
1) Mô tả bài toán
Bài toán đặt ra khi xây dựng hệ chuyên gia Dự đoán về căn số tương lai
con người:
- Thu nhận các sự kiện do người dùng cung cấp miêu tả các triệu
chứng mà họ gặp phải.
- Áp dụng các luật có sẵn từ việc làm việc với các chuyên gia từ
trước, được lưu trong một file dạng *.txt, để đưa ra dự đoán và
nhận xét hợp lý.
Các bước xây dựng hệ chuyên gia dự đoán “Số con người”:
- Xây dựng cấu trúc dữ liệu biểu diễn được các triệu chứng khác
nhau và chỉ rõ giá trị của nó là:
Xây dựng: một lớp các sự kiện “SuKien” biểu diễn các đặc điểm hình dáng
là các mệnh đề có giá trị “True” hoặc “False”.
- Xây dựng cấu trúc dữ liệu lưu trữ cơ sở tri thức của hệ chuyên
gia để sử dụng trong suy luận và đưa ra được tư vấn
Trang 14/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Lựa chọn của nhóm: xây dựng tập các luật sản xuất tổ chức trong một file
*.txt.
- Xây dựng thuật toán có thể để tiến hành suy diễn từ tập các sự
kiện được cung cấp bởi người dùng và tập các luật (Rules) có sẵn
trong cơ sở tri thức để xác định được bệnh mà người dùng gặp
phải và từ đó đưa ra nhận xét hợp lý.
Lựa chọn của nhóm: sử dụng tư tưởng chính của thuật toán suy diễn tiến để
suy diễn, nghĩa là “lập luận từ các sự kiện, sự việc “tiền đề” để rút ra kết luận”
(Trích Giáo trình Hệ chuyên gia, ĐH Đà Nẵng).
Các sự kiện cho ta biết rằng người dùng có hay không bị các đặc điểm
hình dáng tùy vào giá trị của sự kiện là True hay False do người dùng cung cấp
qua giao diện người dùng.
Mỗi sự kiện trong chương trình sẽ là một đối tượng trong lớp “SuKien”,
có:
/* đoạn text mô tả đặc điểm hình dáng mà sự kiện biểu diễn, chẳng hạn sự kiện
có text là “dang voc cao” sẽ chứa giá trị của đặc điểm hình dáng “dáng vóc
cao” */
Trang 15/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
// giá trị của sự kiện cho biết người dùng có hay không bị triệu chứng
(Xin xem chi tiết trong class SuKien trong chương trình Demo kèm theo)
Các luật là các tri thức chuyên gia được biểu diễn sao cho việc sử dụng
luật cho ta kết quả là dự đoán người dùng có “Số như thế nào đó”.
Các luật trong chương trình được biểu diễn theo cấu trúc gồm:
- Phần trái luật: (hay còn gọi là bộ khởi động) chứa danh sách các
sự kiện cần có để luật được áp dụng và các toán tử ^(hội),
@(tuyển) , ~(phủ định).
- Phần phải luật: chứa sự kiện biểu diễn các loại bệnh (cụ thể trong
chương trình là các bệnh từ 1 đến 9)
- Khi phần trái luật được thỏa mãn (nhận giá trị logic bằng True)
thì luật được khởi động và phần phải luật được áp dụng, nói cách
khác là người dùng “có số ” như thế nào đó ở vế phải luật.
Cụ thể trong chương trình mỗi luật sẽ là một đối tượng thể hiện của lớp
“Luat” gồm có:
Trang 16/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
// gồm phần trái luật và phần phải luật và dấu ngăn cách “->” giữa chúng
(Xin xem chi tiết trong class Luat trong chương trình Demo kèm theo)
Các luật trong chương trình sẽ được lưu trữ dưới dạng các xâu trong một
file *.txt (Luat.txt) trong thư mục Debug của chương trình.
Danh sách các sự kiện là một mảng một chiều với mỗi phần tử của nó là
một đối tượng sự kiện. Danh sách này được dùng để duyệt qua các sự kiện được
cung cấp bởi người dùng từ đó có được câu trả lời là: liệu có hay không luật nào
đó trong tập cơ sở luật được khởi động và áp dụng.
Cụ thể trong chương trình danh sách sự kiện được biểu diễn là một lớp
gồm có:
(Xin xem chi tiết trong class DanhSachSuKien trong chương trình Demo
kèm theo)
Trang 17/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Tương tự danh sách sự kiện, danh sách luật này là một mảng một chiều
biểu diễn cho tập các luật có trong cơ sở tri thức của chương trình. Danh sách
này dùng để duyệt qua các luật và cho biết loại bệnh mà người dùng mắc phải
theo đúng luật.
Cụ thể trong chương trình danh sách luật được biểu diễn là một lớp gồm
có:
o private Luat[] dsLuat;// mảng một chiều lưu trữ các luật
(Xin xem chi tiết trong class DanhSachLuat trong chương trình Demo kèm
theo)
4) Thuật toán
Với chi tiết phần mô tả bài toán, cấu trúc dữ liệu như trên, sau đây sẽ là
thuật toán mà nhóm sử dụng để xây dựng hệ chuyên gia của mình.
- Các sự kiện sẽ được thu nạp từ người dùng theo cách thức là:
“chuyên gia” hỏi , “người dùng” trả lời bằng cách xác nhận sự
kiện “chuyên gia” hỏi là đúng hay sai (True or False).
Trang 18/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
- Khi nhận được thông tin từ “người dùng” thì “chuyên gia” sẽ sử
dụng các “suy luận logic” theo thuật toán để xác định bệnh mà
người dùng mắc phải.
o Xác nhận được người dùng có “số” như thế nào đó bằng cách
sử dụng luật nào đó trong cớ sở luật đã có.
o Đã duyệt qua tất cả các sự kiện hoặc các luật mà không có luật
nào được áp dụng (chưa có luật xây dựng cho danh sách sự kiện
mà người dùng cung cấp).
- Sử dụng tư tưởng của thuật toán suy diễn tiến để suy luận logic
tại mỗi bước.
- Cụ thể là coi mỗi lần “chuyên gia” hỏi và “người dùng” trả lời là
một bước lặp của vòng While (điều kiện dừng chưa thỏa).
Sử dụng 3 danh sách là: dsLuatDaHoi (danh sách các luật đã được
chuyên gia hỏi rồi) và dsLuatCoTheHoi (danh sách các luật còn có thể hỏi,
chưa bị phủ định bởi người dùng), dsLuatChuaHoi (danh sách các luật chưa
được hỏi tới). Thuật toán gồm 3 bước cụ thể như sau:
Khởi tạo danh sách sự kiện ban đầu sẽ là danh sách mà tất cả các sự kiện
đều có giá trị là False (sai) (người dùng không có nhận xét nào về “số” của
Trang 19/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
mình).
Hỏi người dùng về một sự kiện nào đó theo một nguyên tắc nào đó.
- Duyệt qua các tất cả các luật có trong danh sách luật mà có sự
kiện đang hỏi (nằm bên vế trái luật) xem nếu luật đó là luật “đã
được hỏi rồi” thì đưa nó vào dsLuatDaHoi
- Các luật trong cơ sở tri thức mà có chứa sự kiện đang xét (nằm
bên vế trái luật) sẽ được đưa vào dsLuatDaHoi và được loại bỏ
khỏi dsLuatChuaHoi.
Lặp lại bước 2 cho đến khi 1 trong 2 trường hợp sau sảy ra
- Có luật được áp dụng: thì kết luận người dùng mắc bệnh tương
ứng mà luật biểu diễn và thông báo cho người dùng.
Trang 20/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
- Không có luật nào được áp dụng cả (hay nói cách khác tập luật
đang xét bị rỗng), thông báo ra cho người dùng biết
(dsLuatCoTheHoi = {rỗng}).
Nhóm sử dụng ngôn ngữ C# để xây dựng chương trình của mình.
o Con số đầu tiên lưu trữ số lượng luật, sau đó là dấu ‘:’ (dấu hai
chấm) để ngăn cách với phần tiếp theo.
o Tiếp theo là các ký tự biểu diễn cho tên của luật trong tập luật,
giữa tên các luật được ngăn cách nhau bởi dấu ‘,’ (dấu phẩy),
sau đó là dấu ‘;’ (dấu chấm phẩy) để ngăn cách với phần tiếp
theo.
o Tiếp theo là chi tiết phần thân luật, mỗi thân luật được ngăn
cách với nhau bằng dấu ‘,’(dấu phẩy).
Trang 21/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
cách nhau bằng dấu ‘;’, kết thúc file bằng dấu ‘.’, các thành phần
trong mỗi phần ngăn cách nhau bằng dấu ‘,’.
o Số đầu tiên lưu trữ số các sự kiện có trong danh sách sự kiện,
sau đó là dấu ‘:’ ngăn cách với phần 2.
o Phần 3 là danh sách phần text của luật hay chính là phần xâu
biểu diễn cho triệu chứng mà sự kiện cần xác nhận.
2) Cài đặt
Cụ thể các modul chính đã được cài đặt trong chương trình gồm:
Chi tiết các modul mời xem trong chương trình Demo kèm theo của
nhóm.
Lưu ý: Để chạy được chương trình yêu cầu là phải có các file *.txt lưu
trữ luật (Luat.txt) và sự kiện (SuKien.txt) được đặt sẵn trong thư mục Debug
của Project “He chuyen gia” kèm theo.
Sau đây là hướng dẫn cụ thể các bước sử dụng chương trình:
Trang 22/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Để khởi động chương trình bạn vào thư mục Debug của Project “He
chuyen gia” kèm theo bài báo cáo, rồi click đúp vào file “He chuyen gia.exe”.
Giao diện WindowsForm khởi động đầu hiện ra là form “Main” giống như sau:
Khi đó dưới khay hệ thống, gần đồng hồ sẽ xuất hiện một biểu tượng nhỏ
của chương trình (biểu tượng được sử dụng là biểu tượng của bói toán mà các
thầy bói hay dùng).
- tại giao diện form “Main” click chuột trái vào menu “TƯ VẤN”.
Trang 23/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Thao tác có thể làm trong 1 phiên tư vấn cụ thể như sau:
- Trả lời các câu hỏi từ hệ thống bằng cách xác nhận qua hai nút
và .
- Sau khi tìm ra bệnh của bạn hệ thống sẽ tư vấn cho bạn như thế
này: (Xem hình bên trang kế)
- Sau khi nhận được tư vấn bạn có thể lưu phiên làm việc lại bằng
- Tại giao diện này bạn cũng có thể chọn chọn nút để
mở form “QuanLyLuat” và thực hiện các thao tác với form
“QuanLyLuat” sẽ được trình bày bên dưới.
Trang 24/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Để mở tiến hành quản lý các luật và sự kiện cụ thể bạn có các cách sau:
Trang 25/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
- Load sự kiện mới vào “rBoxSK”: click chọn menu “Tùy Chọn/
Load Sự Kiện”.
- Load luật mới vào “rBoxLuat”: click chọn menu “Tùy Chọn/
Load Luật”.
Tại giao diện bất kỳ trong chương trình, khi bạn cần thông tin trợ giúp từ
nhóm hãy nhấn “alt+g”.
Kết quả khi chạy chương trình: Với 9 luật suy diễn và 20 đặc điểm hình
dáng tương ứng 9 “số con người” chương trình đã đưa ra các tư vấn chính xác
cho người dùng.
Chương trình có thể dự đoán được “số con người” với những đặc điểm
hình dáng cho trước. Và với “số con người” vừa dự đoán được chương trình có
Trang 26/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
thể đưa ra một số lời khuyên và nhận xét giúp con người sống tốt đẹp hơn.
Chương trình sử dụng các cấu trúc dữ liệu kiểu mảng một chiều để lưu
trữ các luật, các sự kiện vốn là các cấu trúc dữ liệu quen thuộc và dễ cài đặt, dễ
sử dụng và cũng khá hiệu quả trong việc biểu diễn dữ liệu. Thuật giải có độ
phức tạp O(n) (n là số các đặc điểm hình dáng được duyệt qua) có thể chấp
nhận được và là thuật giải hữu hạn các bước lặp.
Chương trình chạy tốt và đưa ra các tư vấn chính xác cho người dùng tùy
theo các sự kiện từ việc xác nhận các đặc điểm hình dáng của người dùng sau
một số lượng các “giao tiếp” (giữa người dùng và hệ thống) nhất định.
Nếu có thể, chương trình có thể được phát triển theo hướng dự đoán
tương lai cho những đối tượng khác nhau, lứa tuổi khác nhau để việc dự đoán
đưa ra các nhận xét cho người sử dụng có thể được chính xác hơn, cụ thể hơn.
Với đúng ý tưởng và cách thức xây dựng như trên, chương trình có thể
phát triển hơn trong việc tăng số lượng luật và sự kiện để có thể dự đoán thêm
cho tương lai con người chuẩn xác hơn.
Trang 27/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
http://it4student.com/forum/he-chuyen-gia/
http://hauionline.com/showthread.php?t=41888&page=2?
1.55.218.168#allowed
v.v…
LỜI KẾT
Trang 28/ 29
BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5
Trong thời gian có hạn, bằng sự lỗ lực của nhóm và sự hướng dẫn giúp
đỡ nhiệt tình từ các thầy cô giáo đặc biệt là thầy Trần Thanh Hùng và các bạn
trong lớp Khmt1-K5 cuối cùng nhóm chúng em cũng đã hoàn thành được bài
tập lớn của mình một cách tốt đẹp. Với đề tài này chúng em đã tích lũy được
thêm nhiều kiến thức cũng như những kỹ năng mới mẻ đó là thành quả lớn nhất
mà chúng em nhận được. Vì vậy chúng em xin trân trọng gửi lời cảm ơn đến
các thầy cô và các bạn đã giúp đỡ chúng em hoàn thành đề tài này.
Trang 29/ 29