Tài liệu Phần mềm quản lý phòng nghỉ: ... Ebook Phần mềm quản lý phòng nghỉ
90 trang |
Chia sẻ: huyen82 | Lượt xem: 1873 | Lượt tải: 0
Tóm tắt tài liệu Phần mềm quản lý phòng nghỉ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Môc lôc
Tªn môc dßng Trang
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 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.
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.
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...
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.
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 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.
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 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 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:
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
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 để 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"
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:
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?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à 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
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:
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 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
' Main code goes here
Catch When Err.Number=5
' handle Error 5
Catch
' handle other errors
End Try
Catch Error Exception data trong một variable để dùng nó như sau:
Catch e as Exception
MessageBox.Show (e.ToString)
Hai cách code ở trên có thể được gợp lại thành:
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, nếu không dùng keyword Call ta không dùng dấu ngoặc khi gọi Sub. Trong VB.NET ta luôn luôn dùng cặp dấu ngoặc, 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 vào Sub/Function. Tức là, Sub/Function có thể vô tình làm thay thổi trị số nguyên thủy của parameter variables. Trong VB.NET, ByVal là default cho các parameters passed vào Sub/Function. Do đó, nó sẽ tránh lỗi lầm nói trên.
Optional Parameter cÇn cã trÞ sè Default
Trong VB6 ta có thể dùng IsMissing để biết xem Optional parameter có hiện diện không. VB.NET đã bỏ IsMissing và bắt buộc ta phải cung cấp trị số Default cho Optional parameter trong phần procedure declaration giống như sau đây :
Public Sub VerifyInput (Optional ByVal InputData As String="")
trong thí dụ này ta cho Default value của Optional parameter InputData là Empty string.
…
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 dựng một hệ thống thông tin thì sau quá trình phân tích yêu cầu của hệ thống quản lý, người viết, người phân tích hệ thống thông tin phải đi vào phân tích hệ thống quản lý. Để từ đó hiểu được hệ thống của mình cần viết gì (giải thích câu hỏi lựa chọn hệ quản trị nào?). Bên trên là những phân tích về hệ thống quản lý xét trên quan niệm của người làm công tác quản lý và người làm tin học, bên cạnh đó còn lựa chọn so sánh hệ quản trị (ngôn ngữ được sử dụng và thế mạnh của hệ). Từ đó em đã chọn giải pháp ngôn ngữ lập trình và công cụ sử dụng để thực hiện đồ án. Ngôn ngữ sử dụng là (Microsoft Visual Studio .NET 2003) cơ sở dữ liệu là (Microsoft Access). Lý do chọn ngôn ngữ sử dụng là Microsoft Visual Studio .NET 2003, bởi lẽ ngôn ngữ có tính mới, hiện hành, có nhiều ứng dụng, có các công cụ hỗ trợ nhanh gọn và phù hợp với bài toán của người lập trình. Cơ sở dữ liệu tiện ích rẽ hiểu áp dụng trong các bài toán nhỏ gọn, nên em chọn Microsoft Access.
Tiếp đó em có thể định hướng rõ và cụ thể để tiếp theo đi vào “phần phân tích thiết kế hệ thống”.
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._.
Các file đính kèm theo tài liệu này:
- 32696.doc