Bao Cao Do An Huan docx

21 475 2
Bao Cao Do An Huan docx

Đ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 BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG **************************** BÁO CÁO PROJECT 1 Đề tài: SO SÁNH VÀ KIỂM ĐỊNH NỘI DUNG VĂN BẢN VỚI CƠ SỞ DỮ LIỆU CÓ SẴN Giảng viên hướng dẫn: TS. Nguyễn Hữu Phát Nhóm sinh viên thực hiện: Họ Và Tên Nguyễn Văn Huân Tạ Đức Giang Dư Quốc Hưng MSSV 20101598 20101439 20103179 Lớp ĐTVT 02 – K55 ĐTVT 01 – K55 CN 04 – K55 Hà Nội, 5-2013 LỜI NÓI ĐẦU Trong những năm gần đây, lập trình hướng đối đượng đã trở lên gần gũi nhờ sự ra đời liên tiếp của các ngôn ngữ lập trình. Sức mạnh của phương pháp lập trình hướng đối tượng thể hiện ở chỗ khả năng mô hình hóa hệ thống dựa trên các đối tượng thực tế, khả năng đóng gói và bảo vệ an toàn các dữ liệu, khả năng dùng lại mã nguồn để tiết kiệm chi phí và tài nguyên. Đặc biệt, khả năng chia sẻ mã nguồn trong cộng đồng lập trình viên chuyên nghiệp. Những điểm mạnh này hứa hẹn sẽ thúc đẩy phát triển một môi trường lập trình tiên tiến cùng với nên công nghiệp lắp ráp phần mềm với các thư viện có sẵn. MỤC LỤC CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề Ngày nay, khoa học và công nghệ đang có sự phát triển vượt bậc, đặc biệt là công nghệ thông tin nói chung cũng như internet nói riêng. Việc tìm kiếm thông tin, tài liệu trên internet đã trở nên dễ dàng hơn bao giờ hết. Tuy nhiên, bên cạnh những lợi ích mà nó mang lại, còn có nhiều bất cập nảy sinh. Trong đó, vấn đề ăn cắp bản quyền là một vấn đề nhức nhối và làm đau đầu các nhà kiểm định. Nhằm đưa ra phương án giải quyết vấn đề trên, nhóm chúng em đã nghiên cứu đề tài “So sánh và kiểm định nội dung văn bản với cơ sở dữ liệu có sẵn”. Mục đích của đề tài nhằm đưa ra giao diện trực quan giúp người dùng có thể dễ dàng nhận biết mức độ giống nhau giữa hai văn bản, qua đó có thể đánh giá được nội dung văn bản có phải là sao chép hay không. Chúng em xin gửi lời chân thành cảm ơn tới TS. Nguyễn Hữu Phát đã hướng dẫn, chỉ bảo tận tình và tạo điều kiện cho chúng em trong suốt quá trình thực hiện đề tài. Nhóm sinh viên thực hiện đề tài: Nguyễn Văn Huân Tạ Đức Giang Dư Quốc Hưng 1.2 Mục tiêu của đề tài Mục tiêu của đề tài là so sánh được mức độ giống nhau giữa các văn bản và làm nổi bật chúng trên giao diện trực quan của người dùng. Đồng thời đưa ra tỉ lệ phần trăm để đánh giá giá trị trên. Từ đó , người quản lí có thể giải quyết được các vấn đề còn lại giúp việc xác minh tính chính xác của văn bản gốc có bị sao chép hay ăn cắp bản quyền hay không. 1.3 Giới hạn của đề tài Do điều kiện thời gian và kinh nghiệm còn hạn chế, đề tài mới chỉ dừng lại ở việc so sánh nội dung hai văn bản kích thước nhỏ, chưa triển khai được trên hệ thống cơ sở dữ liệu lớn, chưa có khả năng đọc được nhiều định dạng văn bản khác nhau. Cùng với đó là những bất cập khi chưa cải tiến lên được so sánh 2 văn bản online. CHƯƠNG 2: GIẢI PHÁP VÀ CÔNG CỤ 2.1 Tổng quan về ngôn ngữ lập trình Java 2.1.1 Java là gì? Thập kỷ 90 chứng kiến một sự phát triển như vũ bão của mạng Internet, kèm theo đó là vô vàn các ứng dụng trên các môi trường, hệ điều hành (OS) và các hệ xử lý (CPU) khác nhau. Tuy nhiên có một điểm hạn chế lớn là người lập trình phải rất vất vả khi chuyển đổi các ứng dụng của mình để các hệ thống khác có thể sử dụng được. Ngày 23/5/1995, công ty máy tính Sun Microsystems đã giới thiệu một công cụ lập trình mới - ngôn ngữ Java - nhằm khắc phục những khó khăn đó. Đặc điểm nổi bật nhất của Java là nó không phụ thuộc vào hệ điều hành và bộ xử lý. Điều này cho phép một ứng dụng viết bằng Java có thể được thực hiện trên bất kỳ hệ điều hành và hệ xử lý nào có hỗ trợ Java. Do vậy, người lập trình chỉ cần viết ứng dụng bằng Java đúng một lần, sau đó có thể sử dụng ứng dụng này trên các hệ điều hành khác nhau như Windows95, WindowsNT, Mac OS, Unix, theo phương châm: "viết một lần, sử dụng ở bất kỳ đâu". Có thể định nghĩa một cách chính xác hơn về Java: "là ngôn ngữ lập trình hướng đối tượng, được thiết kế độc lập với hệ điều hành, cho phép người lập trình viết chương trình một lần và có thể sử dụng tại bất kỳ đâu". Không chỉ giới thiệu ngôn ngữ lập trình, Sun Microsystems còn đưa ra hàng loạt công cụ hỗ trợ người lập trình phát triển các ứng dụng bằng Java, như Java Developer Kit, JavaBeans, HotJava Ngôn ngữ Java có cú pháp rất giống với ngôn ngữ C/C++ (là một ngôn ngữ rất mạnh được dùng phổ biến hiện nay), tuy nhiên nó đã được thay đổi khá nhiều để đáp ứng khả năng độc lập với hệ điều hành. Nền tảng của ngôn ngữ Java là các class. Các class đóng vai trò như những đối tượng, người lập trình khi xây dựng ứng dụng sẽ sử dụng một số class chuẩn của hệ thống, đồng thời có thể tự mình xây dựng class khác đáp ứng yêu cầu công việc. Java là ngôn ngữ dễ học, nó lược bớt những lệnh thừa và rườm rà của C/C++ để người lập trình chú trọng vào việc viết chương trình. Đồng thời, nó còn hạn chế người lập trình không can thiệp quá sâu vào hệ thống. Hiện nay Java được ứng dụng rất rộng rãi, chủ yếu là các ứng dụng được viết trên Internet nhằm khai thác tối đa khả năng của nó trong lĩnh vực viễn thông, truyền hình, mạng, và các máy tính đơn lẻ. Hiện tại các ứng dụng viết bằng Java khi thực hiện còn chậm hơn so với các ứng dụng được xây dựng thông thường, tuy nhiên hầu hết các nhà phát triển phần mềm đều cho rằng tốc độ sẽ được cải thiện và Java sẽ là ngôn ngữ lập trình của tương lai. Có thể nói rằng sự ra đời của Java đánh dấu một cuộc cách mạng mới trong lĩnh vực Công Nghệ Thông Tin. Cuộc cách mạng này kéo theo một loạt những thay đổi: các ứng dụng dần được thay thế bằng Java, các thế hệ máy tính sử dụng những vi mạch có khả năng hỗ trợ Java, Làm quen với Java sẽ giúp chúng ta tiếp cận được với những công nghệ mới nhất của Công Nghệ Thông Tin. 2.1.2 Các đặc điểm của Java * Làm thế nào để viết chương trình bằng Java? Như đã nói ở trên, Java rất giống C/C++. Trên thị trường hiện nay có nhiều bộ công cụ lập trình cho Java: Java Workshop của Sun Microsystems, Visual J của Microsoft, Symantec Cafe của Symantec Tất cả đều có điểm chung là hỗ trợ tối đa cho người lập trình. Sun Microsystems còn đưa ra khá nhiều phần mềm cung cấp sẵn các đối tượng class để người lập trình sử dụng. Ngôn ngữ Java xây dựng trên nền tảng các đối tượng (class). Toàn bộ chương trình được viết bao gồm nhiều đối tượng, mỗi đối tượng được lưu vào một tập tin có phần mở rộng là .java. Để dịch Java, lập trình viên sử dụng chương trình Java đi kèm theo bất kỳ công cụ lập trình nào. * Môi trường hoạt động: Đặc điểm nổi bật nhất của Java là độc lập với hệ điều hành và hệ xử lý. Điều này cho phép Java có thể hoạt động trên bất kỳ môi trường nào. Với ưu thế này, Java đang dần thâm nhập vào rất nhiều lĩnh vực khác nhau trong thế giới Internet. * Khả năng xây dựng ứng dụng: Các ứng dụng Java hiển nhiên phải được xây dựng dựa trên ngôn ngữ Java, do đó nó phụ thuộc rất nhiều vào sự hỗ trợ từ Sun Microsystems và các hãng cung cấp thư viện cho lập trình Java. Một điểm hạn chế nữa của Java là tốc độ. Do phải hoạt động thông qua máy tính ảo JVM nên tốc độ thực hiện ứng dụng của Java khá chậm. * Phân loại: Chương trình xây dựng bằng Java được chia làm hai loại: Java Applet và Java Application. Java Applet là các đối tượng được thực hiện trên trình duyệt Web. Khi thực hiện trên các trình duyệt Web, Java Applet cũng tạo ra các hiệu ứng như một ứng dụng bình thường, tuy nhiên các thông tin cho phép Java Applet thực hiện lại được đưa từ các trang Web. Java Application (Java App) là những ứng dụng độc lập, tương tự như những chương trình có đuôi .EXE hay đuôi .COM thông thường. Việc thực hiện Java App đơn giản hơn Java Applet vì chúng không cần phải thông qua trình duyệt Web. Java Virtual Machine (JVM) đóng vai trò rất quan trọng để các ứng dụng Java có thể thực hiện được. Nó hoạt động như một máy tính ảo, cũng có bộ lệnh, cấu trúc dữ liệu, bộ nhớ, Khi các ứng dụng Java (sau khi dịch, các ứng dụng viết bằng Java sẽ có phần mở rộng là class) thực hiện, JVM tiến hành phân tích mã trong class đó thành bộ lệnh của JVM rồi thực hiện giống như máy tính PC thao tác với các ứng dụng thông thường. Bởi vậy, các class sau khi dịch có thể được thực hiện trên bất kỳ hệ điều hành nào thông qua máy tính ảo JVM. Hiện tại, JVM được xây dựng cho hầu hết các hệ điều hành và hệ xử lý hiện có, điều này có nghĩa là các ứng dụng viết bằng Java có đầy đủ điều kiện để phát triển. 2.1.3 Các hướng phát triển ứng dụng Java 2.1.3.1 Java và ứng dụng Console Ứng dụng Console là ứng dụng nhập xuất ở chế độ văn bản tương tự như màn hình Console của hệ điều hành MS-DOS. Lọai chương trình ứng dụng này thích hợp với những ai bước đầu làm quen với ngôn ngữ lập trình java. Các ứng dụng kiểu Console thường được dùng để minh họa các ví dụ cơ bản liên quan đến cú pháp ngôn ngữ, các thuật toán, và các chương trình ứng dụng không cần thiết đến giao diện người dùng đồ họa. 2.1.3.2 Java và phát triển ứng dụng Desktop dùng AWT và JFC. Việc phát triển các chương trình ứng dụng có giao diện người dùng đồ họa trực quan giống như những chương trình được viết dùng ngôn ngữ lập trình VC++ hay Visual Basic đã được Java giải quyết bằng thư viện AWT và JFC. JFC là thư viện rất phong phú và hỗ trợ mạnh mẽ hơn nhiều so với AWT. JFC giúp cho người lập trình có thể tạo ra một giao diện trực quan của bất kỳ ứng dụng nào. Liên quan đến việc phát triển các ứng dụng có giao diện người dùng đồ họa trực quan chúng ta sẽ tìm hiểu trong Project này. 2.2 Xủ lý chuỗi và văn bản trong Java Java cung cấp một số phương thức rất mạnh để xử lý chuỗi ký tự: * Khai báo và khởi tạo: - Khai báo một xâu rỗng Ví dụ: String str1 = new String(); - Khai báo và khởi tạo một xâu bằng một chuỗi cho trước: Ví dụ: String str2 = new String(“Hello World”); - Khai báo và khởi tạo một xâu bằng một mảng kí tự cho trước: Ví dụ: char ch[ ] = {‘a’,’b’,’c’,’d’,’e’}; String str3=new String[ch]; - Khai báo và khởi tạo một xâu bằng cách chọn một vài kí tự trong một mảng kí tự cho trước: Ví dụ: char ch[ ] = {‘a’,’b’,’c’,’d’,’e’}; String str4 = new String[ch,0,2]; Kết quả str4 là xâu “ab”, vì khởi tạo này sẽ khởi tạo xâu str4 là lấy 2 kí tự từ vị trí thứ 0. * Thao tác nối chuỗi: - Cộng 2 chuỗi bằng toán tử “+” Ví dụ: String str1 = new String(“Hello World”); System.out.printf(“Toi muon noi ”+str1); Kết quả trên màn hình: “Toi muon noi Hello World” Chú ý: Java có khả năng tự chuyển bất cứ dữ liệu kiểu số nào khi cộng vào String. Ví dụ: int n=100; Float m=100.123; System.out.printf(“So nguyen la ”+n+”, so thuc la “+m); Kết quả sẽ in ra chuỗi số: “So nguyen la 100, so thuc la 100.123”. Khi cộng chuỗi bằng dấu cộng, kết quả sẽ đưa ra bằng cách nỗi 2 chuỗi vào vị trí cuối cùng của chuỗi đầu tiên. Cách nối chuỗi này thường được sử dụng khi in ra màn hình hoặc chuyển kiểu dữ liệu số sang String. - Nối 2 chuỗi bằng phương thức concat( ) Khác với việc nối chuỗi bằng dấu cộng là nối 2 chuỗi tại vị trí cuối cùng của chuỗi đầu tiên.thay vào đó phương thức này sẽ trả về một chuỗi mới. Ví dụ: String str1,str2,str3; str1 = ”Do An”; str2 = ”So Sanh Van Ban”; str3 = str1.concat(str2); Kết quả là str3 sẽ bằng “Do An So Sanh Van Ban” * Các hàm xử lí với chuỗi trong Java: - Hàm trả về chuỗi con: substring Ví dụ: String str1 = new String(“Do An I”); String str2 = str1.substring(0,2); Kết quả là str2 bằng “Do”, có nghĩa là phương thức substring sẽ lấy 2 kí tự trong xâu str1 bắt đầu từ kí tự thứ 0. [...]... tại Thời gian load file văn bản trong cơ sở dữ liệu gốc có dung lượng lớn là khá lâu dẫn tới bị đơ máy trong khoảng thời gian load khiến người dùng mất một khoảng thời gian chờ đợi Sau khi load xong file văn bản gốc thì phần mềm chạy bình thường và đưa ra kết quả so sánh lên giao diện Đó là một nhược điểm cần cải thiện cho phần mềm này mà chúng em đang tìm cách khắc phục Nhưng do thời gian có hạn và... String(“abcd”); String str2 = new String(“cd”); int n = str1.indexOf(str2); Kết quả là n = 2 - Hàm kiểm tra xem 1 chuỗi có bắt đầu 1 chuỗi khác hay không: startsWith() Ví dụ: String str1 = Do An I”; String str2 = Do ; boolean k = str1.startsWith(str2); Kết quả là k = true - Hàm kiểm tra xem 1 chuỗi có kết thúc 1 chuỗi khác không: endsWith() Tương tự như hàm startsWith() - Hàm trả về 1 chuỗi được rút ra...- Hàm trả về độ dài chuỗi: length Ví dụ: String str1 = new String( Do An I”); int n = str1.length(); Kết quả n = 7, nghĩa là phương thức length() sẽ trả về độ dài xâu kí tự - Hàm trả về kí tự ở vị trí bất kỳ: charAt Ví dụ: String str1 = new String( Do An I”); char ch = str1.charAt(1); Kết quả là ch = ’o’ nghĩa là phương thức charAt(1) sẽ trả về kí tự thứ 1 tính... phục được, chúng em mong nhận được sự chỉ bảo và giúp đỡ của thầy Để từ đó chúng em hoàn thiện đề tài này được tốt hơn, khắc phục được những khuyết điểm và hạn chế đang tồn tại KẾT LUẬN Việc xử lí xâu chuỗi đã và đang là vấn đề hết sức quan trọng nói riêng cũng như Java và các ngôn ngữ lập trình khác nói chung Việc nghiên cứu và mô phỏng phần mềm trên đã phần nào giải quyết bài toán trên Để đi xâu về... December 1995 Oracle's Developer Resources for Java Technology Oracle's Beginner's tutorial for Java SE Programming A Brief History of the Green Project Patrick Naughton, The Long Strange Trip to Java, March 18, 1996 W Kahan and Joseph D Darcy, How Java's Floating-Point Hurts Everyone Everywhere, University of California, Berkeley 9 Shahrooz Feizabadi, A history of Java in: Marc Abrams, ed., World Wide... String str1 = String.copyValueOf(2,2); Kết quả str1 = ”cd”, nghĩa là xâu str1 được rút ra từ mảng ch bằng cách lấy 2 phần tử của mảng và lấy từ vị trí thứ 2 - Hàm trả chuyển chuỗi sang chữ hoa: toUpperCase() - Hàm trả chuyển chuỗi sang chữ thường: toLowerCase() CHƯƠNG 3: SO SÁNH NỘI DUNG HAI VĂN BẢN 3.1 Sơ đồ khối của hệ thống 3.2 Các hàm thực hiện 3.2.1 Hàm nhập và hiển thị Cho phép người dùng nhập vào... tăng thêm độ tin cậy trong việc thẩm định Sau khi bổ xung thêm người dùng chỉ cần nhấn nút “ So sánh” là sẽ có kết quả Kết quả đó sẽ được bảo đảm an toàn và không thể thay đổi được bởi bất cứ ai Với file văn bản có kích thước vừa và nhỏ thì phần mềm chạy nhanh và cho kết quả tin cậy Phần mềm có giao diện đơn giản thân thiện với người dùng Vì là phần mềm được viết trên ngôn ngữ Java nên nó có thể chạy... nó hiện lên văn bản gốc Đề tài mới chỉ thực hiện ở mức độ mô phỏng trên công cụ netbean, cần được phát triển để áp dụng vào các phần mềm tối ưu khác TÀI LIỆU THAM KHẢO 1 2 3 4 5 6 7 8 Michael O'Connell, Java: The Inside Story, SunWord, July 1995 Patrick Naughton, Java Was Strongly Influenced by Objective-C David Bank The Java saga Wired Magazine, 30 (12), December 1995 Oracle's Developer Resources... điều hành khác nhau chỉ cần máy tính có cài đặt máy ảo Java (Java Virtual Machine) Phần mềm này không yêu cầu hệ thống có cấu hình cao nên người dùng có thể yên tâm sử dụng Qua môn học này, chúng em đã có thêm kiến thức lập trình trên ngôn ngữ Java Tư duy lập trình được nâng cao lên Kĩ năng lập trình được cải thiện Đồng thời dưới sự hướng dẫn của thầy và làm việc theo nhóm để thực hiện đề tài này thì... Kết quả là ch = ’o’ nghĩa là phương thức charAt(1) sẽ trả về kí tự thứ 1 tính từ vị trí thứ 0 trong xâu str1 - Hàm so sánh 2 chuỗi: equals Phương thức này so sánh 2 chuỗi, kết quả trả về có kiểu Boolean - Hàm so sánh 2 chuỗi lần lượt thứ tự từng ký tự: compareTo Ví dụ: int a = str1.compareTo(str2); a = 0 nếu str2 = str1 a > 0 nếu str2 > str1 a < 0 nếu str2 < str1 - Hàm chuyển chuỗi thành mảng ký tự: . str1,str2,str3; str1 = Do An ; str2 = ”So Sanh Van Ban”; str3 = str1.concat(str2); Kết quả là str3 sẽ bằng Do An So Sanh Van Ban” * Các hàm xử lí với. 1 chuỗi khác hay không: startsWith() Ví dụ: String str1 = Do An I”; String str2 = Do ; boolean k = str1.startsWith(str2); Kết quả là k = true. - Hàm kiểm

Ngày đăng: 20/03/2014, 19:20

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • MỤC LỤC

  • CHƯƠNG 1: GIỚI THIỆU

    • 1.1 Đặt vấn đề

    • 1.2 Mục tiêu của đề tài

    • 1.3 Giới hạn của đề tài

    • CHƯƠNG 2: GIẢI PHÁP VÀ CÔNG CỤ

      • 2.1 Tổng quan về ngôn ngữ lập trình Java

        • 2.1.1 Java là gì?

        • 2.1.2 Các đặc điểm của Java

        • 2.1.3 Các hướng phát triển ứng dụng Java

          • 2.1.3.1 Java và ứng dụng Console

          • 2.1.3.2 Java và phát triển ứng dụng Desktop dùng AWT và JFC.

          • 2.2 Xủ lý chuỗi và văn bản trong Java

          • CHƯƠNG 3: SO SÁNH NỘI DUNG HAI VĂN BẢN

            • 3.1 Sơ đồ khối của hệ thống

            • 3.2 Các hàm thực hiện

              • 3.2.1 Hàm nhập và hiển thị

              • 3.2.2 Hàm xử lí văn bản

              • 3.2.3 Hàm Highlight nội dung

              • 3.3 Các bước thực hiện

              • CHƯƠNG 4: KẾT QUẢ VÀ ĐÁNH GIÁ

                • 4.1 Các kết quả đã đạt được

                • 4.2 Các vấn đề còn tồn tại

                • KẾT LUẬN

                • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan