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
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 Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang Hà Nội, tháng 5 năm 2010 Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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 I. 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 II. 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 III. 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 IV. 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 Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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 Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang PHÂN CÔNG THÀNH VIÊN TRONG NHÓM. Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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. Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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 Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang ( 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, … Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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. Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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 . Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B [...]... 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ụ... 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 đã... tìm kiếm Nhóm 13 – Lớp Hệ thống thông tin k52 – De09B Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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... 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ổ... 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... 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... 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ộ... Bài tập lớn OOP Giảng viên hướng dẫn : ThS Nguyễn Thị Thu Trang 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... 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... 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