Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Thiết kế phần mềm quản lý phòng nghỉ...

Tài liệu Thiết kế phần mềm quản lý phòng nghỉ

.DOC
84
527
127

Mô tả:

Mục lục Tên mục dòng Trang Mở đầu...................................................................................................................5 Nội dung................................................................................................................7 Chương I................................................................................................................7 Phân tích yêu cầu.............................................................................................7 1. Đặc điểm của hệ thống thông tin quản lý..................................................7 1.1. Phân cấp quản lý.................................................................................7 1.2. Các luồng thông tin............................................................................7 1.2.1. Luồng thông tin vào:...................................................................7 1.2.2. Luồng thông tin ra:......................................................................8 1.3. Mô hình hệ thống thông tin trong quản lý..........................................8 1.4. Kết luận..............................................................................................9 Chương II............................................................................................................10 Phân tích hệ thống quản lý...........................................................................10 1. Phân tích hệ thống quản lý trên quan niệm của người làm quản lý........10 2. Phân tích hệ thống quản lý trên quan niệm của người làm Tin học....10 3. Lựa chọn hệ quản trị (Ngôn ngữ được sử dụng-Thế mạnh của hệ).. .11 3.1. Lựa chọn ngôn ngữ sử dụng:............................................................11 3.2. Lựa chọn cơ sở dữ liệu:....................................................................25 4. Kết luận:..................................................................................................25 Chương III...........................................................................................................26 Phân tích thết kế hệ thống............................................................................26 1. phân tích chức năng của hệ thống...........................................................26 1.1. Lý thuyết:.........................................................................................26 1.2. áp dụng vào đề tài:............................................................................27 2. Biểu đồ luồng dữ liệu (BLD)..................................................................27 3. BLD mức khung cảnh............................................................................28 4. Xét yêu cầu thuê phòng (Lập phiếu thuê phòng)....................................28 Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 1 4.1. Thiết kế dữ liệu với tính đúng đắn...................................................28 4.1.1 biểu mẫu liên quan.....................................................................28 4.1.2 Sơ đồ luồng dữ liệu....................................................................29 4.1.3 Sơ đồ luồng dữ liệu cho quá trình kiểm tra phòng trống............29 4.1.4 Sơ đồ luồng dữ liệu cho quá trình thuê phòng...........................30 4.2. Các thuộc tính mới...........................................................................31 4.2.1 Sơ đồ lớp....................................................................................31 4.2.2 Sơ đồ logic..................................................................................32 4.2.3. Qui định liên quan....................................................................32 4.2.4. Các thuộc tính mới...................................................................32 4.2.5 Sơ đồ lớp....................................................................................32 4.2.6. Các thuộc tính trừu tượng.........................................................32 4.2.7. Sơ đồ logic................................................................................33 5. Xét yêu cầu báo cáo tháng......................................................................33 5.1. Biểu mẫu liên quan...........................................................................33 5.2. Sơ đồ luồng dữ liệu.........................................................................34 5.3. Các thuộc tính mới..........................................................................35 5.4. Sơ đồ lớp.........................................................................................35 5.5. Các thuộc tính trừu tượng................................................................35 5.6. Sơ đồ logic.......................................................................................35 6. Xét yêu cầu lập hoá đơn..........................................................................36 6.1 Thiết kế dữ liệu với tính đúng đắn....................................................36 6.1.1 Biểu mẫu liên quan.....................................................................36 6.1.2 Sơ đồ luồng dữ liệu....................................................................36 6.1.3 Các thuộc tính mới.....................................................................37 6.1.4 Sơ đồ lớp....................................................................................37 6.1.5 Các thuộc tình trừu tượng...........................................................37 6.1.6 Sơ đồ logic..................................................................................38 6.2 Thiết kế dữ liệu với tính tiến hoá......................................................38 Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 2 6.2.1 Quy định liên quan.....................................................................38 6.2.2 Sơ đồ luồng dữ liệu....................................................................38 6.2.3 Sơ đồ lớp....................................................................................39 6.2.4 Các thuộc tính trừu tượng...........................................................39 6.2.5 Sơ đồ logic..................................................................................40 7. Xét yêu cầu lập danh mục phòng............................................................40 7.1 Thiết kế dữ liệu với tính đúng đắn....................................................40 7.1.1 Sơ đồ luồng dữ liệu....................................................................40 7.1.2 Sơ đồ lớp....................................................................................41 7.1.3 Thuộc tính trừu tượng.................................................................41 7.1.4 Sơ đồ logic..................................................................................41 7.2 Thiết kế dữ liệu với tính tiến hoá......................................................41 7.2.1 Qui định liên quan......................................................................41 7.2.2 Sơ đồ luồng dữ liệu....................................................................42 7.2.3 Các thuộc tính mới.....................................................................42 7.2.4 Sơ đồ lớp....................................................................................42 7.2.5 Các thuộc tính trừu tượng...........................................................42 7.2.6 Sơ đồ logic..................................................................................42 8. Xét yêu cầu kiểm tra phòng trống...........................................................42 8.1. Thiế kế biểu mẫu liên quan..............................................................42 8.2. Sơ đồ luồng dữ liệu.........................................................................43 8.3. Các thuộc tính mới..........................................................................43 8.4. Sơ đồ lớp.........................................................................................44 8.5. Các thuộc tính trừu tượng................................................................44 8.6. Sơ đồ logic.......................................................................................44 9. kết luận:......................................................................................................45 chương IV............................................................................................................46 Thiết kế giao diện chương trình...................................................................46 1.Màn hình chính của chương trình............................................................47 Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 3 1.1. Thiết kế màn hình tạo mới phòng....................................................48 Danh sách các biến cố.................................................................................49 1.2. Thiết kế màn hình xoá phòng...........................................................50 Danh sách các biến cố.............................................................................51 1.3. Thiết kế giao diện màn hình tiếp nhận khách..................................53 Danh sách các biến cố.............................................................................53 1.4. Thiết kế giao diện cho màn hình tra cứu phòng...............................56 1.4.1. Màn hình tra cứu theo thời gian................................................56 Danh sách các biến cố.........................................................................56 1.4.2. Màn hình tra cứu theo loại phòng.............................................58 1.4.3. Màn hình tra cứu theo phòng....................................................60 1.5. Thiết kế màn hình cho yêu cầu báo cáo tháng.................................62 2. Một số code chính của chương trình.......................................................64 Code của form main (FrmMain.vb)........................................................64 3. kết luận.......................................................................................................87 Kết luận và hướng phát triển...............................................................................88 1. Kết luận:.....................................................................................................88 2. hướng phát triển:.......................................................................................88 Lời cam đoan.......................................................................................................89 Tài liệu tham khảo...............................................................................................90 Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 4 Mở đầu Trong những năm gần đây sự phát triển mạnh mẽ của công nghệ thông tin, các hệ thống quản lý đã và đang được tin học hoá từng phần, tiến tới tin học hoá toàn bộ. Công việc này đóng góp một phần đáng kể trong công tác quản lý. Hiện tại các công tác quản lý đang còn dựa chủ yếu trên yếu tố con nguời, thủ công, điều này đã bộc lộ nhiều vấn đề bất hợp lý, dẫn tới hiệu quả công việc thấp và không đáp ứng được nhu cầu công việc thực tại. Trong hệ thống quản lý hiện nay, cơ cấu tổ chức còn chồng chéo nhiều phòng ban, không thuận tiện trong việc lưu trữ, lưu chuyển thông tin còn vòng vèo, ùn tắc, làm cho hiệu xuất đáp ứng công việc không cao, kém hiệu quả. Trước tình hình đó, nảy sinh yêu cầu nâng cao tính tự động hoá của việc quản lý, nhằm đáp ứng cung cấp thông tin đầy đủ, chính xác, kịp thời, xử lý chặt chẽ, tạo điều kiện phục vụ tốt nhất cho công việc quản lý. Vì thế, quản lý là một đề tài mà gần như tất cả các cơ quan hành chính, các tổ chức hoạt động đều quan tâm đến, bởi nó quyết định sự hoạt động của cơ quan, tổ chức... có hiệu quả và tối ưu để hoạt động tốt hay không... Đặc biệt là trong ngành du lịch việc quản lý phòng nghỉ lại càng là một vấn đề cấp thiết. Bởi do những đặc điểm riêng của ngành, người làm công tác quản lý phòng nghỉ luôn luôn cần phải nắm rõ các đặc điểm, quá trình hoạt động trong các nhà hàng, khách sạn để có thể theo dõi kịp thời chính xác tình trạng hoạt động của nhà hàng, khách sạn, ví dụ như (Quản lý về khách hàng, dịch vụ, trang thiết bị sử dụng, ...), để từ đó có những biện pháp và kế hoạch đón nhận khách, bảo quản, ... Làm tăng tính hiệu quả trong công tác quản lý phòng nghỉ. Qua đó, ta thấy rằng vấn đề quản lý phòng nghỉ luôn là một vấm đề cấp thiết. Vì vậy, em mạnh dạn chọn: “Thiết kế phần mềm quản lý phòng nghỉ ” để làm đề tài cho đồ án tốt nghiệp. Chương trình Quản lý phòng nghỉ được viết dưới dạng một phần mềm tin học dùng để ứng dụng trong các khách sạn, các nhà hàng có phòng nghỉ, phòng Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 5 cho thuê trọ…, với mục đích quản lý các mặt như: Tiếp nhận khách, Báo cáo doanh thu, lập hoá đơn, ... Nhằm tăng tính hiệu quả cho công việc quản lý. Từ nhiều năm qua trong công tác quản lý ở các khách sạn, nhà hàng, ... hầu hết dùng các công cụ có sẵn như Word, Excel ... Em dùng ngôn ngữ Microsoft Visual Studio .NET 2003 làm ngôn ngữ và cơ sở dữ liệu là Access để viết bài quản lý này, nhằm sử dụng cơ sở dữ liệu một cách hiệu quả hơn, tạo giao diện thân thiện với người sử dụng và cũng nhằm mục đích rèn luyện kỹ năng tự lập trình, tập làm những chương trình lớn, học hỏi thêm ngôn ngữ mới... Chương trình quản lý phòng nghỉ có các chức năng được phân cấp rõ ràng theo từng cấp để bất cứ ai làm công tác quản lý cũng có thể sử dụng được. Mặt khác, chương trình còn cho phép người sử dụng quản trị hệ thống mạnh, tìm kiếm thông tin nhanh, chính xác... Song bên cạnh đó vì thời gian có hạn, nghiệp vụ chưa tìm hiểu chuyên xâu, khả năng lập trình chưa thành thạo,... Mặt khác đây là một phần mềm được em tìm hiểu, phân tích và viết đầu tay, nên em mới đi vào tìm hiểu và phân tích sơ bộ về các chức năng, tìm hiểu nghiệp vụ quản lý nói chung và nghiệp vụ quản lý Phòng nghỉ nói riêng. Vì vậy chương trình này của em còn chứa đựng rất nhiều hạn chế mà em chưa có thời gian khắc phục. Em rất mong nhận được sự đóng góp ý kiến của tất cả các thầy cô giáo, và toàn thể các bạn. Chương trình tìm hiểu phân tích thiết kế phần mềm quản lý phòng nghỉ được thực hiện bởi sinh viên: Hoàng Viết Tân lớp 811b khoa CNTT trường ĐHDL Phương Đông, Dưới sự hướng dẫn của kỹ sư tin học Dương Mạnh Nam, em xin chân thành cảm ơn sự hướng dẫn của thầy Dương Mạnh Nam giúp em hoàn thành tốt đồ án này. Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 6 Nội dung Chương I Phân tích yêu cầu Tổng quan về hệ thống thông tin ứng dụng trong công tác quản lý Phòng nghỉ. Trước khi bắt tay vào thiết kế và xây dựng hệ thống quản lý phòng nghỉ chúng ta có một số khái niệm về hệ thống thông tin quản lý: 1. Đặc điểm của hệ thống thông tin quản lý. 1.1. Phân cấp quản lý. Hệ thống thông tin quản lý là một hệ thống được tổ chức thống nhất từ trên xuống dưới. Có chức năng tổng hợp các thông tin giúp nhà quản lý quản lý tốt cơ sở của mình. Một hệ thống quản lý được phân cấp từ trên xuống dưới. Mọi thông tin được tổng hợp từ dưới lên và chuyển từ trên xuống dưới. 1.2. Các luồng thông tin. 1.2.1. Luồng thông tin vào: Luồng thông tin này bao gồm cả thông tin định hướng của hệ thống cấp trên và các thông tin liên hệ trao đổi với môi trường. Mỗi một bộ phận có lượng thông tin lớn và đa dạng cần phải xử lý. Các thông tin cần phải xử lý có thể được chia làm 3 loại: - Các thông tin luân chuyển: Là loại thông tin chi tiết về các hoạt động hàng ngày của hệ thống. Khối lượng của thông tin này lớn nên đòi hỏi có sự xử lý nhanh, kịp thời. - Các thông tin tổng hợp định kỳ: Là thông tin tổng hợp về hoạt động của cấp dưới báo lên cấp trên. Những thông tin thu thập này là những thông tin được ghi chép trực tiếp từ các bộ phận trong hệ thống thừa hành. - Thông tin dùng để tra cứu: Là các thông tin dùng chung trong hệ thống. Các thông tin này tồn tại một thời gian dài trong hệ thống và ít thay đổi, được dùng để tra cứu trong việc xử lýcác thông tin luân chuyển và thông tin tổng hợp. Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 7 1.2.2. Luồng thông tin ra: Thông tin đầu ra được tổng hợp từ các thông tin đầu vào và phụ thuộc vào từng yêu cầu quản lý cụ thể. Thông tin ra là việc tra cứu nhanh về một đối tượng cần quan tâm. Mỗi lần tra cứu yêu cầu thông tin ra có thể hoàn toàn khác nhau nhưng điều quan trọng là thông tin ra phải chính xác, kịp thời. Các báo cáo, tổng hợp, thống kê, thông báo là các thông tin quan trọng nhất được tổng hợp trong quá trình xử lý. Các biểu mẫu báo các thống kê phải phản ánh cụ thể, trực tiếp sát với một đơn vị, một đối tượng. Đối với cán bộ quản lý cấp cao (là người xây dựng mục tiêu hoạt động của hệ thống, đặt hướng đi cho hệ thống) thì : - Thông tin ngoài là quan trọng nhất - Thông tin khi cung cấp cần có tính khái quát, cô đọng và tổng hợp. Đối với cán bộ cấp trung gian với nhiệm vụ chủ yếu là tiến hành hoá các mục tiêu nhiệm vụ cụ thể, liên kết các bộ phận trong tổ chức. - Thông tin trong quan trọng hơn. - Thông tin mang tính chi tiết và định hướng Đối với cán bộ cấp cơ sở: Là những người trực tiếp thực hiện các nhiệm vụ cụ thể thì cần cung cấp thông tin cho họ đầy đủ và càng chi tiết càng tốt. 1.3. Mô hình hệ thống thông tin trong quản lý. Để tổ chức các thông tin phục vụ quản lý, cần xây dựng các modul dữ liệu gồm: Các modul cập nhật, xử lý thông tin tổng hợp và thông tin luân chuyển: vì lượng thông tin này lớn đòi hỏi tốc độ xử lý nhanh và chính xác, khi xây dựng cần phải quan tâm đến các yêu cầu sau: - Tổ chức màn hình hợp lý giảm thao tác của người sử dụng - Nắm vững những thông tin quan trọng từ thông tin cần cập nhật - Tự động nạp các giá trị đã biết và những giá trị lặp lại - Kiểm tra, phát hiện nhanh các sai sót khi nhập liệu và có thông báo cho người sử dụng biết... Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 8 1.4. Kết luận Việc phân tích yêu cầu là một vấn đề không thể thiếu đối với những ai làm một đồ án, một đề tài, một công việc cụ thể nào đó,… Đây là bước đầu tiên, để giải thích câu hỏi (cần phải làm gì?). Việc phân tích yêu cầu giúp cho chúng ta biết và hiểu rõ vấn đề của bài toán, giúp người thực hiện hiểu mình cần biết về những gì chuẩn bị thực hiện và đang được thực hiện, cụ thể như: Nắm được đặc điểm của hệ thống quản lý - Phân cấp quản lý - Các luồng thông tin vào ra - Mô hình của hệ thống thông tin trong quản lý - Yêu cầu đơn vị - Yêu cầu người sử dụng Từ những yêu cầu mà hệ thống quản lý cần, chúng ta lại tiếp tục đi vào phân tích hệ thống quản lý, để từ đó biết được hệ thống được hiểu như thế nào. Trên quan niệm của người làm quản lý, và trên quan niệm của người làm tin học, cùng với biết được định hướng của người viết hệ thống dùng ngôn ngữ và công cụ hỗ trợ để thực hiện đồ án. Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 9 Chương II Phân tích hệ thống quản lý 1. Phân tích hệ thống quản lý trên quan niệm của người làm quản lý Mỗi đơn vị có những yêu cầu và đặc điểm riêng. Hệ thông tin quản lý phải đáp ứng được các yêu cầu quản lý của đơn vị đó. Nhà quản lý đơn vị phải là người đề đạt và quyết định đưa các ứng dụng tin học vào công tác quản lý. Như vậy một hệ thông tin quản lý cần phải nắm được chiến lược phát triển chung của đơn vị quản lý, không để những thay đổi nhỏ về tổ chức cũng như về quản lý làm sai lệch thông tin tập hợp. Trong quá trình phát triển hệ thống cần phải kiểm chứng tính đúng đắn, tính khoa học đồng thời hệ thống luôn phải được hoàn thiện, điều chỉnh cho phù hợp. Các thông tin đầu ra phải đảm bảo tính mục tiêu, rõ ràng, chính xác, đầy đủ đáp ứng yêu cầu của nhà quản lý. 2. Phân tích hệ thống quản lý trên quan niệm của người làm Tin học. Đây chính là yêu cầu của người sử dụng hệ thống không chỉ đơn thuần là thao tác vói máy. Điều quan trọng là hệ thống không chỉ đáp ứng cho người thông thạo về tin học mà còn đáp ứng cho những người hiêủ biết rất ít về máy tính. Khi thiết kế phải đảm bảo các yêu cầu sau: - Yêu cầu về nhập dữ liệu: Hệ thống phải có khả năng truy nhập dữ liệu từ xa, nhanh chóng, thuận lợi , chuẩn xác, các thao tác phải thuận lợi, đơn giản nhưng phải đáp ứng đầy đủ các yêu cầu truy nhập dữ liệu từ xa. -Yêu cầu về hệ thống thông tin: Hệ thống phải được bảo mật, bảo trì, có tính mở để phát triển, điều chỉnh. Đặc biệt phải có các khả năng kiểm tra sự đúng đắn của dữ liệu cũng như khả năng phát hiện lỗi và xử lý lỗi. - Yêu cầu về giao diện: Giao diện giữa người và máy phải được thiết kế khoa học, đẹp, không cầu kỳ, phải có tính thống nhất về phương pháp làm việc, cách trình bày, khả năng trợ giúp tốt kịp thời giải quyết tốt mọi thắc mắc của người sử dụng. Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 10 - Yêu cầu về đối thoại, giải đáp: Hệ thống phải có khả năng thực hiện chế độ hội thoại ở một mức nào đó nhằm cung cấp nhanh, chuẩn xác yêu cầu của nhà quản lý. Đây là tính mở của hệ thống nhằm đảm bảo cho người sử dụng khai thác tối đa mà hệ thống cung cấp. 3. Lựa chọn hệ quản trị (Ngôn ngữ được sử dụng-Thế mạnh của hệ). 3.1. Lựa chọn ngôn ngữ sử dụng: Như nhũng phân tích hệ thống quản lý trên quan niệm của người làm quản lý và quan niệm của người làm tin học đã được nói ở phần trên. Em đã quết định sử dụng hệ quản trị cơ sở dữ liệu là Microsoft Visual Studio .NET 2003. (Hiện nay đã xuất hiện một số hệ quản trị của Visual có nhiều trợ giúp cho công việc thiết kế cũng như viết mã ...) Trên thế giới cũng có rất nhiều ngôn ngữ lập trình, nhưng đối với ngôn ngữ lập trình định hướng đối tượng thì hay dùng Visua Basic 6.0, hiện nay dựa trên những nền tảng sẵn có của hệ ngôn ngữ này mà Microsoft cho ra hệ ngôn ngữ Microsoft Visual Studio .NET. Microsoft Visual Studio .NET 2003 có những đặc điểm phát triển mạnh và hỗ trợ nhiều cho lập trình viên, ngôn ngữ này có những đặc điểm khác biệt so với ngôn ngữ VisuaBasic 6.0. Những khỏc biệt giữa VB.NET với VB6 VB.NET, cũn gọi là VB7, chẳng qua là C# viết theo lối Visual Basic. Nay VB7 đó hoàn toàn là Object Oriented, tức là cho ta dựng lại (reuse) classes/forms theo cỏch thừa kế thật thoải mỏi, nờn nú khỏc VB6 nhiều lắm. Dự vậy, đối với VB6 programmers học VB.NET không khó. Lý do là VB.NET khụng cho thờm nhiều từ mới (reserved words). Nói chung các ý niệm mới trong VB.NET đều dễ lĩnh hội, nhất là khi đem ra áp dụng cách thực tế. Đó là nhờ Microsoft vẫn giữ nguyên tắc dấu và làm sẵn (của VB6) những gỡ rắc rối phớa sau sõn khấu, để ta có thể tập trung vào việc tỡm kiếm một giải phỏp, thay vỡ quỏ bận tõm vào cỏch thức làm một việc gỡ. Chính nguyên tắc ấy đó giỳp Microsoft chiờu mộ được 3 triệu VB6 programmers trên khắp thế giới. VB.NET cống hiến cho VB programmers một Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 11 công cụ rất hữu hiệu để dùng cho mọi hoàn cảnh, từ database, desktop, distributed, internet cho Đến real-time hay mobile (pocket PC). Những ưu điểm (features) của VB.NET Đến từ chức năng của .NET Những điểm khác nhau giữa VB6 và VB.NET từ quan điểm ngôn ngữ lập trỡnh. Namespaces Namespaces là một cách đặt tên để giúp sắp đặt các Classes ta dùng trong program một cách thứ tự đều dễ tỡm kiếm chỳng. Tất cả code trong .NET, viết bằng VB.NET, C# hay ngụn ngữ nào khỏc, đều được chứa trong một namespace. Điểm này cũng áp dụng cho code trong .NET system class libraries. Chẳng hạn, các classes của WinForms đều nằm trong System.Windows.Forms namespace. Và các classes dùng cho collections như Queue, Stack, Hashtable .v.v.. đều nằm trong System.Collections namespace. Tất cả code ta viết trong program của mỡnh cũng đều nằm trong các namespaces. Trước đây trong VB6, mỗi khi nhắc Đến một Class trong một COM tờn CompName ta viết CompName.classname (cũn gọi là PROGID) , tức là cũng dùng một dạng namespace. Tuy nhiên phương pháp này cú một vài giới hạn:  Địa chỉ của class bị buộc cứng vào component đang chứa nó.  Những classes khụng nằm trong một COM component thỡ khụng cú "namespace".  Cỏch gọi tờn PROGID chỉ cú một bậc thụi, khụng cú bậc con, bậc chỏu.  Tờn của Component luụn luụn cú hiệu lực trờn khắp cả computer. Namespaces trong .NET khắc phục được mọi giới hạn núi trờn trong VB6. Nhiều assemblies cú thể nằm trong cựng một namespace, nghĩa là classes tuyờn bố trong cỏc components khác nhau có thể có chung một namespace. Điều này Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 12 cũng ỏp dụng xuyờn qua cỏc ngụn ngữ, giỳp cho một class viết trong VB.NET cú thể nằm trong cựng một namespace với một class viết trong C#, chẳng hạn. Hơn nữa, trong một assembly có thể có nhiều namespaces, dù rằng thông thường ta chỉ dùng một namespace duy nhất cho tất cả các classes trong ấy. Local và Global Namespaces Khác với COM components với "namespace" của chúng áp dụng cho khắp cả computer, namespaces của .NET thông thường là Local, chỉ cú application program của nú thấy mà thụi. .NET cũng hổ trợ Global namespace, nhưng phải được ký tờn (digitally signed) và đăng ký với .NET runtime để chứa nó trong global assembly cache. Công việc làm một namespace Global rắc rối như thế để giảm thiểu trường hợp ta trở về tỡnh trạng DLL hell trước đây. Dựng Namespaces Ta cú thể dựng namespaces bằng cỏch núi thẳng ra (explicitly) với nguyờn tờn (Direct Addressing) hay hàm ý (implicitly) với Import keyword. Nhưng điều tiên quyết là ta phải reference cái assembly chứa namespace mà ta muốn dựng. Ta thực hiện việc ấy với Menu command Project Add References. Khi Add References dialog hiện ra, chọn Tab .NET cho standard .NET components hay Tab Projects cho DLL của một .NET project khỏc , highlight DLL bạn muốn rồi click Select button, đoạn click OK. Chẳng hạn ta muốn read và write từ stdio (cỏi console input/output stream). Cỏi namespace ta cần sẽ là System.Console. Trong cỏch Direct Addressing ta sẽ code như sau để viết hàng chữ "Chào thế giới": System.Console.WriteLine ("Hello world!") Nếu ta dựng Import keyword bằng cỏch nhột vào cõu Imports System.Console ở đầu code module, ta có thể code gọn hơn: WriteLine ("Hello world!") Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 13 Dưới đây là một số namespaces thông dụng: Namespace System.IO System.Drawi ng Chức năng Đọc/Viết files và các FileStream, Path, StreamReader, data streams khác StreamWriter Đồ họa System.Data Quản lý data System.Collect Tạo và quản lý ion cỏc loại collections System.Math Tớnh toỏn System.Diagno Debug stics Làm việc với System.XML System.Securit y Classes điển hỡnh Bitmap, Brush, Pen Color, Font, Graphics DataSet, DataTable, DataRow, SQLConnection, ADOConnection ArrayList, BitArray, Queue, Stack, HashTable Sqrt, Cos, Log, Min Debug, Trace XMLDocument, XML, Document XMLElement, XMLReader, Object Model XMLWriter Cho phộp kiểm soỏt an ninh Cryptography, Permission, Policy Aliasing Namespaces (dựng bớ danh) Khi hai namespaces trùng tên, ta phải dùng nguyên tên (kể cả gốc tích) để phân biệt chúng. Điển hỡnh là khi ta dựng những namespaces liờn hệ Đến VB6 như Microsoft.Visualbasic. Thay vỡ code: Microsoft.Visualbasic.Left ( InputString,6) ta tuyờn bố: Imports VB6= Microsoft.Visualbasic Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 14 Sau đó ta có thể code: VB6.Left ( InputString,6) Tất cả đều là Object Một thay đổi lớn cho Data Type của VB.NET, là những variables dùng Data Type địa phương như Integer, Single, Boolean,.v.v.. đều là những Objects. Chúng đều được derived (xuất phát) từ Class căn bản nhất tên Object trong VB.NET. Nếu bạn thử dựng Intellisense để xem có bao nhiêu Functions/Properties một Object loại Integer có, bạn sẽ thấy như dưới đây: Trong .NET, Integer cú bốn loại: Byte (8 bits, khụng cú dấu, tức là từ 0 Đến 255), Short (16 bits, cú dấu cộng trừ, tức là từ -32768 Đến 32767), Integer (32 bits, cú dấu) và Long (64 bits, có dấu). Như vậy Integer bây giờ tương đương với Long trong VB6, và Long bây giờ lớn gấp đôi trong VB6. Floating-Point Division Việc chia số nổi (Single, Double) trong VB.NET được làm theo đúng tiêu chuẩn của IEEE. Do đó nếu ta viết code như sau: Dim dValueA As Double Dim dValueB As Double dValueA = 1 dValueB = 0 Console.WriteLine(dValueA / dValueB) Trong VB6 ta biết mỡnh sẽ gặp Division by Zero error, nhưng ở đây program sẽ viết trong Output Window chữ Infinity (vụ cực). Tương tự như vậy, nếu ta viết code: Dim dValueA As Double Dim dValueB As Double dValueA = 0 dValueB = 0 Console.WriteLine(dValueA / Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 15 dValueB) Kết quả sẽ là chữ NaN (Not a Number) hiển thị trong Output Window. Thay thế Currency bằng Decimal VB.NET dùng Decimal data type với 128 bits để thay thế Currency data type trong VB6. Nó có thể biểu diễn một số tới 28 digits nằm bên phải dấu chấm để cho thật chính xác. Hể càng nhiều digits nằm bên phải dấu chấm thỡ tầm trị số của Decimal càng nhỏ hơn. Char Type VB.NET cú cả Byte lẫn Char data type. Byte được dùng cho một số nhỏ 0255, có thể chứa một ASCII character trong dạng con số. Char được dùng để chứa một Unicode (16 bit) character. Char là một character của String. String Type Nhỡn lướt qua, String trong VB.NET khụng cú vẻ khỏc VB6 bao nhiờu. Nhưng trừ khi ta muốn tiếp tục dùng các Functions như InStr, Left, Mid and Right trong VB6, ta nên xem String là một object và dùng những Properties/Functions của nó trong VB.NET cho tiện hơn. í niệm fixed-length (có chiều dài nhất định) String trong VB6 không cũn dựng nữa. Do đó ta không thể declare: Dim myString As String * 25 Object thay thế Variant Một trong những data types linh động, hiệu năng và nguy hiểm trong VB6 là Variant. Một variable thuộc data type Variant có thể chứa gần như thứ gỡ cũng được (trừ fixed-length string), nó tự động thích nghi bên trong để chứa trị số mới. Cái giá phải trả cho sự linh động ấy là program chạy chậm và dễ có bugs tạo ra bởi sự biến đổi từ data loại này qua loại khỏc khụng theo dự tớnh của ta. VB.NET thay thế Variant bằng Object. Vỡ trờn phương diện kỹ thuật tất cả data types trong .NET đều là Object nên, giống như Variant, Object có thể chứa đủ thứ. Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 16 Núi chung, dự Object giống như Variant, nhưng trong .NET ta phải núi rừ ra (explicitly) mỡnh muốn làm gỡ. Ta thử xem một thớ dụ code trong VB6 nh ư sau: Private Sub Button1_Click() Dim X1 As Variant Dim X2 As Variant X1 = "24.7" X2 = 5 Debug.Print X1 + X2 ' Cộng hai số với operator + Debug.Print X1 & X2 ' Ghộp hai strings lại với operator & End Sub Kết quả hiển thị trong Immediate Window là : 29.7 24.75 Trong VB.NET, ta phải code cho rừ ràng hơn như sau để có cùng kết quả như trên hiển thị trong Output Window: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim X1 As Object Dim X2 As Object X1 = "24.7" X2 = 5 Console.WriteLine(CSng(X1) + CInt(X2)) Console.WriteLine(CStr(X1) & CStr(X2)) End Sub Thay đổi trong cách tuyên bố Variables Tuyên bố nhiều Variables Trong VB6 ta có thể Declare nhiều variables trên cùng một hàng như: Dim i, j, k As Integer Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 17 Kết quả là chỉ cú k là Integer, cũn i và j là Variant (cú thể đó là điều bạn không ngờ). Trong VB.NET thỡ cả ba i,j và k đều là Integer, và như thế hợp lý hơn. Tuyên bố sau khi khởi đầu Trong VB6, sau khi declare variable ta thường cho nó một trị s ố khởi đầu như: Dim X As Integer X = 12 Bây giờ trong VB.NET ta có thể gọp chung hai statements trên lại nh ư sau: Dim X As Integer = 12 Tuyên bố Constants Khi tuyờn bố Constants trong VB.NET ta phải khai rừ Data type của nú là String, Integer, Boolean ..v.v.: Public Const myConstantString As String = "happy" Public Const maxStuđếnt As Integer = 30 Dim As New Trong VB6 ta được khuyên khụng nờn code: Dim X As New Customer vỡ VB6 khụng instantiate một Object Customer cho Đến khi X được dùng Đến - chuyện này rất nguy hiểm vỡ cú thể tạo ra bug mà ta khụng ngờ. Trong VB.NET ta cú thể yờn tõm code: Dim X As New Customer() vỡ statement núi trờn lập tức tạo ra một Object Customer. Tuyên bố Variable trong Scope của Block Trong thí dụ dưới đây, variable X được declared trong một IF ..THEN...END IF block. Khi execution ra khỏi IF block ấy, X sẽ bị hủy diệt. Do đó, VB.NET sẽ than phiền là X undefined vỡ nú khụng thấy X bờn ngoài IF Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 18 block. Luật này cũng áp dụng cho những Blocks khác như DO...LOOP, WHILE...END WHILE, FOR...NEXT, .v.v.. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim A As Integer = 5 Dim B As Integer = 5 If A = B Then Dim X As Integer ' X is declared in this IF block X = 12 End If A = X ' X has been destroyed, so it is undefined here End Sub Cú lẽ bạn hỏi Declare Variable trong FOR...LOOP cú lợi gỡ, tại sao ta không Declare một lần duy nhất ở đầu? Thứ nhất là Block giới hạn scope (phạm vi hoạt động) của một variable để nó không đụng chạm ai dễ gây nên bug, thứ hai là trường hợp điển hỡnh ta sẽ cần feature này là trong một FOR...LOOP, cứ mỗi iteration ta muốn instantiate một Object mới. Khi ấy ta cần Declare một Object variable, instantiate Object , rồi chứa nú vào một collection chẳng hạn. Truy cập Variable/Class/Structure Trong VB.NET ta có thể quyết định giới hạn việc truy cập một Variable, Class, Structure .v.v. bằng cỏch dựng cỏc keywords sau: Loại truy cập Thớ dụ Chỳ thớch Cho phép ở đâu cũng dùng nó Publi c Public Class ClassForEverybody được. Ta chỉ có thể dùng Public ở mức độ Module, Namespace hay File. Tức là ta không thể dùng Public trong một Sub/Function. Prote Protected Class Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 Cho phép các classes con, cháu 19 cted ClassForMyHeirs Frien d te ở mức độ Class. Friend StringForThisProject As String Priva được dùng. Ta chỉ có thể dùng Protected Private NumberForMeOnly As Integer Cho phép code trong cùng một Project được dùng. Cho phép code trong cùng module, class, hay structure được dùng. Lưu ý là Dim coi như tương đương với Private, do đó ta nên dùng Private cho dễ đọc. Ngoài ra, nhớ là nếu container (Object chứa) của một Variable/Class/Structure là Private thỡ dự ta cú tuyờn bố một Variable/Class/Structure nằm bờn trong container là Public ta cũng khụng thấy nú từ bờn ngoài. Thay đổi trong Array Array index từ 0 Trong VB.NET khụng cú Option Base và mọi Array đều có index bắt đầu từ 0. Khi bạn tuyên bố một array như: Dim myArray(10) As Integer Kết quả là một array cú 11 elements và index từ 0 Đến 10. UBound của array này là 10 và LBound của tất cả arrays trong VB.NET đều là 0. Tuyên bố Array với những trị số khởi đầu Bạn cú thể tuyờn bố Array với những trị số khởi đầu như sau: Dim myArray() As Integer = { 1, 5, 8, 16 } ' Note the curly brackets Statement làm hai chuyện: quyết định size của array và cho các elements trị số khởi đầu. Để dùng feature này, bạn không được nói rừ size của array, mà để cho program tự tớnh. ReDim Preserve Sinh viªn: Hoµng ViÕt T©n, MS: P§ 811127 20
- Xem thêm -

Tài liệu liên quan