Thực tập chuyên ngành tìm hiểu ngôn ngữ java và viết demo ứng dụng

71 504 0
Thực tập chuyên ngành tìm hiểu ngôn ngữ java và viết demo ứ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

THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH LỜI CẢM ƠN Trong thời đại công nghệ thông tin ngày nay, việc ứng dụng Công nghệ thông tin vào sống ngành khoa học ngày trở nên quan trọng Quá trình làm đề tài thực tập chuyên ngành bước vào thực tiễn bước đầu thực hành đúc rút chứng minh cho môn học ghế nhà trường nói chung môn học chuyên nghành nói riêng Nó trình nhận xét đánh giá rút ưu, nhược điểm, để từ tìm phương án tối ưu cho việc học thực tế sau thân Em xin chân thành cảm ơn hướng dẫn thầy giáo, cô giáo Khoa Công nghệ thông tin – Trường Đại học Vinh Em đặc biệt bày tỏ lòng biết ơn thầy giáo ThS.Nguyễn Quang Ninh tạo điều kiện giúp đỡ, hướng dẫn em tận tình để em hoàn thành đề tài thực tập chuyên ngành Em chân thành cảm ơn thầy cô sẵn sàng giúp đỡ tạo điều kiện tốt cho em Cảm ơn gia đình, bạn bè quan tâm động viên giúp đỡ để em có ngày hôm Mặc dù có nhiều cố gắng toàn kiến thức để hoàn thành công việc, song thời gian kinh nghiệm thân chưa trau dồi nhiều nên việc trình bày, phân tích, xây dựng chương trình nhiều thiếu sót cần bổ sung Vì em mong nhận ý kiến đóng góp thầy cô để sản phẩm hoàn thiện, ứng dụng vào thực tiễn Sinh viên thực Phạm Ngọc Hiếu SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Mục Lục LỜI CẢM ƠN 1.GIỚI THIỆU 1.1 Đơn giản 1.2 Hướng đối tượng 1.3 Độc lập phần cứng hệ điều hành 1.4 Mạnh mẽ 1.5 Bảo mật 1.6 Phân tán 1.7 Đa luồng 1.8 Linh động 2.L T NH H ỚN Đ T N T N V 2.1 Trừu tượng hoá (Abstraction) 2.2 Tính kế thừa (Inheritance) 10 2.3 Tính đa hình (Polymorphism) 10 3.Đ T N ,LỚ 12 3.1 hai báo đối tượng 12 3.2 ách truy uất thành phần lớp 13 hạm vi truy uất thành phần lớp 15 hương thức main() 15 Hàm khởi tạo (Constructor) 16 3.7 Hàm hủy 17 3.8 Từ khoá this 18 3.1 Nạp chồng hàm (Overloaded Methods) 18 3.11 Truyền tham đối 20 3.12 hai báo kế thừa 22 3.1 Từ khoá super 22 3.1 ụng từ khoá inal cấm chồng lắp 25 3.1 ụng từ khoá inal cấm kế thừa 26 4.SỬ DỤN V DEM TH V ỆN BIỂU THỨC CHÍNH QUY 27 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 4.1 Tổng quan 27 4.2 Hỗ trợ ngôn ngữ 27 4.3 Các ký tự đặc biệt Java Regex (Special characters) 28 4.4 S dụng String.matches(String) 29 4.5 S dụng Pattern Matcher 34 4.6 Nhóm (Group) 37 4.7 S dụng Pattern, Matcher, Group *? 39 Demo chương trình s dụng biểu thức quy quy định cách đặt tên biến khai báo biến ngôn ngữ lập trình C 40 5.SỬ DỤN V DEM À ĐẶT MÃ HÓA DES 42 đồ khối 47 4.5 Thuật toán 49 5.6 Lập mã DES 61 hương trình DEM 62 6.SỬ DỤNG V DEM À ĐẶT THU T TOÁN TÌM MỌI KHÓA 63 6.1 Một vài khái niệm ban đầu 63 6.2 Thuật toán 64 hương trình DEMO 65 7.SỬ DỤNG JAVA DEMO PHẦN MỀM QUẢN LÝ NHÂN SỰ 67 7.1 Mục đích 67 7.2 Các chức chương trình 67 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 1.GIỚI THIỆU Java ngôn ngữ lập trình Sun Microsystems giới thiệu vào tháng năm 199 Từ đó, trở thành công cụ lập trình lập trình viên chuyên nghiệp ava xây dựng tảng C C++, s dụng cú pháp đặc trưng hướng đối tượng C++ Vào năm 1991, nhóm kỹ sư un Microsystems có ý định thiết kế ngôn ngữ lập trình để điều khiển thiết bị điện t tivi, máy giặt, lò nướng,… Mặc dù C C++ có khả làm việc trình biên dịch lại phụ thuộc vào loại CPU Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên đắt, để loại CPU có trình biên dịch riêng tốn Do nhu cầu thực tế đòi hỏi ngôn ngữ chạy nhanh, gọn, hiệu độc lập thiết bị tức chạy nhiều loại CPU khác nhau, ưới môi trường khác “ ak” đời vào năm 199 đổi tên thành Java Mặc dù mục tiêu ban đầu cho nternet o đặc trưng không phụ thuộc thiết bị nên Java trở thành ngôn ngữ lập trình cho Internet Java ngôn ngữ lập trình phát triển từ ngôn ngữ lập trình C/C++ Nó kế thừa, phát huy mạnh ngôn ngữ / ++ lược bỏ cú pháp phức tạp C/C++ Ngôn ngữ lập trình Java có số đặc trưng tiêu biểu: đơn giản, hướng đối tượng, độc lập phần cứng hệ điều hành, mạnh mẽ, bảo mật, phân tán, đa luồng linh động 1.1 Đơn giản Những người thiết kế mong muốn phát triển ngôn ngữ dễ học quen thuộc với đa số người lập trình Do Java loại bỏ đặc trưng phức tạp  ++ như: Loại bỏ thao tác trỏ, thao tác định nghĩa chồng toán t  hông cho phép đa kế thừa mà s dụng giao diện  Không s dụng lệnh “goto” ile hea er (.h)  Loại bỏ cấu trúc “struct” “union” 1.2 Hướng đối tượng Java ngôn ngữ lập trình hướng đối tượng, chương trình viết ava phải xây dựng đối tượng Nếu C/C++ ta tạo hàm (chương trình không gắn với đối tượng nào) Java ta tạo phương thức SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH (chương trình gắn liền với lớp cụ thể) Trong ava không cho phép đối tượng có tính đa kế thừa mà thay giao diện (interface) 1.3 Độc lập phần cứng hệ điều hành Đối với ngôn ngữ lập trình truyền thống / ++, phương pháp biên ịch thực sau : Hình 1.1: Các biên dịch chương trình hệ thống Với phần cứng khác nhau, có trình biên dịch khác để biên dịch mã nguồn chương trình cho phù hợp với phần cứng Do vậy, chạy phần cứng khác bắt buộc phải biên dịch lại mã nguồn Đối với chương trình viết Java, trình biên dịch Javac biên dịch mã nguồn thành dạng byteco e au đó, chạy chương trình phần cứng khác nhau, máy ảo Java dùng trình thông dịch ava để chuyển mã bytecode thành dạng chạy phần cứng tương ứng Do vậy, thay đổi phần cứng, biên dịch lại mã nguồn Java SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Hình 1.2: Biên dịch hệ thống java 1.4 Mạnh mẽ Java ngôn ngữ yêu cầu chặt chẽ kiểu liệu  Kiểu liệu phải khai báo tường minh  Java không s dụng trỏ phép toán trỏ  Java kiểm tra tất truy nhập đến mảng, chuỗi thực thi để đảm bảo truy nhập không giới hạn kích thước  Trong môi trường lập trình truyền thống, lập trình viên phải tự cấp phát nhớ, trước chương trình kết thúc phải tự giải phóng nhớ cấp Vấn đề nảy sinh lập trình viên quên giải phóng nhớ in cấp trước Trong chương trình ava, lập trình viên bận tâm đến việc cấp phát nhớ Quá trình cấp phát, giải phóng thực tự động, nhờ dịch vụ thu nhặt đối tượng không s dụng (garbage collection)  chế bẫy lỗi ava giúp đơn giản hóa qúa trình x lý lỗi hồi phục sau lỗi 1.5 Bảo mật Java cung cấp môi trường quản lý thực thi chương trình với nhiều mức để kiểm soát tính an toàn: SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH  GVHD: ThS.NGUYỄN QUANG NINH Ở mức thứ nhất, liệu phương thức đóng gói bên lớp Chúng truy xuất thông qua giao diện mà lớp cung cấp  Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã an toàn, tuân theo nguyên tắc Java  Mức thứ ba đảm bảo trình thông dịch; chúng kiểm soát xem bytecode có đảm bảo quy tắc an toàn trước thực thi không  Mức thứ tư kiểm soát việc nạp lớp vào nhớ để giám sát việc vi phạm giới hạn truy xuất trước nạp vào hệ thống 1.6 Phân tán ava thiết kế để hỗ trợ ứng dụng chạy mạng lớp mạng (java.net) Hơn nữa, Java hỗ trợ nhiều chạy khác nên chúng s dụng rộng rãi công cụ phát triển Internet - nơi s dụng nhiều khác 1.7 Đa luồng hương trình ava cung cấp giải pháp đa luồng (Multithrea ing) để thực thi công việc đồng thời Chúng cung cấp giải pháp đồng luồng Đặc tính hỗ trợ đa luồng cho phép xây dựng ứng dụng mạng chạy hiệu 1.8 Linh động ava thiết kế ngôn ngữ động để đáp ứng cho môi trường mở Các chương trình ava chứa nhiều thông tin thực thi nhằm kiểm soát truy nhập đối tượng lúc chạỵ Điều cho phép khả liên kết mã động SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH T HH Ớ G IT GVHD: ThS.NGUYỄN QUANG NINH GT G ava ngôn ngữ lập trình hướng đối tượng Nếu bạn chưa ùng ngôn ngữ lập trình hướng đối tượng trước đây, bạn cần phải hiểu khái niệm sau : lập trình hướng đối tượng (Object Oriented Programming) đối tượng ( bject), lớp (class) gì, mối quan hệ đối tượng lớp, gởi thông điệp (Messages) đến đối tượng Mỗi chương trình máy tính gồm có phần : phần mã lệnh phần ữ liệu Một số chương trình đặt trọng tâm phần mã lệnh, số khác đặt trọng tâm phần ữ liệu Từ ẫn đến mô hình định nên cấu trúc chương trình : trả lời cho câu hỏi “Điều ảy ra”, cho “ chịu tác động” Mô hình gọi mô hình hướng lý, mô tả chương trình bao gồm chuỗi bước thực (mã lệnh) Nhưng chương trình ngày lớn phức tạp khó khăn để s ụng mô hình thứ Vì mô hình thứ đưa ra, mô hình hướng đối tượng hương trình bạn ây ựng ựa vào ữ liệu phần giao iện định nghĩa cho phần ữ liệu Mô hình mô tả ữ liệu điều khiển truy uất mã lệnh Ngôn ngữ lập trình hướng đối tượng có khả sau : - Mô giới thực cách tự nhiên đối tượng mối quan hệ chúng, thuận tiện cho việc thiết kế hệ thống phức tạp - Thừa kế mã có sẵn cách ễ àng, giúp tiết kiệm công sức nâng cao suất người lập trình, ễ bảo trì, ễ nâng cấp, mở rộng 2.1 u tượng ho (Abstraction) on người đơn giản hoá vấn đề phức tạp thông qua trừu tượng hoá Ví ụ, người s ụng máy tính không nhìn máy tính cách phức tạp Nhờ trừu tượng hoá mà người ta s ụng máy tính mà không quan tâm đến cấu trúc chi tiết bên máy tính Họ s ụng chúng thực thể ách tốt để nắm vững kỹ thuật trừu tượng ùng hệ thống phân cấp Điều cho phép bạn phân lớp thành phần có ý nghĩa hệ thống phức tạp, chia nhỏ chúng thành phần đơn giản quản lý Nhìn bên máy tính đối tượng, nhìn sâu cấp, máy tính bao gồm số phận : hộp điều khiển, hình, bàn phím, chuột , phận lại bao gồm phận nhỏ hơn, ví ụ hộp điều khiển có SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH bảng mạch chứa GVHD: ThS.NGUYỄN QUANG NINH , mạch giao tiếp gắn bảng mạch chính, đĩa cứng, ổ đĩa mềm… Nhờ trừu tượng hoá mà bạn không quan tâm đến chi tiết bảng mạch, mà quan tâm mối quan hệ, giao tiếp phận Một mạch giao tiếp ù có chức ly k nữa, bạn s ụng không khó khăn ấn vừa vặn vào khe cắm bảng mạch ự phân cấp trừu tượng hệ thống phức tạp áp ụng cho chương trình máy tính hần ữ liệu từ chương trình hướng tượng thành phần Dãy lý kinh điển trừu tượng hoá thành đối lý trở thành thông điệp đối tượng Vì đối tượng cần có hoạt động đặc trưng riêng ạn coi đối tượng thực thể độc lập tiếp nhận yêu cầu từ bên Đây phần cốt l i lập trình hướng đối tượng.Tất ngôn ngữ lập trình hướng đối tượng có chế cho phép bạn triển khai mô hình hướng đối tượng Đó tính đóng gói, kế thừa, tính đa hình nh đ ng g i (Encapsulation)Đây chế ùng vỏ bọc kết hợp phần ữ liệu thao tác ữ liệu (phần mã lệnh) thành thể thống nhất, tạo nên an toàn, tránh việc s ụng không thiết kế, bảo vệ cho mã lệnh ữ liệu chống việc truy uất từ đoạn mã lệnh bên ngoài.Trong Java tính đóng gói thể qua khái niệm lớp ( lass) Lớp hạt nhân ava, tạo tảng cho lập trình hướng đối tượng ava Nó định nghĩa ữ liệu hành vi ( ữ liệu mã lệnh), gọi thành viên lớp, ùng chung cho đối tượng loại Từ phân tích hệ thống, người ta trừu tượng nên lớp au đối tượng tạo theo khuôn mẫu lớp Mỗi đối tượng thuộc lớp có ữ liệu hành vi định nghĩa cho lớp đó, giống sinh từ khuôn đúc lớp Vì mà lớp khuôn mẫu đối tượng, đối tượng thể lớp Lớp cấu trúc logic, đối tượng cấu trúc vật lý Dữ liệu định nghĩa lớp gọi biến, mã lệnh gọi phương thức hương thức định nghĩa cho việc s ụng ữ liệu Điều có nghĩa hoạt động lớp định nghĩa thông qua phương thức ác đặc trưng lớp gồm có hai phần : thuộc tính ( ttribute) hành vi ( ehavior) iả s bạn phải tạo giao iện với người ùng cần có nút nhấn ( utton) Thế trước hết bạn ây ựng lớp utton với thuộc tính nhãn ghi nút, chiều rộng, chiều cao, màu nút, đồng thời quy định hành vi nút nhấn, nghĩa nút nhấn cần phản ứng chọn, phát yêu cầu gì, có đổi màu hay nhấp nháy chi không Với lớp utton vậy, bạn tạo nhanh chóng nút nhấn cụ thể phục vụ cho mục SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH đích khác ói kỹ thuật ava, ùng để phân hoạch không gian tên lớp, giao iện thành vùng ễ quản lý hơn, thể tính đóng gói ava 2.2 nh ế th a (Inheritance) Tính kế thừa khả ây ựng lớp từ lớp có Tính đóng gói tác động đến tính kế thừa hi lớp đóng gói số ữ liệu phương thức, lớp kế thừa cấu trúc ữ liệu phương thức lớp mà kế thừa Ngoài bổ sung ữ liệu phương thức riêng Nó quan trọng ứng ụng cho khái niệm phân cấp (mô hình TopDo n) hông s ụng phân lớp, lớp phải định nghĩa tất ữ liệu phương thức cách r ràng Nếu s ụng kế thừa, lớp cần định nghĩa thêm đặc trưng : Xe em lớp e ergout, M, Dream đối tượng lớp e ác e lái đi, ừng lại Từ lớp e trên, ta ây ựng lớp e đạp, e ôtô e ôtô có thêm máy tự khởi động… 2.3 nh đa h nh (Polymorphism) hi lớp kế thừa từ lớp tổ tiên thay đổi cách thức làm việc lớp tổ tiên số phương thức (nhưng tên, kiểu trả về, anh sách tham đối phương thức giữ nguyên) Điều gọi viết chồng Như với tên phương thức, chương trình có hành động khác tùy thuộc vào lớp đối tượng gọi phương thức Đó tính đa hình : với phương thức chạy, e ôtô, e máy tăng ga, e đạp phải đạp… Tính đa hình thể việc giao iện s ụng cho hoạt động lớp tổng quát, hay gọi “một giao iện, nhiều phương thức” ó nghĩa thiết kế giao iện tổng quát cho nhóm hành vi liên quan Điều giảm thiểu phức tạp cách cho phép giao iện s ụng cho hoạt động lớp tổng quát Trình biên ịch ác định hoạt động cụ thể thi hành tùy theo điều kiện ạn cần nhớ giao iện lớp tổng quát s ụng ự kết hợp đắn : đa hình, đóng gói kế thừa tạo nên môi trường lập trình có khả phát triển tốt nhiều so với môi trường không hỗ trợ hướng đối tượng Một SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 10 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH PC-2 14 17 11 24 28 15 21 10 23 19 12 26 16 27 20 13 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Bảng 3.7 Hoán vị 5 Hàm nh ạ) m -2 ộng (E) Hàm mở rộng (E) tăng độ ài từ i từ 32 bit lên bit cách thay đổi thứ tự bit lặp lại bit Việc thực nhằm hai mục đích: - Làm độ ài i cỡ với khóa để thực việc cộng mo ulo - ho kết ài để nén suốt trình thay Tuy nhiên, hai mục đích nhằm mục tiêu bảo mật ữ liệu ằng cách cho phép bit chèn vào hai vị trí thay thế, phụ thuộc bit đầu với bit đầu vào trải rộng DE thiết kế với điều kiện bit mã phụ thuộc vào bit r khóa SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 57 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH H nh 3.8 đồ hàm mở rộng Bảng 3.8 Hàm mở rộng E Đôi gọi hàm E- o , bit khối vào, bit thứ bit thứ tư tương ứng với bit đầu ra, bit thứ hai ba tương ứng với bit đầu Hộp – Box - Mỗi hàng hộp - hông có hộp hoán vị số nguyên từ hàm đến 15 ine hay tuyến tính đầu vào - ự thay đổi bit đầu vào ẫn đến thay đổi hai bit đầu - Đối với hộp S (x  11 bất k với đầu vào ( âu bit có độ ài bit) bất k , ( ) ) phải khác bit SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 58 THỰC TẬP CHUYÊN NGÀNH au cộng mo ulo với khóa , kết thu chuỗi bit chia làm khối đưa vào hộp - o Mỗi hộp - o có - o chuẩn DE GVHD: ThS.NGUYỄN QUANG NINH bit đầu vào bit đầu ( tổng nhớ yêu cầu cho hộp bytes) ết thu chuỗi 32 bit tiếp tục vào hộp -Box S1 14 13 15 11 10 12 15 14 13 10 11 14 13 11 15 12 10 15 12 11 14 10 12 13 S2 15 14 11 13 12 10 13 15 14 12 10 11 14 11 10 13 12 15 13 10 15 11 12 14 S3 10 14 15 13 12 11 13 10 14 12 11 15 13 15 11 12 14 13 15 14 11 12 10 10 S4 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 59 THỰC TẬP CHUYÊN NGÀNH 13 14 13 11 10 15 GVHD: ThS.NGUYỄN QUANG NINH 10 11 12 15 15 12 10 14 12 11 13 15 14 10 11 12 14 13 S5 12 10 11 15 13 14 14 11 12 15 10 11 10 13 15 12 14 12 14 13 15 10 11 13 S6 12 10 15 13 14 11 10 15 12 13 14 11 14 15 12 10 13 11 12 15 10 11 14 13 S7 11 14 15 13 12 10 13 11 10 14 12 15 11 13 12 14 10 15 11 13 10 15 14 12 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 60 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH S8 13 15 11 10 14 12 15 13 10 12 11 14 11 12 14 10 13 15 14 10 13 15 12 11 Bảng 3.9 hộp -Box Hộp -Box Việc hoán vị mang tính đơn ánh, nghĩa bit đầu vào cho bit đầu ra, không bit s ụng lần hay bị bỏ qua Hộp - o thực chất chức ếp đơn theo bảng sau: Bảng 3.10 ảng hoán vị 5.6 Lập mã DE Đây ví dụ việc s dụng DES Giả s ta mã hóa rõ sau dạng thập lục phân(Hexadecimal) 0123456789ABCDEF s dụng khóa thập lục phân : 133457799BBCDFF1 Khóa dạng nhị phân bit kiểm tra : 00010010011010010101101111001001101101111011011111111000 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 61 THỰC TẬP CHUYÊN NGÀNH Áp dụng IP , ta nhận L0 GVHD: ThS.NGUYỄN QUANG NINH (trong dạng nhị phân) L0 = 11001100000000001100110011111111 L1 = R0 = 11110000101010101111000010101010 16 vòng lặp mã thể sau: E(R0) = 011110100001010101010101011110100001010101010101 K1 = 000110110000001011101111111111000111000001110010 E(R0)  K1 = 011000010001011110111010100001100110010100100111 S-box output = 01011100100000101011010110010111 f(R0,K1) = 00100011010010101010100110111011 L2 = R1 = 11101111010010100110010101000100 ……… ……… ……… E(R15) = 001000000110101000000100000110100100000110101000 K16 = 110010110011110110001011000011100001011111110101 E(R15) K16 = 111010110101011110001111000101000101011001011101 S-box output = 10100111100000110010010000101001 f(R15, K16) = 11001000110000000100111110011000 R16 = 00001010010011001101100110010101 Cuối , áp dụng IP-1 cho ta nhận mã dạng thập lục phân sau : 85E813540F0AB405 5.7 Chương t nh DEM hương trình emo sau : SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 62 THỰC TẬP CHUYÊN NGÀNH Lớp IP ùng để x lý khối liệu GVHD: ThS.NGUYỄN QUANG NINH bit toàn chu trình mã hóa DE Đây lớp mà xây dựng đâu tiên toàn chương trình Lớp Fx lớp đại diện cho hàm f trình mã hóa DES chúng ta.Cõ lẽ phức tạp việc thiết kế hàm Để thiết kế phải thiết kế số lớp thành phần khác – thành phần mà tạo nên Fx.Nó bao gồm : Hộp E(chính lớp Ex) có chức mở rộng 32 bit đầu vào thành 48 bit Lớp Kx có chức tạo khóa tương ứng với chu trình trình mã hóa DES , khóa ài bit tạo từ 64 bit(thực từ 56 bit) khóa Cuối lớp Sx,lớp có nhiệm vụ từ bit đầu vào qua tổng cộng hộp 32 bit đầu ra,sau 32 bit đầu qua hoán vị P lần 32 bit kết đầu 6.SỬ DỤ G DEM CÀI ẶT THU T T Á T M MỌI KHÓ Một vài h i niệm an đầu Đầu tiên, cần hi u vài khái niệm : Ta gọi :  Q tập sở liệu  F tập phụ thuộc hàm  L(left) : thuộc tính xuất bên trái  R(right) : thuộc tính xuất vế phải  S(supperkey) : tập siêu khóa SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 63 THỰC TẬP CHUYÊN NGÀNH  GVHD: ThS.NGUYỄN QUANG NINH K(key) : tập khóa Tập thuộc tính nguồn (TN) : bao gồm thuộc tính xuất vế trái, không xuất vế phải F( tập phụ thuộc hàm) thuộc tính không xuất vế trái vế phải F Vậy TN = Q \ R Nghĩa ta lấy Q trừ cho R để tìm thuộc tính xuất L thuộc tính không xuất L R Ví dụ : Cho tập sở liệu Q = {A,B,C,D,E} L = {A,B} R = {B,C,E} TN = Q \ R = {A,D} Tập thuộc t nh đ ch Vậ Đ) : Bao gồm thuộc tính xuất R, không xuất L Đ=R\L Ví dụ : Cho L = {A,B,C,D,E} R = {E,F,G,H} TĐ = {F,G,H} Tập thuộc tính trung gian (TG) : Chứa thuộc tính xuất L R Vậy TG = L Giao R (Giao tập hợp để lấy thuộc tính chung Tập hợp đó) Ví dụ : Cho L = {A,B,C,D,E} R = {D,E,F,G} Vậy TG = L /cap R = {D,E} 6.2 huật to n Bước : Tìm tập thuộc tính nguồn TN Tập thuộc tính trung gian TG, ví dụ bạn dễ dàng tìm thấy tập thuộc tính Bước : Nếu TG = Thì K(Key) = TN, kết thúc thuật toán, xuất K tập sở liệu Ngược lại, TG # Thì qua bước Bước : Tìm tất tập Xi TG Bước : Tìm Siêu khóa(Si) cách với Xi , (TN U Xi)+ = Q Si = TN U Xi Bước : SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 64 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Tìm Khóa(Ki) cách loại bỏ siêu khóa không tối thiểu Với Si Sj thuộc S Nếu Si chứa Sj loại bỏ Sj khỏi tập siêu khóa Khi đó, tập S lại tập khóa cần tìm Ví dụ : Ta có S = {AB, ABC, ED, EDF} Ta thấy AB chứa ABC, ED chứa EDF cần phải loại bỏ ABC EDF Vậy S = {AB,ED} tập khóa cần tìm Chúng ta có ví d mẫu sau : Ví dụ : Cho tập sỡ liệu R = Với Q = {ABC} F = {AB –> C, C -> A} Tìm tất khóa thuộc tập sở liệu Bài làm: L = {ABC} R = {CA} TN = {B} TG = {AC} # nên ta làm tiếp bước Ta có tập Xi tập TG = {0, A,C,AC} Ta lấy thuộc tính thuộc tập Xi tập TG hợp với TN ta có thuộc tính sau : S1 = TN U = B Ta có B+ = B # Q nên S1 = A không siêu khóa S2 = TN U A = AB Ta có AB+ = ABC = Q nên S2 = AB siêu khóa S3 = TN U C = BC Ta có BC+ = ABC = Q nên S3 = BC siêu khóa S4 = TN U AC = ABC Ta có ABC+ = ABC = Q nên S4 = ABC siêu khóa Vậy ta có tập siêu khóa S = {AB,BC,ABC} Tuy nhiên, AB chứa ABC BC chứa ABC nên loại bỏ siêu khóa ABC khỏi tập siêu khóa Vậy ta có, tập khóa K = {AB,BC} khóa lượt đồ quan hệ Chương t nh DEM hương trinh emo sau : Project bao gồm lớp bao gồm hàm mail : SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 65 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Trong lớp hieu_processString.java có phương thức sau : Trong phương thức ý đến hai phương thức main all_key, phương thức main nơi để chạy chương trình,r ràng mã lệnh chương trình , thuật toán chương trình không viết hàm hương thức all_key phương thức thể thuật toán chương trình, phương thức lại xây dựng với mục đích cuối để xây dựng nên phương thức Bây th tiến hành chạy th vài ví dụ kết thị sau : SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 66 THỰC TẬP CHUYÊN NGÀNH 7.SỬ DỤ G DEM GVHD: ThS.NGUYỄN QUANG NINH HẦ MỀM QUẢ Ý HÂ SỰ Mục đ ch  hương trình xây dựng ngôn ngữ Java,với mục đích hỗ trợ công tác quản lý nhân công ty,tiết kiệm thời gian tìm kiếm thông tin nhân viên cho người quản lý  Nhân quản lý thông qua thông tin hồ sơ nhân viên bao gồm: mã nhân viên, tên đầy đủ, địa chỉ, phòng ban, dự án  Người quản lý quản lý với tư cách a đăng nhập vào chương trình với thông tin Username,Password C c chức ch nh c a chương t nh Đăng nhập Tại người quản lý đăng nhập vào chương trình với tư cách a min,từ cập nhật thông tin liên quan đến nhân viên Giao diện c a chương t nh SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 67 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH au đăng nhập giao diện xuất hiện, công cụ giúp nhà quản lý thực công tác quản lý nhân viên mình, giao diện gồm phần chức riêng gồm có quản lý nhân viên, quản lý phòng ban, quản lý dự án, quản lý địa Bạn thoát khỏi chương trình vào ile hình ưới Bảng nhân viên SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 68 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Đây người quản lý muốn truy suất vào chương trình với mục đích tìm kiếm thông tin nhân viên Nếu người quản lý muốn cập nhật thông tin nhân viên mơi mở tab bên cạnh với giao diện giúp người dùng cập nhật thông tin nhân viên D án SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 69 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Trong công ty số dự án nhiều,vì việc quản lý nhân viên tham gia dự án khó khăn rắc rối,khi ùng chương trình để quản lý người quản lý tiết kiệm nhiều thời gian việc truy suất thông tin nhân viên, biết dự án có nhân viên tham gia Bảng phòng ban Khi truy suất đến bảng phòng ban,các thông tin mã phòng tên phòng ban ưới dạng nhập nhắm cập nhật thêm thông tin đồng thời xóa thông tin không cần thiết Bảng địa SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 70 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Ở địa nhân viên cập nhật,giúp cho người quản lý nắm bắt cụ thể thông tin nhân viên SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 71 [...]... có thể được s dụng tìm kiếm, s a đổi, và thao tác trên văn bản Khuôn mẫu được định nghĩa bởi biểu thức chính quy có thể khớp một hoặc một vài lần, hoặc không khớp với một văn bản Viết tắt của biểu thức chính quy là regex 4.2 Hỗ t ợ c c ngôn ngữ Biểu thức chính quy ( egular e pression) được hỗ trợ bởi hầu hết các ngôn ngữ lập trình, ví dụ, Java, Perl, Groovy, vv Thật không may mỗi ngôn ngữ hỗ trợ biểu... phù hợp với một chuỗi giữa a và điểm d và con số từ 1 đến 7 8 X|Z Tìm X hoặc Z 9 XZ Tìm X và theo sau là Z 10 $ Kiểm tra kết thúc dòng 11 \d Số bất k , viết ngắn gọn cho [0-9] 12 \D Ký tự không phải là số, viết ngắn gon cho [^0-9] SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 27 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 13 \s Ký tự khoảng trắng, viết ngắn gọn cho [ \t\n\x0b\r\f]... ava chỉ phân biệt hàm này với hàm khác ựa vào số tham đối và kiểu của các tham đối, bất chấp tên hàm và kiểu của kết quả trả về : // MyRect .java import java. awt.Point; class MyRect { int x1 = 0; int y1 = 0; int x2 = 0; int y2 = 0; MyRect buildRect(int x1, int y1, int x2, int y2) { SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 18 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH this.x1... lớp vừa abstract và inal vì một lớp trừu tượng là một lớp chưa hoàn chỉnh và phải có lớp con để hiện thực đầy đủ : final class Box { } SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 26 THỰC TẬP CHUYÊN NGÀNH 4.SỬ DỤ G DEM TH GVHD: ThS.NGUYỄN QUANG NINH IỆ BIỂU THỨC CHÍ H QUY 4.1 ổng quan Một biểu thức chính quy ( egular e pressions) định nghĩa một khuôn mẫu (pattern) tìm kiếm chuỗi Nó... ự đa hình cho phép bạn tạo ra những đoạn mã lệnh gọn gàng, ễ đọc, ễ hiểu và có tính ổn định ava là ngôn ngữ lập trình hướng đối tượng nên có đầy đủ các tính năng trên, thư viện lớp ava được cung cấp khá đầy đủ cho người lập trình để bắt đầu một ự án mở SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 11 THỰC TẬP CHUYÊN NGÀNH IT G GVHD: ThS.NGUYỄN QUANG NINH Ớ hi định nghĩa một lớp, bạn... args) { ViDu o = new ViDu(); int a = 15, b = 20; ystem.out.println(“a và b trước khi gọi : “+a+ “ ”+b); o.tinhToan(a, b); ystem.out.println(“a và b sau khi gọi : “+a+” “+b); } } Kết quả của chương trình : a và b trước khi gọi : 15 20 a và b sau khi gọi : 15 20 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 21 THỰC TẬP CHUYÊN NGÀNH 3.12 hai Ta có thể s GVHD: ThS.NGUYỄN QUANG NINH o ế th a ụng... ký tự chấm java rege đang hiểu là một ký tự bất k , nếu bạn muốn nó hiểu là một ký tự chấm thông thường, cần phải có dấu \ phía trước ? // Mẫu regex mô tả một ký tự bất k String regex = "."; // Mẫu regex mô tả ký tự dấu chấm String regex = "\\."; SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 28 THỰC TẬP CHUYÊN NGÀNH 4.4 ụng t ing match GVHD: ThS.NGUYỄN QUANG NINH t ing) S dụng method... 135D4802015001 – LỚP: 52K2 Page 33 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH ụng att n và Match 4.5 1 Pattern là một đối tượng mẫu, một phiên bản biên dịch của biểu thức chính quy Nó không có cấu t public, và chúng ta sẽ s dụng metho tĩnh compile( tring) để tạo đối tượng, với tham số là biểu thức chính quy 2 Matcher là một phương tiện để khớp với String dữ liệu vào với đối tượng Pattern đã tạo... LỚP: 52K2 Page 34 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH public int end(int group) public String group() public String group(int group) public String group(String name) public int groupCount() public boolean matches() public boolean lookingAt() public boolean find() Đây là một ví dụ s dụng Matcher và method in () để tìm kiếm các chuỗi con khớp với biểu thức chính quy import java. util.regex.Matcher;... Page 19 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH } Thật ra, trong gói a t có sẵn lớp ectangle chuyên ùng để biểu iễn hình chữ nhật Lớp My ect của ta chỉ ùng để minh hoạ cho khái niệm nạp chồng hàm Trong lớp My ect có những hàm giúp bạn tạo ra đối tượng My ect với những yếu tố cho trước khác nhau : - ho trước toạ độ góc trên trái 1, y1 và toạ độ góc ưới phải 2, y2 - ho trước góc trên trái và góc

Ngày đăng: 24/07/2016, 11:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan