1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình từ điển Anh - Việt bằng C#

34 5,1K 34

Đ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

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 771,38 KB

Nội dung

Trong thời gian thực hiện đề tài, bằng những kiến thức đã học được nhà trường trang bị và những kiến thức tự tìm hiểu từ sách vở, mạng internet… Chúng em đã vận dụng triệt để kiến thức đ

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO CUỐI KÌ Môn: Lập Trình Windows

Trang 2

LỜI MỞ ĐẦU

Ngày nay, cùng với sự phát triển của đất nước, các ngành khoa học, ngành công nghệ thông tin,… Đều sử dụng rất nhiều tài liệu tiếng anh Trong hệ thống giáo dục của Việt Nam hầu hết các trường từ tiểu học, trung học, phổ thông đến các trường cao đẳng-đại học đều đào tạo bộ môn: Tiếng Anh

Do vậy, với mục tiêu nhằm hỗ trợ việc học cho học sinh, sinh viên, việc giảng dạy cho giáo viên ở các trường, hỗ trợ việc biên dịch tài liệu cho các ngành khoa học, công nghệ thông tin, các cơ quan chức năng… Để đỡ tốn thời gian và công sức ngồi tra từng từ trong một cuốn từ điển dày mấy trăm trang, với sự phát triển không ngừng của ngành công nghệ thông tin các phầm mềm từ điển Anh – Việt tiện dụng, hiệu quả cao ra đời ngày càng nhiều

Từ thực tế đó, với mong muốn nhằm góp phần trợ giúp cho việc biên dịch tài liệu tiếng Anh và đóng góp một phần nhỏ cho nền giáo dục của đất nước Dựa trên những kiến thức tích lũy được sau khi học bộ môn: Lập trình Windows, chúng em xin thực hiện đề tài:

“Thiết kế từ điển Anh – Việt có âm thanh và hình ảnh” bằng ngôn ngữ Visual studio C# trên nền Windows Forms Application

Nhóm thực hiện

Trang 3

LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn cô Phan Nguyệt Minh – giáo viên trực tiếp giảng dạy

bộ môn: lập trình Windows, người đã tận tình hướng dẫn chúng em trong suốt thời gian học môn học và thực hiện đề tài học này và toàn thể các bạn lớp: WINP1.C24

Trong thời gian thực hiện đề tài, bằng những kiến thức đã học được nhà trường trang bị

và những kiến thức tự tìm hiểu từ sách vở, mạng internet… Chúng em đã vận dụng triệt để kiến thức đó kết hợp với những kinh nghiệm tích luỹ được từ thực tế, để hoàn thành đề tài một cách tốt nhất Nhưng do còn mới mẻ với ngôn ngữ mới, kinh nghiệm trong lĩnh vực thiết

kế, lập trình và trình độ còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót Với nguyện vọng thiết kế được một phần mềm từ điển Anh – Việt có âm thanh và hình ảnh với

số lượng hơn 380.000 từ tiện dụng , giúp người dùng tiết kiệm thời gian và sức lực

Chúng em rất mong nhận được nhiều sự góp ý của cô và các bạn trong lớp

Một lần nữa, chúng em xin chân thành cảm ơn !

Trang 4

NHẬN XÉT (Của giảng viên hướng dẫn)

Trang 5

MỤC LỤC

I GIỚI THIỆU SƠ LƯỢC VỀ ĐỀ TÀI … 1

1 Giới thiêu: 1

2 Mục tiêu: 1

3 Các chức năng chính: 1

II PHÂN TÍCH YÊU CẦU 2

III CÁC BƯỚC THIẾT KẾ CHƯƠNG TRÌNH TỪ ĐIỂN 3

1 Database: 3

1.1 Tạo database: 3

1.2 Sắp xếp database: 6

1.3 Tối ưu hóa database: 7

2 Kiến trúc chương trình: 9

2.1 Mô hình hoạt động chính của chương trình 9

2.2 Mô tả và giải thích xử lý các lớp, đối tượng phục vụ vho hoạt động của chương trình: 10

2.2.1 Nạp dữ liệu vào form và các mảng: 10

2.2.2 Tìm kiếm dữ liệu 10

2.2.3 Chức năng thêm từ và update sau khi thêm từ: 11

2.2.4 Chức năng xóa từ và update sau khi xóa từ: 13

2.2.5 Speak & Trackwave: 14

2.2.6.Hình ảnh minh họa cho từ: 17

2.2.7 Nhúng google translate vào chương trình: 17

2.2.8 Thay đổi giao diện chương trình: 19

2.2.9 Lưu từ: 20

3 Các thiết kế giao diện chương trình: 21

3.1 Giao diện chính 21

3.2 Giao diện thêm từ: 22

3.3 Giao diện dịch văn bản: 23

Trang 6

3.4 Giao diện lưu từ trong word store: 23

3.5 Giao diện About Us 24

3.6 Các background để người dùng lựa chọn: 24

4 Cài đặt và thử nghiệm: 26

IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: 26

1 Những khó khăn, thuận lợi khi thực hiện chương trình: 26

2 Ưu điểm: 27

3 Nhược điểm: 27

4 Hướng phát triển trong tương lai: 27

5 Phân công thực hiện: 27

6 Tổng kết 28

7 Tài liệu tham khảo 28

Trang 7

I GIỚI THIỆU SƠ LƯỢC VỀ ĐỀ TÀI

1 Giới thiệu:

Ngày nay, tiếng anh là một ngôn ngữ rất thông dụng, được áp dụng ở mọi lĩnh vực

Từ thực tế này nhóm em chọn đề tài: “Thiết kế từ điển Anh-Việt” có âm thanh và hình ảnh Nhưng trong quá trình thực hiện nhóm chúng em cảm thấy thiết kế từ điển Anh-Việt không

là chưa đủ nên nhóm đã phát triển thêm “Từ điển Việt-Anh” và nhiều chức năng khác như: Lưu từ để dể tìm kiếm; dịch một đoạn văn bản (đa ngôn ngữ) khi máy có kết nối internet, sử dụng database linh động để người dùng có thể thêm, xóa, sửa từ người dùng muốn vào chương trình; liên kết tới một số web search online… Để phục vụ một cách tiện lợi nhất cho người dùng

Đề tài của nhóm lấy tên là: “HNC-T UIT DICTIONARY”, với ý nghĩa là từ điển(Dictionary) được thiết kế bởi 3 thành viên trong nhóm(Hường-Ngọc-Châu) học tại trường Đại học công nghệ thông tin(Univercity international of technology)

2 Mục tiêu:

Nhóm chúng em xây dựng đề tài này với mong muốn tạo một chương trình từ điển có nguồn database phong phú, có âm thanh và hình ảnh minh họa, tính năng đa dạng và phong phú, giao diện đẹp…… để trở thành một công cụ hỗ trợ phát triển kỹ năng ngoại ngữ tiện dụng cho người dùng

3 Các chức năng chính:

• Tra từ thông minh: Xem nhanh từ muốn tra cứu, hỗ trợ tra cứu hai ngôn ngữ: Anh – Việt và Việt – Anh

• Nghe phát âm mục từ và nghe đọc văn bản tiếng Anh và tiếng Việt

• Phân tích nghĩa của một từ, cụm từ, một câu, có nguồn database phong phú với hơn 387 398 từ

• Liệt kê các từ liên quan với mục từ đang tra

• Các định nghĩa liên quan đến từ đang tra

• Lưu những từ mà người dùng cần lưu vào Word Store để tiện sử dụng khi cần, dễ dàng cho việc học từ vừng, lưu xong nếu người dùng cảm thấy không cần thiết nữa có thể xóa bỏ

• Dịch một đoạn văn bản (đa ngôn ngữ) khi máy có kết nối internet

Trang 8

• Có thể thêm, xóa, sửa từ mà bạn muốn vào chương trình

• Có hình ảnh minh họa cho từ

• Liên kết với các web search online như: http://translate.google.com.vn, http://vdict.com/ , http://tratu.soha.vn, web do người dùng tự chọn

• Giao diện đẹp tiện dụng cho người dùng, người dùng có thể thay đổi giao diện nếu không thích giao diện hiện hành

II PHÂN TÍCH YÊU CẦU

Tuy đề tài là do nhóm chúng em tự chọn và cô không có yêu cầu gì nhưng nhóm chúng em tự đặt ra yêu cầu cho nhóm như sau:

• Với đồ án từ điển thì việc tìm kiếm trên dabatase nhanh và chính xác rất là quan trọng do vậy đòi hỏi phải sắp xếp, tối ưu hóa Database và các thuật toán tìm kiếm phải tối ưu

• Giao diện đẹp, tiện dụng và có thể thay đổi nếu người dùng không thích giao diện hiện hành

• Chương trình phải chạy ổn định và chức năng hoàn thiện

Trang 9

III CÁC BƯỚC THIẾT KẾ CHƯƠNG TRÌNH TỪ ĐIỂN

1 Database:

1.1 Tạo database:

Những cách tổ chức dữ liệu cho từ điển:

o Tổ chức dữ liệu theo dạng B-cây

o Tổ chức dữ liệu theo dạng cây nhị phân

o Tổ chức dữ liệu theo dạng danh sách đặc

o Tổ chức dữ liệu theo dạng danh sách liên kết

Việc tổ chức dữ liệu cho từ điển khá quan trọng, và hơn hết là làm sao tổ chức thuận lợi cho quá trình tìm kiếm Do đó nhóm thực hiện đã chọn cách tổ chức theo kiểu danh

o Các Node con: <Anhviet></Anhviet>

o Trong Node <AnhViet></AnhViet> chứa 2 Node con khác là:

- Node: <Word></Word>

- Node: <Description></Description>

Đối với từ điển Việt-Anh:

o Node lớn nhất là cặp thẻ <Description></Description>

o Các Node con: <Vietanh></Vietanh>

o Trong Node <Vietanh></Vietanh>chứa 2 Node con khác là:

Trang 10

Từ file AnhViet.txt là một data có sẵn tìm kiếm trên web, chúng em Import vào trong Access để tạo ra file TD_AV.accdb với Microsoft Office 2010

o Ta tao 1 file với tên là TD_AV.accdb

o Khi tạo file xong ta vào được trong giao diện thực thi của Access, chọn thẻ External Data

Trang 11

o Tiếp theo chọn Import dữ liệu vào với dữ liệu là 1 file AnhViet.txt

o Sau khi Import xong, ta sẽ được một file TD_AV.accdb

o Cách Tạo File XML từ file Access là ta Export dữ liệu từ 1 file

TD_AV.accdb sang file XML

o Rồi tuần tự làm theo hướng dẫn mà Access thông báo, thực hiện theo thông báo sẽ có được một file XML

Trang 12

o Trong chương trình này, file XLM được tạo ra với tên do nhóm đặt là

CompareInfo ci = new CultureInfo("vi-VN").CompareInfo;

int i = ci.Compare("-d", "a", CompareOptions.StringSort);

i = ci.Compare("-d", "a");

}

}

Để sắp xếp database sử dụng cách sau: XML -> Mảng -> Sắp xếp Mảng -> XML

Để sắp xếp toàn bộ mảng từ English ta sử dụng IComparer

temp = ci.Compare(word, word2, CompareOptions.OrdinalIgnoreCase);

Trang 13

Hàm này so sánh 2 từ word và word2 theo kiểu so sánh OrdinalIgnoreCase có 3 giá trị trả về:

- Nếu temp=0 thì 2 từ này giống nhau

- Nếu temp<0 thì word đứng trước word2

- Nếu temp>0 thì word sẽ đứng sau word2

 Việc sắp xếp chỉ sử dụng 1 lần khi tạo database, về sau khi ta thêm xóa database vẫn được sắp xếp mà không cần sắp xếp lại

1.3 Tối ưu hóa database:

Đối với từ điển Anh-Việt:

Nội dung của mảng lưu cho file leftright.txt:

0 5 9 24359 43459 83683 104778 122038 140817 151531 164099 180714

182948 185134 200247 220166 228721 239461 271715 273570 294504 340595

362451 371203 377630 385731 386069 386668 387398

Chuổi 29 số này cho ta thấy:

o Trong cơ sở dữ liệu được đọc từ file xml gồm 28 loại kí tự(‘, -, a, b, c, d, e, f, g,

Trang 14

o Int(a) = 65 – 63 = 2 => postion1(ant) trả về giá trị 2 => Vị trí của a trong mảng position: position[2] = 9 Lúc này ta có thể gán left = 9 và right bằng postion[2+1] = 24359 Và mid = (left + right)/2

o Sau khi đã khởi tạo giá trị cho left, right, mid Bắt đầu chạy thuật toán nhị phân như trên

Quá trình trên cũng giúp ta tìm danh sách từ gần đúng, ví dụ gõ a thì danh sách các

từ bắt đầu bằng kí tự a(đã sắp xếp hiện ra) Ví dụ gõ an từ này được so sánh với với các từ trong khoảng từ bắt đầu bằng kí tự a Có 2 trường hợp xảy ra:

Load file leftright.txt vào mảng: bằng hàm publicint[] Load_Position()

 Việc tạo file leftright.txt chỉ tạo 1 lần và được cập nhật mỗi lần thêm, xóa, sửa database

Đối với từ điển Việt-Anh: tương tự như với Anh-Việt chỉ thay đổi nội dung mảng

lưu cho file leftrigth_vi.txt vì database có nhiều kí tự khác nhau

 Nội dung mảng lưu file liftright_vi.txt:

Trang 15

Mảng này có tới 84 số, 84 số này cho ta thấy: Trong cơ sở dữ liệu được đọc từ file xml gồm 83 loại kí tự:a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, X, y, à,

á, â, è, é, ê, ì, í, ò, ó, ô, õ, ù, ú, ý, ă, đ, ĩ, ơ, ư, ạ, ả, ấ, ầ, ẩ, ẫ, ậ, ắ, ẳ, ẵ, ẹ, ẻ, ẽ, ế, ề, ể, ễ,

Click từ trên list box

Nhấn enter hoặc Click vào nút tìm

Nạp dữ liệu vào mảng postion(từ file leftright.txt)

Loaddata() Load danh

sách từ lên list box

Nạp từ vào mảng data

Nạp nghĩa của từ vào mảng datamean

Trang 16

2.2 Mô tả và giải thích xử lý các lớp, đối tượng phục vụ cho hoạt động của chương trình:

2.2.1 Nạp dữ liệu vào form và các mảng:

Xem xét hàm publicvoid Loaddata(string Ele1, string Ele2) trong file Dict.cs:

o Hàm này sử dụng hàm đọc file XML trong file xml.cs là public

XmlNodeList Read_XML(string Element) Và load từ vào mảng data và nghĩa tương ứng vào mảng dataMean

o Chức năng đưa danh sách từ lên list box với đoạn code sau:

for (int i = -1; i < len - 1; i++) {

List_Box.Items.Add(data[i + 1]);

}

o Gọi hàm public int[] Load_Position() trong file Position.cs(dòng code gọi hàm này là pos Load_Position()) để đưa các vị trí trong file leftright.txt vào mảng position(được chia làm 28 phần)

2.2.2 Tìm kiếm dữ liệu:

Bước 1: Khi gõ từ lên ô search, danh sách từ có chuỗi bắt đầu như kí tự trên ô search được load liên tục, sự kiện Search_box_TextChanged trên ô search sẽ giúp load danh sách này liên tục

o Hàm được gọi: public void SameWord(string word)trong file Dict.cs Hàm này sử dụng hàm Compare(string word, ArrayList data, string language)

o Hàm publicint Compare(string word, ArrayList data, string language)

 Các biến truyền vào:

• Word là từ cần tìm

• Data là mảng từ

• Language là loại từ điển

 Trong hàm này, hàm public int Position1(string word, string lang) được gọi để tìm vị trí của từ trong mảng position Code:

• Vị trí bắt đầu của kí tự:

left = position[pos.Position1(word, language)];

• Vị trí kết thúc của kí tự:

right = position[pos.Position1(word, language) + 1];

 Hàm tiến hành so sánh từ bằng hàm ci.Compare(word, word2, CompareOptions.OrdinalIgnoreCase)được cung cấp để so sánh chuỗi về

vị trí trong mảng kết hợp sử dụng thuật toán tìm kiếm nhị phân giúp tìm kiếm nhanh và trả về vị trí của từ trong mảng data (english.data) Có 2 trường hợp xảy ra:

• Tìm ra từ: sẽ sử dụng ở bước 2

Trang 17

• Tìm không ra từ: trong quá trình tìm kiếm, giá trị left tiến dần đến vùng từ có kí tự bắt đầu như các kí tự trên ô search Hàm public void Loadword(int Start, int len)được gọi để cập nhật danh sách từ gần đúng Nếu không có từ gần đúng ô seach sẽ được tô màu cam

o Biến start tương ứng sẽ là giá trị left

o Len là số từ trong danh sách

 Lưu ý option compareOptions.OrdinalIgnoreCase là kiểu sắp xếp, database xml cũng được sắp xếp theo kiểu này để việc tìm kiếm phù hợp và chính xác

 Nghĩa của từ được đưa lên ô Description_text, nghĩa của từ là 1 string được chèn kí tự “\r\n” để giúp xử lý xuống dòng

Bước 2: Khi chức năng tìm tra từ được sử dụng: các sự kiện click, keydown trên search box và list từ

- Hàm Search_Mean(String word, string[] Special_word, ArrayList Words,

ArrayList Description, string language) được gọi

o Giải thích các biến truyền vào:

 Word là từ cần tìm

 Special_word là mảng giúp nhận biết và tô màu các từ đặc biệt trong nghĩa của từ, ví dụ loại từ(danh từ, động từ, tính từ…), chuyên ngành…

 data mảng từ được truyền vào ở đây mảng data (english.data)

 dataMean mảng nghĩa của từ ở đây là mảng dataMean (english.dataMean)

o Hoạt động:

 Hàm public int Compare(string word, ArrayList data, string language) tiếp tục được sử dụng Hàm sẽ trả về vị trí của từ trong mảng data(english.data) và cũng là vị trí nghĩa của từ này trong mảng(english.dataMean) Vì đầu tiên, từ và nghĩa được load vào 2 mảng Vị trí của từ bên mảng này cũng là vị trí nghĩa của nó ở mảng bên kia

2.2.3 Chức năng thêm từ và update sau khi thêm từ:

Trang 18

- Hàm public void AddWord(string Ele1, string Ele2, string Ele3, string Ele4, intcharCount)

o Ele1: element trong file xml, ở đây là thẻ <Dictionary></Dictionary> chỉ cần truyền string Dictionary

o Thêm từ vào file xml, thêm từ vào mảng data

o Gọi hàm publicvoid Update_Position(int j, int max, string word) để update file leftright.txt

- Hàm được sử dụng trong hàm AddWord:

o Hàm compare để tìm vị trí từ cần thêm

o public int Write_Xml(string word, string newWord, string Description, stringEle1, string Ele2, string Ele3, string Ele4) được sử dụng để thêm từ vào file Xml

 Ý nghĩa các biến:

Ngày đăng: 08/06/2014, 09:29

HÌNH ẢNH LIÊN QUAN

2.2.6. Hình ảnh minh họa cho từ: - Lập trình từ điển Anh - Việt bằng C#
2.2.6. Hình ảnh minh họa cho từ: (Trang 23)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w