Tải bản đầy đủ (.doc) (88 trang)

Thiết kế phần mềm quản lý phòng nghỉ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (623.42 KB, 88 trang )

Website: Email : Tel : 0918.775.368
Mục lục
Tên mục dòng Trang
Mở đầu......................................................................................................................4
Nội dung....................................................................................................................6
Chơng I......................................................................................................................6
Phân tích yêu cầu..................................................................................................6
1. Đặc điểm của hệ thống thông tin quản lý.....................................................6
1.1. Phân cấp quản lý....................................................................................6
1.2. Các luồng thông tin................................................................................6
1.2.1. Luồng thông tin vào:.......................................................................6
1.2.2. Luồng thông tin ra: ........................................................................7
1.3. Mô hình hệ thống thông tin trong quản lý.............................................7
1.4. Kết luận..................................................................................................8
Chơng II.....................................................................................................................9
Phân tích hệ thống quản lý....................................................................................9
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ý...............9
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...............9
3. Lựa chọn hệ quản trị (Ngôn ngữ đợc sử dụng-Thế mạnh của hệ).............10
3.1. Lựa chọn ngôn ngữ sử dụng:...............................................................10
3.2. Lựa chọn cơ sở dữ liệu:........................................................................23
4. Kết luận:......................................................................................................23
Chơng III.................................................................................................................24
Phân tích thết kế hệ thống...................................................................................24
1. phân tích chức năng của hệ thống...............................................................24
1.1. Lý thuyết:.............................................................................................24
1.2. áp dụng vào đề tài:...............................................................................25
2. Biểu đồ luồng dữ liệu (BLD)......................................................................25
3. BLD mức khung cảnh................................................................................26
4. Xét yêu cầu thuê phòng (Lập phiếu thuê phòng)........................................26
4.1. Thiết kế dữ liệu với tính đúng đắn ......................................................26


4.1.1 biểu mẫu liên quan.........................................................................26
4.1.2 Sơ đồ luồng dữ liệu........................................................................27
4.1.3 Sơ đồ luồng dữ liệu cho quá trình kiểm tra phòng trống...............27
4.1.4 Sơ đồ luồng dữ liệu cho quá trình thuê phòng...............................28
4.2. Các thuộc tính mới ..............................................................................29
4.2.1 Sơ đồ lớp........................................................................................29
4.2.2 Sơ đồ logic.....................................................................................30
4.2.3. Qui định liên quan.......................................................................30
4.2.4. Các thuộc tính mới.......................................................................30
4.2.5 Sơ đồ lớp........................................................................................30
4.2.6. Các thuộc tính trừu tợng..............................................................30
4.2.7. Sơ đồ logic..................................................................................31
5. Xét yêu cầu báo cáo tháng.........................................................................31
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
5.1. Biểu mẫu liên quan..............................................................................31
5.2. Sơ đồ luồng dữ liệu.............................................................................32
5.3. Các thuộc tính mới..............................................................................33
5.4. Sơ đồ lớp ............................................................................................33
5.5. Các thuộc tính trừu tợng.....................................................................33
5.6. Sơ đồ logic..........................................................................................33
6. Xét yêu cầu lập hoá đơn..............................................................................34
6.1 Thiết kế dữ liệu với tính đúng đắn........................................................34
6.1.1 Biểu mẫu liên quan........................................................................34
6.1.2 Sơ đồ luồng dữ liệu........................................................................34
6.1.3 Các thuộc tính mới.........................................................................35
6.1.4 Sơ đồ lớp........................................................................................35
6.1.5 Các thuộc tình trừu tợng................................................................35
6.1.6 Sơ đồ logic.....................................................................................36
6.2 Thiết kế dữ liệu với tính tiến hoá..........................................................36

6.2.1 Quy định liên quan........................................................................36
6.2.2 Sơ đồ luồng dữ liệu........................................................................36
6.2.3 Sơ đồ lớp........................................................................................37
6.2.4 Các thuộc tính trừu tợng................................................................37
6.2.5 Sơ đồ logic.....................................................................................38
7. Xét yêu cầu lập danh mục phòng................................................................38
7.1 Thiết kế dữ liệu với tính đúng đắn........................................................38
7.1.1 Sơ đồ luồng dữ liệu........................................................................38
7.1.2 Sơ đồ lớp........................................................................................39
7.1.3 Thuộc tính trừu tợng......................................................................39
7.1.4 Sơ đồ logic.....................................................................................39
7.2 Thiết kế dữ liệu với tính tiến hoá..........................................................39
7.2.1 Qui định liên quan.........................................................................39
7.2.2 Sơ đồ luồng dữ liệu........................................................................40
7.2.3 Các thuộc tính mới.........................................................................40
7.2.4 Sơ đồ lớp........................................................................................40
7.2.5 Các thuộc tính trừu tợng................................................................40
7.2.6 Sơ đồ logic.....................................................................................40
8. Xét yêu cầu kiểm tra phòng trống .............................................................40
8.1. Thiế kế biểu mẫu liên quan .................................................................40
8.2. Sơ đồ luồng dữ liệu.............................................................................41
8.3. Các thuộc tính mới..............................................................................41
8.4. Sơ đồ lớp.............................................................................................42
8.5. Các thuộc tính trừu tợng.....................................................................42
8.6. Sơ đồ logic..........................................................................................42
9. kết luận:...........................................................................................................43
chơng IV..................................................................................................................44
Thiết kế giao diện chơng trình............................................................................44
1.Màn hình chính của chơng trình......................................................................45
1.1. Thiết kế màn hình tạo mới phòng.......................................................46

Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
Danh sách các biến cố....................................................................................47
1.2. Thiết kế màn hình xoá phòng .............................................................48
Danh sách các biến cố...............................................................................49
1.3. Thiết kế giao diện màn hình tiếp nhận khách.....................................51
Danh sách các biến cố................................................................................51
1.4. Thiết kế giao diện cho màn hình tra cứu phòng .................................53
1.4.1. Màn hình tra cứu theo thời gian...................................................54
Danh sách các biến cố...........................................................................54
1.4.2. Màn hình tra cứu theo loại phòng.................................................56
1.4.3. Màn hình tra cứu theo phòng........................................................57
1.5. Thiết kế màn hình cho yêu cầu báo cáo tháng ...................................60
2. Một số code chính của chơng trình.................................................................61
Code của form main (FrmMain.vb)...........................................................61
3. kết luận............................................................................................................85
Kết luận và hớng phát triển.....................................................................................85
1. Kết luận:..........................................................................................................85
2. hớng phát triển:..............................................................................................86
Lời cam đoan...........................................................................................................87
Tài liệu tham khảo...................................................................................................88
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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 lu trữ, lu 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 cho
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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ụ cha tìm hiểu
chuyên xâu, khả năng lập trình cha 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 cha 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.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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 nhng
đ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...
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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 nhng
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
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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.
- 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, nhng đố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.
Nhng khỏc bit gia VB.NET vi VB6
VB.NET, cũn gi l VB7, chng qua l C# vit theo li Visual Basic. Nay

VB7 ó hon ton l Object Oriented, tc l cho ta dựng li (reuse)
classes/forms theo cỏch tha k tht thoi mỏi, nờn nú khỏc VB6 nhiu lm.
Dự vy, i vi VB6 programmers hc VB.NET khụng khú. Lý do l VB.NET
khụng cho thờm nhiu t mi (reserved words). Núi chung cỏc ý nim mi
trong VB.NET u d lnh hi, nht l khi em ra ỏp dng cỏch thc t. ú l
nh Microsoft vn gi nguyờn tc du v lm sn (ca VB6) nhng gỡ rc ri
phớa sau sõn khu, ta cú th tp trung vo vic tỡm kim mt gii phỏp, thay
vỡ quỏ bn tõm vo cỏch thc lm mt vic gỡ.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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
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
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
bố trong các components khác nhau có thể có chung một namespace. Điều này
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!")
Dưới đây là một số namespaces thông dụng:
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
Namespace Chức năng Classes điển hình
System.IO
Đọc/Viết files và các
data streams khác
FileStream, Path,
StreamReader, StreamWriter
System.Drawing Đồ họa
Bitmap, Brush, Pen Color,
Font, Graphics
System.Data Quản lý data
DataSet, DataTable, DataRow,
SQLConnection,
ADOConnection
System.Collection
Tạo và quản lý
các loại collections
ArrayList, BitArray,
Queue, Stack, HashTable
System.Math Tính toán Sqrt, Cos, Log, Min

System.Diagnostics Debug Debug, Trace
System.XML
Làm việc với
XML, Document
Object Model
XMLDocument,
XMLElement, XMLReader,
XMLWriter
System.Security
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
Sau đó ta có thể code:
VB6.Left ( InputString,6)
TÊt c¶ ®Òu lµ Object
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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 / 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
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
để 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ỏ 0-

255, 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ứ.
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"
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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
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:
Website: Email : Tel : 0918.775.368

Website: Email : Tel : 0918.775.368
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
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?
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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
Public
Public Class
ClassForEverybody
Cho phép ở đâu cũng dùng nó
đượ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.
Protected
Protected Class
ClassForMyHeirs
Cho phép các classes con,
cháu được dùng. Ta chỉ có thể dùng
Protected ở mức độ Class.
Friend
Friend

StringForThisProject As
String
Cho phép code trong cùng một
Project được dùng.
Private
Private
NumberForMeOnly As
Integer
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à
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
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
Trong VB.NET bạn cũng có thể tiếp tục dùng Preserve keyword để giữ
nguyên trị số của các elements trong một array khi bạn ReDim nó. Tuy nhiên có
một giới hạn cho array với hơn một dimension - bạn chỉ có thể resize dimention
cuối (bên phải) , nên những hàng code sau đây hợp lệ:
Dim myArray(,) As String
ReDim myArray(5, 5)
ReDim Preserve myArray(5, 8)
Thay ®æi trong User-Defined Type
Ý niệm User-Defined Type (UDT) rất tiện cho ta gom các mảnh data liên
hệ lại thành một data type có cấu trúc. Trong VB6 ta dùng nó như sau:
Public Type UStuđếnt
FullName As String
Age As Integer
End Type
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
VB.NET cũng giữ y đặc tính của UDT nhưng thay đổi chữ Type thành
Structure:
Public Structure UStuđếnt
Public FullName As String
Public Age As Integer
End Structure
Lưu ý các Structure Members (như FullName , Age ) cần phải được
Declared với keyword Dim, Public, Private hay Friend, nhưng không thể dùng
Protected vì Structure không thể Inherit từ một Structure khác. Sở dĩ, có dùng
Private là vì bên trong Structure có thể có Property, Sub/Function .v.v..
Arithmetic Operators míi
VB.NET cho ta thêm cách viết Arithmetic Operator mới mà C

programmers rất thích từ lâu nay.
X += 4 tương đương với X = X + 4
Mess &= " text" tương đương với Mess = Mess & " text"
Arithmetic Operation Trong VB6 Cách viết tắc mới
Cộng X = X +5 X += 5
Trừ X = X - 10 X -= 10
Nhân X = X * 7 X *= 7
Chia X = X / 19 X /= 19
Chia Integer X = X \ 13 X \= 13
Lũy thừa X = X ^ 3 X ^= 3
Ghép Strings X = X & "more text" X &= "more text"
Ta vẫn có thể tiếp tục dùng cách viết trong VB6, nhưng bây giờ có thêm một
cách viết gọn hơn.
Short Circuit trong IF..THEN Statement
Trong VB6, nếu ta viết:
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
Dim myInt As Integer
myInt = 0
If (myInt <> 0) And (17 \ myInt < 5 ) Then
Thì sẽ bị Division by Zero error, vì mặc dù phần (myInt <>0) là False,
nhưng VB6 vẫn tiếp tục tính phần
(17 \ myInt < 5 ), và tạo ra error vì 17 chia cho một số 0.
Trong vài ngôn ngữ lập trình khác, khi (myInt <>0) là False thì nó không tính
thêm nữa, tức là nó nói rằng khi một phần của AND là False thì nhất định kết
quả của Logical Statement trong IF phải là False. Ðặc tính này gọi là Short-
Circuit (đi tắc).
Nếu ta dùng code nói trên trong VB.NET, nó vẫn cho Division by Zero error
giống như VB6. Tuy nhiên, nếu ta muốn dùng đặc tính Short-Circuit thì ta chỉ
cần thay thế chữ And bằng AndAlso như sau:

Dim myInt As Integer
myInt = 0
If (myInt <> 0) AndAlso (17 \ myInt < 5 ) Then
Short-Circuit cũng áp dụng cho Logical OR khi ta thay thế chữ Or bằng
OrElse để nói rằng khi phần đầu của OR là True thì nhất định kết quả của
Logical Statement trong IF phải là True.
Kh«ng cßn Set statement cho Object
Trong VB6 ta có thể viết:
Set x = New Product
Set w = x
Trong VB.NET sẽ được viết lại như sau:
x = New Product()
w = x
Bây giờ ta không cần phải nhớ dùng chữ Set khi nói Đến Object.
Nh÷ng c¸ch CATCH error
Ta có thể dùng Catch giống như Select Case để có một cách xử lý cho mỗi
error:
Try
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
' Main code goes here
Catch When Err.Number=5
' handle Error 5
Catch
' handle other errors
End Try
Catch Error Exception data trong mt variable dựng nú nh sau:
Catch e as Exception
MessageBox.Show (e.ToString)
Hai cỏch code trờn cú th c gp li thnh:

Catch e As Exception When Err.Number = 5
Thay đổi trong cách viết Sub/Function
Dùng dấu ngoặc trong khi gọi Procedure
Trong VB6, nu khụng dựng keyword Call ta khụng dựng du ngoc khi
gi Sub. Trong VB.NET ta luụn luụn dựng cp du ngoc, ngay c khi khụng cú
parameter. Thớ d:
ProcessData()
x = New Customer()
ByVal là Default cho mọi Parameters
Trong VB6, ByRef l default cho cỏc parameters passed vo Sub/Function.
Tc l, Sub/Function cú th vụ tỡnh lm thay thi tr s nguyờn thy ca
parameter variables.
Trong VB.NET, ByVal l default cho cỏc parameters passed vo Sub/Function.
Do ú, nú s trỏnh li lm núi trờn.
Optional Parameter cần có trị số Default
Trong VB6 ta cú th dựng IsMissing bit xem Optional parameter cú
hin din khụng. VB.NET ó b IsMissing v bt buc ta phi cung cp tr s
Default cho Optional parameter trong phn procedure declaration ging nh sau
õy :
Public Sub VerifyInput (Optional ByVal InputData As String="")
trong thớ d ny ta cho Default value ca Optional parameter InputData l
Empty string.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368

3.2. Lựa chọn cơ sở dữ liệu:
Từ những phần mềm ứng dụng sẵn có trên thị trờng, qua tìm hiểu nghiệp vụ
quản lý phòng nghỉ, em lựa chọn cơ sở dữ liệu đợc viết là Microsoft Access, bởi
Microsoft Access thân thuộc, đợc sử dụng nh một công cụ cơ bản trong lập trình
cơ sở dữ liệu, đặc biệt đợc học tại nhà trờng.

4. Kết luận:
Trong quỏ trỡnh xõy dng mt h thng thụng tin thỡ sau quỏ trỡnh phõn tớch
yờu cu ca h thng qun lý, ngi vit, ngi phõn tớch h thng thụng tin
phi i vo phõn tớch h thng qun lý. t ú hiu c h thng ca mỡnh
cn vit gỡ (gii thớch cõu hi la chn h qun tr no?). Bờn trờn l nhng phõn
tớch v h thng qun lý xột trờn quan nim ca ngi lm cụng tỏc qun lý v
ngi lm tin hc, bờn cnh ú cũn la chn so sỏnh h qun tr (ngụn ng c
s dng v th mnh ca h). T ú em ó chn gii phỏp ngụn ng lp trỡnh v
cụng c s dng thc hin ỏn. Ngụn ng s dng l (Microsoft Visual
Studio .NET 2003) c s d liu l (Microsoft Access). Lý do chn ngụn ng s
dng l Microsoft Visual Studio .NET 2003, bi l ngụn ng cú tớnh mi, hin
hnh, cú nhiu ng dng, cú cỏc cụng c h tr nhanh gn v phự hp vi bi
toỏn ca ngi lp trỡnh. C s d liu tin ớch r hiu ỏp dng trong cỏc bi
toỏn nh gn, nờn em chn Microsoft Access.
Tip ú em cú th nh hng rừ v c th tip theo i vo phn phõn
tớch thit k h thng.

Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
Chơng III
Phân tích thết kế hệ thống
Phân tích hệ thống về mặt xử lý nhằm mục đích lập một mô hình xử lý của
toàn hệ thống, để trả lời câu hỏi Hệ thống làm gì ?, có nghĩa là đi sâu tìm hiểu
bản chất, chi tiết của hệ thống về mặt xử lý thông tin của hệ thống mà không quan
tâm đến hệ thống Làm nh thế nào để đạt đợc kết quả. Hay nói cách khác là thực
hiện diễn tả hệ thống ở mức độ logic. Do vậy giai đoạn này còn đợc gọi là giai
đoạn thiết kế Logic hệ thống.
Phơng pháp phân tích: đề tài này em chọn hớng phân tích Top-Down tức là
đi từ đại thể đến chi tiết.
1. phân tích chức năng của hệ thống

1.1. Lý thuyết:
Biểu đồ phân cấp chức năng (BPC) là công cụ đợc đa ra bởi công ty máy tính
của Mỹ IBM. Nó diễn tả sự phân rã dần dần các chức năng của hệ thống chức
năng tổng quát nhất đến từng chức năng con chi tiết, mỗi nút trong biểu đồ là một
chức năng, và quan hệ duy nhất giữa các chức năng là diễn tả bởi các cung nối
( hay là các đờng nối liền) chúng tạo thành một cây.
+ Mục đích của BPC :
Xác định phạm vi mà hệ thống cần phân tích
Tiếp cận logic tới hệ thống mà trong đó các chức năng đợc làm sáng tỏ để sử
dụng cho các mô hình sau này.
+ Đặc điểm của BPC :
Có tính chất tỉnh, bởi chúng không cho ta thấy các xử lý, luân chuyển
thông tin giữa các chức năng của hệ thống.
Thiếu vắng các trao đổi thông tin giữa các chức năng, không có mô tả dữ liệu
hay môt tả các thuộc tính.
Website: Email : Tel : 0918.775.368
Website: Email : Tel : 0918.775.368
1.2. áp dụng vào đề tài:
Trong chuyên đề này em đã nghiên cứu phân tích về hệ thống quản lý kinh
doanh khách sạn, thế nhng do khả năng có hạn cũng nh các điều kiện khách quan
không cho phép nên cha thể khảo sát đợc chi tiết, tổng thể hoạt động quản lý một
khách sạn ra sao mà chỉ đề cập ở đây là Quản lý dịch vụ cho thuê phòng trong một
khách sạn loại nhỏ. Để thuận tiện từ đây em xin nói gọn làQuản lý phòng nghỉ
mặc dù cha đầy đủ.
Sau đây là biểu đồ phân cấp chức năng, biểu đồ luồng dữ liệu và biểu đồ
logic của hệ thống Quản lýphòng nghỉ.
2. Biểu đồ luồng dữ liệu (BLD).
Biểu đồ luồng dữ liệu (BLD) đợc dùng để diễn tả (ở mức logic) tập hợp các
chức năng của hệ thống trong các mỗi quan hệ trớc sau trong tiến trình xử lý,
trong việc chuyển giao thông tin, dữ liệu cho nhau.

+ Mục đích của BLD :
Diễn tả ở mức logic.
Giúp ta thấy đợc bản chất của hệ thống, làm rõ những chức năng nào cần
thiết cho quản lý, chức năng nào cần phải thực hiện để hoàn tất quá trình xử lý cần
mô tả.
Chỉ rõ các thông tin đợc trao đỗi giữa các chức năng của hệ thống và qua đó
thấy đợc trình tự thực hiện các chức năng.
Để xây dựng biểu đồ luồng dữ liệu phải sử dụng 5 yếu tố cơ bản :
+ Các chức năng .
+ Các thông tin dữ liệu .
+ Các kho dữ liệu .
+ Các đối tác.
+ Các tác nhân bên trong.
Website: Email : Tel : 0918.775.368

×