Thời đại ngày nay là thời đại của Công nghệ với nền kinh tế thị trường, con người ngày càng làm việc chăm chỉ hơn, với hiệu suất cao hơn để tăng thu nhập, cải thiện cuộc sống cũng như khát vọng khẳng định bản thân. Công nghệ thông tin đã đi vào cuộc sống của từng người, từng nhà, hàng ngày chúng ta có thể chỉ cần ở nhà cũng biết được tình hình thế giới, giá xăng, giá vàng, sàn chứng khoán. Do đó, việc giao lưu, tiếp xúc giữa con người với con người ngày càng bị hạn chế. Con người muốn sống, phát triển toàn diện thì cần có các mối quan hệ cũng như bạn bè. Nhưng có phải lúc nào chúng ta cũng có thời gian cũng như điều kiện để tìm bạn đâu, và nhiều khi những người bạn mà mình mong muốn lại không ở gần mà có khi cách nhau hai đầu của đất nước. Với mong muốn kết nối con người với con người gần nhau hơn, cũng như có thể tạo điều kiện để mọi người biết đến nhau, tìm được người bạn như ý của mình cũng như có thể phát triển mối quan hệ lên đến tầm cao hơn; chúng em, nhóm 13, đã chọn đề tài Xây dựng trang Web Kết bạn bốn phương.
Với mục đích xây dựng một sân chơi lành mạnh và bổ ích cho mọi người, mọi lứa tuổi cũng như tầng lớp trong xã hội, chúng em đã tìm hiểu rất nhiều các trang kết bạn khác nhau để từ đó đúc rút ra các ý tưởng cũng như mô hình một trang kết bạn cần có. Với nỗ lực muốn hoàn thiện trang Web một cách tốt nhất có thể, ngoài việc học hỏi các ý tưởng trên mạng, chúng em cũng học và cố gắng nắm vững các ngôn ngữ, công nghệ cũng như mô hình xây dựng trang Web khá lâu trước đó.
19 trang |
Chia sẻ: tuandn | Lượt xem: 2328 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Đề tài Xây dựng Website kết bạn bốn phương, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Trường Đại học Bách Khoa Hà Nội
Viện Công nghệ thông tin và Truyền thông
Báo cáo Bài tập lớn
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Đề tài
Xây dựng Website Kết bạn bốn phương
Giảng viên hướng dẫn: ThS.Nguyễn Thị Thu Trang
Nhóm sinh viên thực hiện: Nhóm 13- Lớp 1
Vũ Hồng Hoan 20071195
Nguyễn Đắc Đồng 20070813
Nguyễn Thanh Tùng 20073333
Trần Xuân Vũ 20073529
Lớp: Hệ thống thông tin – k52
Hà Nội, tháng 5 năm 2010
MỤC LỤC
MỤC LỤC………………………………………………………………………….2
LỜI NÓI ĐẦU……………………………………………………………………...3
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM…………………………………..4
Khảo sát, đặc tả yêu cầu bài toán.............................................................5
1.1 Mô tả yêu cầu bài toán.......................................................................5
1.2 Biểu đồ use - case...............................................................................6
1.3 Đặc tả use - case.................................................................................6
1.4 Biểu đồ hoạt động..............................................................................8
Phân tích, thiết kế bài toán.......................................................................9
2.1 Biểu đồ trình tự..................................................................................9
2.2 Biểu đồ lớp.........................................................................................9
2.3 Thiết kế chi tiết lớp.............................................................................9
2.4 Thiết kế cơ sở dữ liệu........................................................................10
Công nghệ và thuật toán sử dụng............................................................11
3.1 .NET framework và nền tảng ASP.NET..........................................11
3.2 Thuật toán Matching........................................................................15
Xây dựng chương trình minh họa...........................................................16
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................................17
TÀI LIỆU THAM KHẢO.................................................................................18
PHỤ LỤC.........................................................................................................19
LỜI NÓI ĐẦU.
Thời đại ngày nay là thời đại của Công nghệ với nền kinh tế thị trường, con người ngày càng làm việc chăm chỉ hơn, với hiệu suất cao hơn để tăng thu nhập, cải thiện cuộc sống cũng như khát vọng khẳng định bản thân. Công nghệ thông tin đã đi vào cuộc sống của từng người, từng nhà, hàng ngày chúng ta có thể chỉ cần ở nhà cũng biết được tình hình thế giới, giá xăng, giá vàng, sàn chứng khoán. Do đó, việc giao lưu, tiếp xúc giữa con người với con người ngày càng bị hạn chế. Con người muốn sống, phát triển toàn diện thì cần có các mối quan hệ cũng như bạn bè. Nhưng có phải lúc nào chúng ta cũng có thời gian cũng như điều kiện để tìm bạn đâu, và nhiều khi những người bạn mà mình mong muốn lại không ở gần mà có khi cách nhau hai đầu của đất nước. Với mong muốn kết nối con người với con người gần nhau hơn, cũng như có thể tạo điều kiện để mọi người biết đến nhau, tìm được người bạn như ý của mình cũng như có thể phát triển mối quan hệ lên đến tầm cao hơn; chúng em, nhóm 13, đã chọn đề tài Xây dựng trang Web Kết bạn bốn phương.
Với mục đích xây dựng một sân chơi lành mạnh và bổ ích cho mọi người, mọi lứa tuổi cũng như tầng lớp trong xã hội, chúng em đã tìm hiểu rất nhiều các trang kết bạn khác nhau để từ đó đúc rút ra các ý tưởng cũng như mô hình một trang kết bạn cần có. Với nỗ lực muốn hoàn thiện trang Web một cách tốt nhất có thể, ngoài việc học hỏi các ý tưởng trên mạng, chúng em cũng học và cố gắng nắm vững các ngôn ngữ, công nghệ cũng như mô hình xây dựng trang Web khá lâu trước đó.
Do kinh nghiệm làm Web còn yếu, cũng như chưa có nhiều hiểu biết về các trang kết bạn nên bài tập lớn của chúng em còn nhiều hạn chế. Trong quá trình làm đề tài, chúng em rất cám ơn cô Nguyễn Thị Thu Trang, giảng viên trên lớp đã rất nhiệt tình giúp đỡ, tạo mọi điều kiện để chúng em hoàn thành bài tập này.
Hà Nội, tháng 5 năm 2010
Nhóm 13 lớp Hệ thống thông tin k52
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM.
I. KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN.
1.1 Mô tả yêu cầu bài toán.
Xây dựng trang Web kết bạn bốn phương.
Cho phép mọi người có thể đăng kí làm thành viên của trang, nhập các thông tin cá nhân của mình vào hệ thống như họ tên, ngày sinh, nghề nghiệp, sở thích, sở ghét, yêu cầu tìm bạn, …)
Sau khi đăng nhập, người sử dụng sẽ được xem danh sách thành viên của Website, xem chi tiết thông tin về một thành viên nào đó cũng như chỉnh sửa thông tin đã đăng kí của mình.
Thành viên có thể xem các thống kê của trang Web như trang Web có bao nhiêu người, lứa tuổi thế nào, tỉ lệ nghề nghiệp ra sao, …
Thành viên có thể tìm bạn bằng cách đưa ra các yêu cầu của mình để hệ thống tìm danh sách các bạn thỏa mãn, danh sách đó sẽ được sắp xếp giảm dần theo mức độ thỏa mãn, với mỗi người tìm được trong danh sách thì thành viên cũng có thể xem được thông tin chi tiết của người đó.
Người quản trị hệ thống ( administrator ) có quyền xóa các thành viên vi phạm cũng như chỉnh sửa các thông tin đăng kí của thành viên.
1.2 Biểu đồ use - case.
1.3 Đặc tả use – case.
Đăng kí: Người sử dụng bắt buộc phải nhập tên đăng nhập ( nếu đã tồn tại thì không chấp nhận ), mật khẩu, tên thật, ngày tháng năm sinh ( nếu không phù hợp thì hệ thống cũng yêu cầu nhập lại ), giới tính, yêu cầu kết bạn, email, nghề nghiệp, chọn vài sở thích và sở ghét trong danh sách cũng như có thể viết thêm sở thích và sở ghét của mình nếu chưa có, nơi sống của mình ( chi tiết cả thành phố và quốc gia ).
Đăng nhập: nếu người dùng nhập sai tên đăng nhập hoặc mật khẩu thì hiện ra thông báo yêu cầu nhập lại, nếu tài khoản người dùng là tài khoản thường thì Website sẽ hiện ra trang chủ là danh sách 10 thành viên mới nhất còn nếu tài khoản người dùng là admin thì trang sẽ hiện ra các chức năng dành cho admin.
Xem danh sách và thông tin thành viên trong Website: dù có đăng nhập hay không thì người sử dụng vẫn được quyền xem danh sách các thành viên trong trang Web, danh sách này được hiển thị dưới dạng nhiều trang , mỗi trang có 10 thành viên, sắp xếp theo thứ tự tăng dần của ngày tham gia. Tuy nhiên nếu muốn xem thông tin của bất kì thành viên nào thì hệ thống sẽ yêu cầu người sử dụng phải là thành viên chính thức, nếu không sẽ chuyển qua cửa sổ đăng nhập.
Xem và sửa thông tin cá nhân: Sau khi đăng nhập thành công thì người sử dụng có thể nhấn vào tên mình ở thanh trạng thái đăng nhập để xem cũng như chỉnh sửa thông tin cá nhân của mình. Thành viên có thể đổi mật khẩu hoặc các thông tin khác, tuy nhiên vẫn phải phù hợp như khi đăng kí và bắt buộc phải nhập lại mật khẩu để xác nhận thay đổi.
Tìm bạn dựa trên những tiêu chí cho trước: Thành viên sẽ chọn trong danh sách các tiêu chí để lọc ra các tiêu chí cho người mình cần tìm, sau khi nhập xong và bắt đầu tìm thì hệ thống sẽ hiện ra danh sách các thành viên của Website giảm dần theo mức độ phù hợp và cũng phân trang như danh sách các thành viên, người dùng cũng vẫn có thể nhấn vào tên các thành viên trong danh sách mới để xem thông tin chi tiết của thành viên đó.
Xem thống kê chi tiết của Website: Dù là thành viên chính thức hay là khách thì người sử dụng cũng vẫn được xem các thống kê của Website như số lượng thành viên, phân bố thành viên theo độ tuổi, nghề nghiệp, nơi sống, …
Quyền của admin: admin chỉ có quyền xóa các thành viên vi phạm mà không được chỉnh sửa thông tin của bất kì thành viên nào, có thể thêm thành phố và quốc gia chứ không thể xóa đi, chỉnh sửa nghề nghiệp, sở thích, sở ghét, …
1.4 Biểu đồ hoạt động.
II.PHÂN TÍCH, THIẾT KẾ BÀI TOÁN.
2.1 Biểu đồ trình tự.
2.2 Biểu đồ lớp.
2.3 Thiết kế chi tiết lớp.
City , Country , Info , Job , Liking , User là các lớp tương ứng với các bảng trong database . Trong các lớp này chứa các thuộc tính là các khóa , có thể thêm một vài phương thức hoặc thuộc tính hỗ trợ khác .
CityMapper , CountryMapper , InfoMapper , JobMapper , LikingMapper , UserMapper là các lớp gồm 2 phương thức ToModel và ToEntity dùng để chuyển đổi dữ liệu từ database sang các lớp cụ thể phia trên .
IService là interface mô tả các chức năng của hệ thống , các chức năng này sẽ được cụ thể hóa hơn ở lớp Service .
2.4 Thiết kế Cơ sở dữ liệu.
III. CÔNG NGHỆ VÀ THUẬT TOÁN.
3.1 NET framework và nền tảng ASP.NET.
a) Giới thiệu .NET framework.
.NET Framework là cơ sở hạ tầng cho việc xây dựng, triển khai và chạy các ứng dụng và dịch vụ Web. Nó cung cấp một môi trường đa ngôn ngữ, dựa trên nền các chuẩn với hiệu nǎng cao, cho phép tích hợp những đầu tư ban đầu với các ứng dụng và dịch vụ thế hệ kế tiếp và giải quyết những thách thức của việc triển khai và vận hành các ứng dụng trên quy mô Internet. Cơ sở hạ tầng NET Framework bao gồm ba phần chính là Bộ thực hiện ngôn ngữ chung (Common Language Runtime), một tập phân cấp các thư viện lớp hợp nhất (Unified Class Libraries) và ASP.NET.
Hoàn cảnh ra đời.
Khi Web mới bắt đầu được tạo ra, về cơ bản nó là một hệ thống tập tin chỉ có thể đọc, với ưu điểm là nó sử dụng những chuẩn và giao thức công nghiệp, cho phép truy cập dễ dàng đến nội dung các tập tin.
Vào buổi ban đầu, Web được phát triển bởi ngôn ngữ lập trình C và CGI. Thêm vào đó, phần lớn các ứng dụng Web được xây dựng trên những kiến trúc hai lớp (two-tier), gây ra những thách thức xung quanh khả nǎng biến đổi và tích hợp ứng dụng. Lấy một ví dụ cho vấn đề này là một Website kinh doanh các thanh rèm cửa nhưng lại không bán các rèm cửa, bắt buộc khách hàng phải tìm hiểu ít nhất là hai site khác nhau để có thể mua một bộ rèm cửa (bao gồm thanh và rèm cửa) cho cửa sổ của họ.
Từ những ưu thế của COM và sự ra đời các công nghệ như Active Server Pages (ASP) của Microsoft nǎm 1996, các Website cho ra nhiều tương tác người dùng hơn. ASP thực hiện điều đó một cách dễ dàng để gọi các lôgic doanh nghiệp và các dịch vụ nền tảng mà người phát triển cần thiết thông qua các ngôn ngữ script đơn giản. Với sự hỗ trợ cho COM, các ứng dụng được viết một cách dễ dàng thông qua khả nǎng "đóng gói" lôgic doanh nghiệp này vào trong các khối mô-đun được viết trong một phạm vi rộng các ngôn ngữ lập trình phổ biến như Microsoft Visual Basic, C++ hay COBOL. Mặc dù vậy, những chiến lược này cho công việc hợp nhất các ứng dụng vẫn còn có thiếu sót.
Những tiến bộ trong việc phát triển Web nhanh chóng chuyển từ kiến trúc hai lớp (two-tier) sang một thiết kế N lớp (N-tier) mà cho phép một chiến lược hợp nhất đa dạng hơn qua việc đưa ra các đối tượng doanh nghiệp hay lôgic tầng giữa (middle-tier) tới việc hợp nhất Web với đối tác. Những thách thức trong việc thử sử dụng lôgic doanh nghiệp được "đóng gói" theo kiểu này là phần lớn các ứng dụng được thiết kế trên nền các giao thức độc quyền, "ghép nối chặt".
Để giải quyết những thách thức trong việc phát triển Internet hiện tại và tương lai, chúng ta phải có khả nǎng viết các ứng dụng trên bất cứ ngôn ngữ lập trình nào, truy nhập vào bất cứ nền tảng nào. Chiến lược phát triển ứng dụng rất hấp dẫn này cho phép các công ty tận dụng các hệ thống phần cứng, các ứng dụng hiện hành và thuê các nhà phát triển có sẵn, mà không cần "bắt" họ phải chuyển sang một ngôn ngữ lập trình mới.
Giải pháp này gọi là các dịch vụ Web XML và nó đại diện cho việc phát triển ứng dụng cho thế hệ kế tiếp. Một dịch vụ Web XML là một ứng dụng cho khả nǎng hoạt động của nó theo chương trình qua Internet hay intranet khi sử dụng những giao thức và những chuẩn Internet như HTTP và XML.
Các dịch vụ Web XML giải quyết những thách thức đối với người phát triển Web thông qua kết hợp "ghép nối chặt", những ưu thế của việc tính toán N-tier với "ghép nối lỏng", và những khái niệm hướng thông điệp của Web. Bạn hãy coi các dịch vụ Web XML như lập trình thành phần trên Web.
.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các dịch vụ và ứng dụng Web XML. Tầm nhìn của nền tảng .NET Framework kết hợp một mô hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của Internet. Để đạt được tầm nhìn này, việc thiết kế .NET Framework nhằm một số mục đích:
- Sự hợp nhất thông qua các chuẩn Internet công cộng.
- Khả năng biến đổi được thông qua một kiến trúc “ghép nối lỏng”
- Hỗ trợ nhiều ngôn ngữ.
- Nâng cao nǎng suất cho các nhà phát triển.
- Bảo vệ những sự đầu tư thông qua việc bảo mật đã được cải tiến
- Tận dụng những dịch vụ của hệ điều hành.
Những đặc tính của .NET framework.
Hỗ trợ các chuẩn dịch vụ Web XML.
Hiệu suất cho người phát triển.
Sự nhạy cảm khi giải quyết các thách thức đối với doanh nghiệp thời nay.
Cải thiện các thao tác.
b) Kiến trúc .NET framework.
Chúng ta đã biết .NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp cơ sở (Base Class Libraries) và một phiên bản cấu thành của Microsoft Active Server Pages gọi là Microsoft ASP.NET. Trên thực tế, ASP.NET và Windows Forms là hai thành phần nằm trong Base Class Libraries, nên trong một số tài liệu .NET Framework được giới thiệu bao gồm 2 phần chính là Common Language Runtime (CLR) và Base Class Libraries (BCL). Một trong các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát triển các dịch vụ và các ứng dụng .NET.
Common Language Runtime (gọi tắt là bộ thực thi) được xây dựng trên các dịch vụ hệ điều hành. Nó chịu trách nhiệm thực hiện các ứng dụng và đảm bảo các phần liên quan đến ứng dụng đều được đáp ứng như quản lí bộ nhớ, an ninh bảo mật, tích hợp ngôn ngữ..v.v. Bộ thực thi bao gồm nhiều dịch vụ hỗ trợ phát triển và triển khai ứng dụng cũng như cải thiện tính đáng tin cậy của ứng dụng. Tuy vậy, những nhà phát triển trên thực tế không tương tác với CLR. Họ sử dụng một tập các thư viện lớp cơ sở được xây dựng bên trên bộ thực thi này thông qua các ngôn ngữ lập trình. Như là một phần của các lớp cơ sở, .NET Framework còn cung cấp một mô hình lập trình ứng dụng Web ASP.NET và Windows Forms (để xây dựng các ứng dụng trên Windows). Riêng ASP.NET cung cấp các thành phần và các dịch vụ ở mức cao hơn nhằm mục đích phát triển các dịch vụ và các ứng dụng Web XML.
Common Language Runtime.
Như các bạn đã biết, các ngôn ngữ lập trình khác nhau đều cung cấp một runtime (bộ thực thi) và .NET Framework không phải là một ngoại lệ. Tuy vậy bạn sẽ thấy bộ runtime này là khá đặc biệt so với phần lớn các runtime chúng ta vẫn sử dụng. Common Language Runtime trong .NET Framework quản lý sự thực hiện mã và cung cấp sự truy cập vào nhiều loại dịch vụ giúp cho quá trình phát triển được dễ dàng hơn. CLR đã được phát triển ở tầm cao hơn so với các runtime trước đây như VB-runtime chẳng hạn, bởi nó đạt được những khả nǎng như tích hợp các ngôn ngữ, bảo mật truy cập mã, quản lý thời gian sống của đối tượng và hỗ trợ gỡ lỗi.
Mã được biên dịch và hướng tới CLR có tên "managed code". "Managed code" cung cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các dịch vụ hỗ trợ đa ngôn ngữ, bảo mật mã, quản lý thời gian sống của đối tượng và quản lý bộ nhớ.
Base Class Libraries.
Thư viện các lớp cơ sở .NET Framework cung cấp một tập các lớp ("APIs"), hướng đối tượng, có thứ bậc và có thể mở rộng và chúng được sử dụng bởi bất cứ ngôn ngữ lập trình nào. Như vậy, tất cả các ngôn ngữ từ Jscript cho tới C++ trở nên bình đẳng, và các nhà phát triển có thể tự do lựa chọn ngôn ngữ mà họ vẫn quen dùng.
Tập các lớp, các kiểu giá trị và giao diện này được tổ chức bằng một hệ thống các Namespace (xem định nghĩa phần dưới). Bảng 1 dưới đây đưa ra một mô tả chi tiết những Namespace có sẵn trong .NET Framework. Một điều rất quan trọng là chúng ta không chỉ giới hạn ở các Namespace này. Bạn có thể tự tạo ra Namespace và sử dụng chúng trong ứng dụng của bạn hay cũng có thể sử dụng các Namespace của đối tác thứ ba đang có đầy trên thị trường. Một ví dụ cho trường hợp này là Namespace System.Data.Oracle.
c) ASP.NET.
ASP.NET là một tập các lớp nằm trong thư viện lớp cơ sở. ASP.NET cung cấp một mô hình ứng dụng Web dưới dạng một tập các control (đối tượng điều khiển) và cơ sở hạ tầng giúp bạn tạo ra các ứng dụng Web một cách dễ dàng. Các control này được xây dựng cho các ứng dụng trên máy phục vụ (hay còn gọi là Web Forms) phản ánh những control giao diện người dùng HTML đặc thù như Listbox, Textbox và Button và một tập bổ sung các control Web phức tạp hơn như calendars chẳng hạn. Một đặc tính quan trọng của các control trên là chúng được viết để thích nghi với những khả nǎng của các ứng dụng máy khách. Nói cách khác các đối tượng điều khiển Web forms có thể "đánh hơi" thấy máy khách đang yêu cầu một trang (page) và trả lại người dùng một cách thích hợp (ví dụ như WML cho phone hay Dynamic HTML cho Internet Explorer 5.5).
ASP.NET cũng cung cấp những đặc tính như quản lý trạng thái "cluster session" và phục hồi tiến trình giúp giảm bớt số lượng mã mà một người phát triển phải viết và tǎng độ tin cậy ứng dụng. Ngoài ra ASP.NET cho phép các nhà phát triển chuyển giao phần mềm như là một dịch vụ. Khi sử dụng những đặc tính các dịch vụ Web XML ASP.NET, các nhà phát triển ASP.NET có thể viết những giao dịch logic đơn giản và cơ sở hạ tầng ASP.NET sẽ chịu trách nhiệm chuyển dịch vụ đó theo đường SOAP và các giao thức công cộng khác. ASP.NET làm việc với mọi ngôn ngữ và công cụ (bao gồm cả Visual Basic, C++, C#, và JScript).
3.2 Thuật toán Matching.
Thuật toán Knuth-Morris-Pratt là thuật toán có độ phức tạp tuyến tính đầu tiên được phát hiện ra, nó dựa trên thuật toán brute force với ý tưởng lợi dụng lại những thông tin của lần thử trước cho lần sau. Trong thuật toán brute force vì chỉ dịch cửa sổ đi một ký tự nên có đến m-1 ký tự của cửa sổ mới là những ký tự của cửa sổ vừa xét. Trong đó có thể có rất nhiều ký tự đã được so sánh giống với mẫu và bây giờ lại nằm trên cửa sổ mới nhưng được dịch đi về vị trí so sánh với mẫu. Việc xử lý những ký tự này có thể được tính toán trước rồi lưu lại kết quả. Nhờ đó lần thử sau có thể dịch đi được nhiều hơn một ký tự, và giảm số ký tự phải so sánh lại.
Xét lần thử tại vị trí j, khi đó cửa sổ đang xét bao gồm các ký tự y[j…j+m-1] giả sử sự khác biệt đầu tiên xảy ra giữa hai ký tự x[i] và y[j+i-1].
Khi đó x[1…i]=y[j…i+j-1]=u và a=x[i]¹y[i+j]=b. Với trường hợp này, dịch cửa sổ phải thỏa mãn v là phần đầu của xâu x khớp với phần đuôi của xâu u trên văn bản. Hơn nữa ký tự c ở ngay sau v trên mẫu phải khác với ký tự a. Trong những đoạn như v thoả mãn các tính chất trên ta chỉ quan tâm đến đoạn có độ dài lớn nhất.
u
u
v
b
c
a
x
y
x
j
i+j-1
Dịch cửa sổ sao cho v phải khớp với u và c ¹ a
Thuật toán Knuth-Morris-Pratt sử dụng mảng Next[i] để lưu trữ độ dài lớn nhất của xâu v trong trường hợp xâu u=x[1…i-1]. Mảng này có thể tính trước với chi phí về thời gian là O(m) (việc tính mảng Next thực chất là một bài toán qui hoạch động một chiều).
Thuật toán Knuth-Morris-Pratt có chi phí về thời gian là O(m+n) với nhiều nhất là 2n-1 lần số lần so sánh ký tự trong quá trình tìm kiếm.
IV. XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA.
4.1 Kết quả chương trình minh họa.
Về cơ bản, bài tập lớn đã hoàn thành được các yêu cầu của đề tài nhưng đăng nhập/đăng kí, tìm bạn, xem thông tin thành viên, …Tuy nhiên, nếu xét đến các yếu tố thực tế và các yêu cầu nằm ngoài đề bài thì chương trình vẫn còn nhiều thiếu xót như trình bày chưa được khoa học và cân đối, còn thiếu vài chức năng nhỏ như upload ảnh thành viên, gửi tin nhắn giữa các thành viên và các yếu tố bảo mật.
4.2 Giao diện chương trình.
Xem chi tiết trong phần Hướng dẫn sử dụng trong folder GUIDE.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Tổ chức dự án.
Thành viên:
Vũ Hồng Hoan Trưởng nhóm
Nguyễn Đắc Đồng
Nguyễn Thanh Tùng
Trần Xuân Vũ
Thông tin liên lạc, họp: Nhóm liên lạc chủ yếu thông qua mail và tin nhắn SMS. Các buổi họp nhóm sẽ diễn ra vào chiều thứ 2 hàng tuần.
Công cụ sử dụng: Microsoft Visual Studio .NET 2008 và SQL Server 2005.
2. Kế h