Phần mềm quản lý phòng nghỉ

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ỉ

doc90 trang | Chia sẻ: huyen82 | Lượt xem: 1873 | Lượt tải: 0download
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 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 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. 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 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... 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 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.   - 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 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:

  • doc32696.doc
Tài liệu liên quan