Luận văn Quản lý thi trắc nghiệm

MỤC LỤC

trang

Lời nói đầu

 

Chương I: Tìm hiểu và đặc tả bài toán

I. Đặc tả bài toán

1.1 Người sử dụng hệ thống

1.2 Đánh giá hệ thống cũ 4

1.3 Tổng kết 5

1.4 Một số yêu cầu về hệ thống mới 5

Chương II. Phân tích và thiết kế hệ thống

1.1 Lựa chọn hướng phân tích

1.2 Phân tích hệ thống cũ

1.3 Mô tả chương trình thi trắc nghiệm trên máy vi tính

1.4 Thiết kế hệ thống mới

II. Sơ đồ phân cấp chức năng

1.1 biểu đồ luồng dữ liệu

1.2 Mô hình thực thể và các thuộc tính

1.3 Mô hình dữ liệu quan hệ

Chương III. Một số vấn đề về ngôn ngữ C# 6

I. Tổng quan 6

1.1 Microsoft .NET 6

1.2 Kiến trúc .NET Framework 7

1.3 .NET Framework 8

1.4 Thư viện lớp .NET Framework 9

1.5 Phát triển ứng dụng Client 9

II. Một số vấn đề về ngôn ngữ C# 9

III. Lí do chọn và sử dụng ngôn ngữ C# 11

a. C# là ngôn ngữ đơn giản

b. C# là một ngôn ngữ hiện đại

c. C# là một ngôn ngữ hướng đối tượng

d. C# là một ngôn ngữ mạnh mẽ nhưng cũng mềm dẻo

e. C# là một ngôn ngữ ít từ khoá

f. C# là một ngôn ngữ lập trình hướng module

g. C# sẽ là một ngôn ngữ phổ biến

IV. Ngôn ngữ C# và những ngôn ngữ khác

 

Chương IV. Đưa ra các giao diện và modul chương trình

Giao diện hệ thống và menu chương trình

Kết luận

Tài liệu tham khảo.

 

 

 

doc49 trang | Chia sẻ: lethao | Lượt xem: 2257 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Quản lý thi trắc nghiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uéc líp ®ã. §Ó thùc hiÖn ®­îc viÖc cËp nhËt, ng­êi sö dông ph¶i cã quyÒn h¹n. - Qu¶n lÝ danh s¸ch c©u hái vµ ®Ò thi: Chøc n¨ng qu¶n lÝ danh s¸ch c©u hái vµ bé ®Ò thi cho phÐp ng­êi sö dông ch­¬ng tr×nh cËp nhËt, xo¸, thay ®æi c¸c th«ng tin vÒ c¸c bé ®Ò thi vµ c¸c c©u hái tr¾c nghiÖm trong bé ®Ò thi ®ã. - Qu¶n lÝ kú thi vµ c¸c líp: Chøc n¨ng nµy cho phÐp ng­êi sö dông ch­¬ng tr×nh so¹n lÞch c¸c kú thi sÏ thi, c¸c ®Ò sÏ thi vµ c¸c líp sÏ ®­îc thi trong kú thi ®ã. - Qu¶n trÞ: Chøc n¨ng nµy cho phÐp thay ®æi mËt khÈu cña ng­êi dïng. Chøc n¨ng thi: Chøc n¨ng thi tr¾c nghiÖm lµ chøc n¨ng quan träng nhÊt trong ch­¬ng tr×nh, c¸c thÝ sinh b×nh th­êng sö dông chøc n¨ng nµy ®Ó thi. Chøc n¨ng thèng kª: Chøc n¨ng nµy cho ng­êi sö dông biÕt sè ng­êi ®· ®¨ng kÝ thi vµ sè ng­êi dù thi. Chøc n¨ng t×m kiÕm: Chøc n¨ng nµy cho phÐp t×m kiÕm th«ng tin vÒ thÝ sinh. Chøc n¨ng kÕt thóc: Chøc n¨ng nµy cho phÐp ta tho¸t ra khái ch­¬ng tr×nh. II. S¬ ®å ph©n cÊp chøc n¨ng S¬ ®å ph©n cÊp chøc n¨ng ®­îc sö dông ®Ó nªu ra chøc n¨ng vµ qu¸ tr×nh cho biÓu ®å luång d÷ liÖu, th«ng qua nã ®Ó m« t¶ c¸c chøc n¨ng xö lý cña hÖ thèng theo c¸c møc. ViÖc ph©n r· chøc n¨ng ®­îc thùc hiÖn trong s¬ ®å ph©n cÊp chøc n¨ng cßn ®­îc dïng ®Ó chØ ra møc ®é mµ tõng qu¸ tr×nh hoÆc qu¸ tr×nh con ph¶i xuÊt hiÖn trong biÓu ®å luång d÷ liÖu. Kh¶o s¸t thùc tÕ cña “HÖ thèng qu¶n lý thi tr¾c nghiÖm”, s¬ ®å ph©n cÊp chøc n¨ng cña hÖ thèng ®­îc tr×nh bµy theo c¸c møc cô thÓ sau: T×m kiÕm ch­¬ng tr×nh tr¾c nghiÖm CËp nhËt d÷ liÖu CËp nhËt líp CËp nhËt thÝ sinh CËp nhËt c©u hái CËp nhËt ®Ò thi CËp nhËt kú thi Thi tr¾c nghiÖm Thèng kª Theo líp Theo kú thi 1.1 BiÓu ®å luång d÷ liÖu BiÓu ®å luång d÷ liÖu dïng ®Ó diÔn t¶ tËp hîp c¸c chøc n¨ng cña hÖ thèng trong mèi quan hÖ tr­íc sau cña tiÕn tr×nh xö lý vµ viÖc trao ®æi th«ng tin trong hÖ thèng. BiÓu ®å luång d÷ liÖu gióp ta thÊy ®­îc ®»ng sau nh÷ng g× thùc tÕ x¶y ra trong hÖ thèng, lµm râ nh÷ng chøc n¨ng vµ c¸c th«ng tin cÇn thiÕt. BiÓu ®å luång ®­îc chia thµnh c¸c møc nh­ sau: a. Møc ng÷ c¶nh Lµ møc tæng qu¸t nhÊt ®­îc x©y dùng ë giai ®o¹n ®Çu cña qu¸ tr×nh ph©n tÝch vµ ®­îc dïng ®Ó v¹ch ra biªn giíi cña hÖ thèng còng nh­ buéc ng­êi ph©n tÝch – thiÕt kÕ ph¶i xem xÐt c¸c luång d÷ liÖu bªn ngoµi hÖ thèng, ë møc nµy ng­êi ph©n tÝch chØ cÇn x¸c ®Þnh ®­îc c¸c t¸c nh©n ngoµi cña hÖ thèng vµ coi toµn bé c¸c xö lý cña hÖ thèng lµ mét chøc n¨ng, trong biÓu ®å ch­a cã kho d÷ liÖu. S¬ ®å luång d÷ liÖu Møc khung c¶nh Gi¸o viªn §¸p øng BGH TT kú thi TT líp hoc Y/c thèng kª/T×m kiÕm TT c©u hái TT ®Ò thi ThÝ sinh TT thÝ sinh TT ®¨ng nhËp Ch­¬ng tr×nh tr¾c nghiÖm BGH b. Møc ®Ønh Dùa vµo s¬ ®å ph©n cÊp chøc n¨ng ë møc 2 ®Ó t¸ch c¸c chøc n¨ng thµnh c¸c chøc n¨ng con trªn c¬ së t«n träng 4 nguyªn t¾c sau: C¸c luång d÷ liÖu ph¶i b¶o toµn C¸c t¸c nh©n ngoµi còng ph¶i ®­îc b¶o toµn Cã thÓ xuÊt hiÖn c¸c kho d÷ liÖu Cã thÓ bæ sung c¸c luång d÷ liÖu néi bé T×m kiÕm ThÝ sinh Líp C©u hái §Ò thi KÕt qu¶ Kú thi Thi tr¾c NghiÖm Thèng kª ThÝ Sinh TT ®¨ng nhËp §¸p øng Y/c thèng kª BGH §¸p øng Y/c t×m KiÕm BGH CËp nh©t th«ng tin ThÝ sinh BGH TT c©u hái TT líp häc TT kú thi TT ®Ò thi GV TT thÝ sinh c. møc d­íi ®Ønh Tõ 3 chøc n¨ng c¬ b¶n ®­îc m« t¶ ë biÓu ®å luång d÷ liÖu møc ®Ønh, ta tiÕn hµnh ph©n r· thµnh c¸c chøc n¨ng con chi tiÕt øng víi biÓu ®å ph©n cÊp chøc n¨ng thÊp nhÊt theo c¸c nguyªn t¾c c¬ b¶n sau: Ph¶i ph©n r· c¸c chøc n¨ng ë møc trªn xuèng møc d­íi. C¸c t¸c nh©n ngoµi b¶o toµn tõ s¬ ®å møc ®Ønh. Kho d÷ liÖu xuÊt hiÖn dÇn theo yªu cÇu qu¶n lý néi bé. B¶o toµn c¸c luång d÷ liÖu vµo ra víi c¸c t¸c nh©n ngoµi vµ thªm c¸c luång néi bé. Cã thÓ t¸ch biÓu ®å thµnh tõng trang øng víi mét hoÆc vµi chøc n¨ng ë møc ®Ønh. Ta cã c¸c chøc n¨ng sau ®©y: * Chøc n¨ng thi tr¾c nghiÖm * Chøc n¨ng thèng kª * Chøc n¨ng cËp nhËt d÷ liÖu * Chøc n¨ng t×m kiÕm Ta xÐt tõng chøc n¨ng mét. Chøc n¨ng thi tr¾c nghiÖm: ThÝ sinh KÕt qu¶ TT ®¨ng nhËp Líp Kú thi ThÝ sinh Thi tr¾c nghiÖm * Chøc n¨ng thi: Chøc n¨ng thi tr¾c nghiÖm lµ chøc n¨ng quan träng nhÊt trong ch­¬ng tr×nh, c¸c thÝ sinh b×nh th­êng sö dông chøc n¨ng nµy ®Ó thi. b. Chøc n¨ng t×m kiÕm: Y/c t×m kiÕm BGH §¸p øng ThÝ sinh KÕt qu¶ T×m kiÕm * Chøc n¨ng t×m kiÕm: Chøc n¨ng nµy cho phÐp t×m kiÕm th«ng tin vÒ thÝ sinh c. Chøc n¨ng thèng kª BGH §¸p øng Y/c thèng kª Thèng kª theo líp Líp ThÝ sinh KÕt qu¶ Thèng kª theo kú thi Y/c thèng kª §¸p øng Kú thi * Chøc n¨ng thèng kª: Chøc n¨ng nµy cho ng­êi sö dông biÕt sè ng­êi ®· ®¨ng kÝ thi vµ sè ng­êi dù thi. d. Chøc n¨ng cËp nhËt d÷ liÖu BGH TT líp häc CËp nhËt líp CËp nhËt kú thi Líp BGH C©u hái Kú thi CËp nhËt c©u hái GV TT c©u hái CËp nhËt ®Ò thi §Ò thi CËp nhËt thÝ sinh ThÝ sinh TT thÝ sinh TT ®Ò thi ThÝ sinh TT kú thi * Chøc n¨ng cËp nhËt d÷ liÖu: Chøc n¨ng qu¶n lÝ danh s¸ch líp vµ thÝ sinh: Chøc n¨ng nµy cho phÐp ng­êi sö dông ch­¬ng tr×nh cã thÓ cËp nhËt, xo¸, thay ®æi c¸c th«ng tin vÒ danh s¸ch líp vµ danh s¸ch c¸c thÝ sinh thuéc líp ®ã. §Ó thùc hiÖn ®­îc viÖc cËp nhËt, ng­êi sö dông ph¶i cã quyÒn h¹n. Qu¶n lÝ danh s¸ch c©u hái vµ ®Ò thi: Chøc n¨ng qu¶n lÝ danh s¸ch c©u hái vµ bé ®Ò thi cho phÐp ng­êi sö dông ch­¬ng tr×nh cËp nhËt, xo¸, thay ®æi c¸c th«ng tin vÒ c¸c bé ®Ò thi vµ c¸c c©u hái tr¾c nghiÖm trong bé ®Ò thi ®ã. Qu¶n lÝ kú thi vµ c¸c líp: Chøc n¨ng nµy cho phÐp ng­êi sö dông ch­¬ng tr×nh so¹n lÞch c¸c kú thi sÏ thi, c¸c ®Ò sÏ thi vµ c¸c líp sÏ ®­îc thi trong kú thi ®ã. 1.2 M« h×nh thùc thÓ vµ c¸c thuéc tÝnh a. ChuÈn ho¸ l­îc ®å c¬ së d÷ liÖu Trong thùc tÕ, mét øng dông cã thÓ ®­îc ph©n tÝch, thiÕt kÕ thµnh nhiÒu l­îc ®å c¬ së d÷ liÖu kh¸c nhau vµ tÊt nhiªn chÊt l­îng thiÕt kÕ cña c¸c l­îc ®å c¬ së d÷ liÖu nµy còng kh¸c nhau. ChÊt l­îng thiÕt kÕ cña mét l­îc ®å c¬ së d÷ liÖu cã thÓ ®­îc ®¸nh gi¸ dùa trªn c¸c tiªu chuÈn nh­: Sù trïng lÆp th«ng tin, chi phÝ kiÓm tra c¸c rµng buéc toµn vÑn… Sù chuÈn ho¸ l­îc ®å c¬ së d÷ liÖu cã ý nghÜa rÊt lín ®èi víi m« h×nh d÷ liÖu quan hÖ. Trong thùc tÕ, ë nh÷ng b­íc tiÕp cËn ®Çu tiªn, ng­êi ph©n tÝch thiÕt kÕ rÊt khã x¸c ®Þnh ®­îc ngay mét c¬ së d÷ liÖu cña mét øng dông sÏ gåm nh÷ng l­îc ®å quan hÖ con (thùc thÓ) nµo (cã chÊt l­îng cao), mçi l­îc ®å quan hÖ con cã nh÷ng thuéc tÝnh vµ tËp phô thuéc hµm ra sao? Th«ng qua mét sè kinh nghiÖm, ng­êi ph©n tÝch thiÕt kÕ cã thÓ nhËn diÖn ®­îc c¸c thùc thÓ cña l­îc ®å c¬ së d÷ liÖu nh­ng lóc ®ã chÊt l­îng cña nã ch­a h¼n ®· cao. B»ng ph­¬ng ph¸p chuÈn ho¸, ng­êi ph©n tÝch thiÕt kÕ cã thÓ n©ng cao chÊt l­îng cña l­îc ®å c¬ së d÷ liÖu ban ®Çu ®Ó ®­a vµo khai th¸c. ChuÈn ho¸ lµ qu¸ tr×nh kh¶o s¸t c¸c danh s¸ch thuéc tÝnh vµ ¸p dông mét tËp c¸c quy t¾c ph©n tÝch vµo c¸c danh s¸ch ®ã, chuyÓn chóng thµnh mét d¹ng mµ: - Tèi thiÓu viÖc lÆp l¹i (cïng mét thuéc tÝnh cã mÆt ë nhiÒu thùc thÓ). - Tr¸nh d­ thõa(c¸c thuéc tÝnh cã gi¸ trÞ lµ kÕt qu¶ tõ tÝnh to¸n ®¬n gi¶n ®­îc thùc hiÖn trªn c¸c thuéc tÝnh kh¸c). §Ó ®¸nh gi¸ mét c¸ch cô thÓ chÊt l­îng thiÕt kÕ cña mét l­îc ®å c¬ së d÷ liÖu, t¸c gi¶ cña m« h×nh d÷ liÖu quan hÖ E.F Codd, ®· ®­a ra 3 d¹ng chuÈn (1NF, 2NF, 3NF). Ng­êi ph©n tÝch - thiÕt kÕ b¾t ®Çu víi mét danh s¸ch c¸c thuéc tÝnh dù ®Þnh ®èi víi mét kiÓu thùc thÓ, sau khi ¸p dông 3 quy t¾c chuÈn ho¸, tõ kiÓu thùc thÓ gèc, c¸c kiÓu thùc thÓ míi ®­îc x¸c ®Þnh vµ tÊt c¶ chóng ®Òu ®­îc chuÈn ho¸ hoµn toµn. Cã thÓ nãi d¹ng chuÈn thø 3 (3NF) lµ tiªu chuÈn tèi thiÓu trong viÖc thiÕt kÕ c¬ së d÷ liÖu. C¨n cø qu¸ tr×nh kh¶o s¸t ®· ph©n tÝch ë tr­íc, thèng kª danh s¸ch c¸c thuéc tÝnh vµ tiÕn hµnh chuÈn ho¸ . 1.3 M« h×nh d÷ liÖu quan hÖ Tõ c¸c kiÓu thùc thÓ ®­îc hÖ thèng ë trªn, c¨n cø vµo qu¸ tr×nh kh¶o s¸t thùc tÕ vµ sau c¸c b­íc thùc hiÖn, ®· x©y dùng l­îc ®å d÷ liÖu theo m« h×nh quan hÖ nh­ sau: S¬ ®å quan hÖ Líp ThÝ sinh KÕt qu¶ Kú thi §Ò thi C©u hái C¸c c¬ së d÷ liÖu a. Table C©u hái: T¹o ra c¸c c©u hái cho c¸c ®Ò thi TT Tªn tr­êng KiÓu §é Réng DiÔn gi¶i 1 2 3 4 5 6 7 8 9 10 11 Masocauhoi Mucdo Thoigianapdung Tencauhoi Cauhoi Hinhanh Dapan1 Dapan2 Dapan3 Dapan4 Dapandung int Nvarchar Nvarchar Nvarchar Nvarchar Nvarchar Nvarchar Nvarchar Nvarchar Nvarchar Int 4 10 10 10 300 50 300 300 300 300 9 M· sè c©u hái Møc ®ä Thêi gian ¸p dông Tªn c©u hái C©u hái H×nh ¶nh §¸p ¸n 1 §¸p ¸n 2 §¸p ¸n 3 §¸p ¸n 4 §¸p ¸n ®óng b.Table §Ò thi: C¸c ®Ò thi ®­îc t¹o ra cho thÝ sinh TT Tªn tr­êng KiÓu §é Réng DiÔn gi¶i 1 2 3 4 5 6 7 Masodethi Mucdo Thoigianapdung Tendethi Socauhoi Thoigian Cauhoicuthe Int Nvarchar Nvarchar Nvarchar Int Int Nvarchar 4 30 10 20 4 4 100 M· sè c©u hái Møc ®ä Thêi gian ¸p dông Tªn ®Ò thi Sè c©u hái Thêi gian C©u hái cô thÓ c. Table Líp: T¹o líp cho thÝ sinh TT Tªn tr­êng KiÓu §é Réng DiÔn gi¶i 1 2 Masolop tenlop Int Nvarchar 4 20 M· sè líp Tªn líp d. Table k× thi: T¹o k× thi ®Ó tæ chøc thi cho thÝ sinh TT Tªn tr­êng KiÓu §é Réng DiÔn gi¶i 1 2 3 4 5 6 Masokythi Ngaythi Thoigianapdung Masolop Masodethi1 Masodethi2 int Data time Data time Int Int Int 4 8 30 4 4 4 M· sè kú thi Ngµy thi Thêi gian ¸p dông M· sè líp M· sè ®Ò thi 1 M· sè ®Ò thi 2 e. Table kÕt qu¶: Cho biÕt ®iÓm sau khi thÝ sinh kÕt thóc phÇn thi cña m×nh TT Tªn tr­êng KiÓu §é Réng DiÔn gi¶i 1 2 3 4 Masoketqua Masothisinh Masokythi §iem Int Int Int Int 4 4 4 4 M· sè kÕt qu¶ M· sè thÝ sinh M· sè kú thi §iÓm 1.4 C¸c thuËt to¸n xö lÝ chÝnh + Bµi to¸n lÊy ra c©u hái ngÉu nhiªn §äc sè c©u hái cÇn t¹o lµ n(sè c©u hái ®Ó lËp mét ®Ò thi). §äc sè c©u hái hiÖn cã lµ m(Mµ ®¶m b¶o møc ®é lùa chän vµ thêi gian ¸p dông). NÕu sè c©u hái cÇn t¹o mµ lín h¬n sè c©u hái hiÖn cã th× kh«ng t¹o ®­îc (n>m). NÕu n<m th× b¾t ®Çu thùc hiÖn Cã m c©u hái th× ta lÊy mét sè bÊt kú tõ 0->m -1 vµ g¸n nã cho ®Ò thi ®Çu tiªn. Sau ®ã ta g¸n biÕn j ch¹y tõ 1-> n-1 ®Ó thiÕt lËp c¸c ®Ò thi cßn l¹i. KiÓm tra j <n hay kh«ng nÕu j >=n th× kÕt thóc(v× c«ng viÖc t¹o ®Ò ®· xong) nÕu j m -1. Ta t¹o mét biÕn j1 = 0 ®Ó kiÓm tra xem c¸c ®Ò thi tr­íc cã trïng c©u hái víi ®Ò võa t¹o kh«ng. Sau ®ã kiÓm tra xem ®Ò j1 cã b»ng c©u hái võa t¹o kh«ng nÕu ®óng th× nã quay lªn phÇn t¹o c©u hái ngÉu nhiªn nÕu sai ta t¨ng j1 lªn j + 1. Sau ®ã, ta so s¸nh j1 víi j nÕu j1< j th× ta quay l¹i kiÓm tra ®Ò thi cã bÞ trïng hay kh«ng. NÕu sai j1 > j th× ta g¸n c©u hái thø j trong ®Ò thi b»ng i1. Sau ®ã ta g¸n j =j+1 vµ quay l¹i qu¸ tr×nh kiÓm tra j <n hay kh«ng? §äc sè c©u hái cÇn t¹o (n) §äc sè c©u hái hiÖn cã (m) n>m T¹o 1 sè ngÉu nhiªn 0 ® m -1 = i ®Ò thi [0]:= i (G¸n ®Ò thi ®Çu tiªn) G¸n j:=1 j<n T¹o 1 sè ngÉu nhiªn 0 ® m-1 = i1 G¸n j1 = 0 KiÓm tra xem ®Ò thi [j1] = i1 j1= j1 + 1 j1 < j §Ò thi [j] = i1 j:= j + 1 Tho¸t S Ktra End (tho¸t) § S Ktra S § S § § Vµ ®Ò thi ch½n lÎ còng ®­îc lÊy ra ngÉu nhiªn b»ng thuËt to¸n sau LÊy ngÉu nhiªn mét ®Ò (n) §Ò ch½n = n LÊy ngÉu nhiªn 1 ®Ò (m) m=n §Ò lÏ = m End sai §óng (Chó thÝch: Ta lÊy ngÉu nhiªn mét ®Ò sau ®ã g¸n ®Ò ch½n b»ng ®Ò ®ã, lÊy ngÉu nhiªn mét ®Ò kh¸c vµ ta so s¸nh ®Ò míi víi ®Ò tr­íc ®ã. NÕu b»ng nhau th× ta quay l¹i lÊy ngÉu nhiªn mét ®Ò kh¸c, nÕu kh¸c nhau th× g¸n ®Ò lÎ b»ng ®Ò võa t¹o ®­îc vµ kÕt thóc) ch­¬ng iiI: mét sè vÊn ®Ò vÒ ng«n ng÷ c# I. Tæng quan Khi lùa chän ng«n ng÷ lËp tr×nh, ta th­êng quan t©m ®Õn kh¶ n¨ng ng«n ng÷ cã thÓ hç trî viÖc x©y dùng øng dông. §èi víi ch­¬ng tr×nh “Qu¶n lÝ thi tr¾c nghiÖm” cÇn mét ng«n ng÷ lËp tr×nh cã kh¶ n¨ng hç trî m¹nh vÒ qu¶n lÝ CSDL, cã kh¶ n¨ng hç trî ®a ng­êi dïng. Ng«n ng÷ C# cã kho¶ng 80 tõ kho¸ vµ h¬n m­êi mÊy kiÓu d÷ liÖu ®­îc x©y dùng s½n. Tuy nhiªn ng«n ng÷ C# cã ý nghÜa cao khi nã thùc thi nh÷ng kh¸i niÖm lËp tr×nh hiÖn ®¹i. C# bao gåm tÊt c¶ nh÷ng hç trî cho cÊu tróc, thµnh phÇn Component lËp tr×nh h­íng ®èi t­îng. Nh÷ng tÝnh chÊt ®ã hiÖn diÖn trong mét ng«n ng÷ lËp tr×nh hiÖn ®¹i. Vµ ng«n ng÷ C# héi ®ñ nh÷ng ®iÒu kiÖn nh­ vËy, h¬n n÷a nã ®­îc x©y dùng trªn nÒn t¶ng cña hai ng«n ng÷ m¹nh nhÊt lµ C++ vµ Java. Nh­ng tr­íc tiªn ta ®i t×m hiÓu tæng quan vÒ Microsoft . NET. Microsoft.NET Gåm hai thµnh phÇn chÝnh Framework vµ Integrated Development Environment (IDE). Framework cung cÊp nh÷ng g× cÇn thiÕt vµ c¨n b¶n, ch÷ Framework cã nghÜa lµ khung hay khung c¶nh trong ®ã ta dïng nh÷ng h¹ tÇng c¬ së theo mét quy ­íc nhÊt ®Þnh ®Ó c«ng viÖc ®­îc tr«i ch¶y. IDE th× cung cÊp mét m«i tr­êng gióp chóng ta triÓn khai mét c¸ch dÔ dµng vµ nhanh chãng c¸c øng dông trªn nÒn t¶ng .NET. NÕu kh«ng cã IDE chóng ta cã thÓ dïng mét tr×nh so¹n th¶o vÝ nh­ Notepad hay bÊt cø tr×nh so¹n th¶o v¨n b¶n nµo vµ sö dông Command line ®Ó biªn dÞch vµ thùc thi. Tuy nhiªn viÖc nµy mÊt rÊt nhiÒu thêi gian tèt nhÊt lµ chóng ta dïng IDE ph¸t triÓn øng dông vµ còng lµ c¸ch dÔ sö dông nhÊt. Thµnh phÇn Framework lµ quan träng nhÊt .NET lµ cèt lâi tinh hoa cña m«i tr­êng, cßn IDE chØ lµ c«ng cô ®Ó ph¸t triÓn dùa trªn nÒn t¶ng ®ã. Trong .NET toµn bé c¸c ng«n ng÷ C#, visual C ++ hay VB.NET ®Òu dïng cïng mét IDE. Tãm l¹i, Microsoft . NET lµ nÒn t¶ng cho viÖc x©y dùng vµ thùc thi øng dông ph©n t¸n thÕ hÖ kÕ tiÕp. Bao gåm c¸c øng dông tõ Clien ®Õn Server vµ c¸c øng dông kh¸c. KiÕn tróc .NET Framework . NET Framework lµ mét platfrom míi lµm ®¬n gi¶n viÖc ph¸t triÓn øng dông trong m«i tr­êng ph©n t¸n cña Internet.NET Framework ®­îc thiÕt kÕ ®Çy ®ñ ®Ó ®¸p øng theo nh÷ng quan ®iÓm sau: - §Ó cung cÊp mét m«i tr­êng lËp tr×nh h­íng ®èi t­îng v÷ng ch¾c, trong ®ã m· nguån ®èi t­îng ®­îc l­u tr÷ vµ thùc thi mét c¸ch côc bé. Thùc thi mét c¸ch côc bé nh­ng ®­îc ph©n t¸n trªn Internet hoÆc thùc thi tõ xa. - §Ó cung cÊp mét m«i tr­êng thùc thi m· nguån mµ tèi thiÓu ®­îc viÖc ®ãng gãi phÇn mÒm vµ sù tranh chÊp vÒ phiªn b¶n. - §Ó cung cÊp mét m«i tr­êng thùc thi m· nguån mµ ®¶m b¶o viÖc thùc thi an toµn m· nguån. - §Ó cung cÊp mét m«i tr­êng thùc thi m· nguån mµ lo¹i bá ®­îc nh÷ng lçi thùc hiÖn c¸c Script hay m«i tr­êng th«ng dÞch. - §Ó lµm cho nh÷ng ng­êi cã kinh nghiÖm v÷ng ch¾c cã thÓ n¾m v÷ng kh¸c nhau nh÷ng kiÕn thøc øng dông kh¸c nhau nh­ lµ nh÷ng dông trªn nÒn windows ®Õn nh÷ng øng dông dùa trªn web. - §Ó x©y dùng tÊt c¶ c¸c th«ng tin dùa trªn tiªu chuÈn c«ng nghiÖp ®Ó ®¶m b¶o r»ng m· nguån trªn .NET cã thÓ tÝch hîp víi bÊt cø m· nguån kh¸c. . NET Framework cã hai thµnh phÇn chÝnh. Common Language Runtime (CLR) vµ th­ viÖn líp . NET Framework. CLR lµ nÒn t¶ng cña .NET Framwork chóng ta cã thÓ hiÓu Runtime nh­ lµ mét agent qu¶n lÝ m· nguån khi nã ®­îc thùc thi cïng c¸c dÞch vô lçi nh­: Qu¶n lÝ bé nhí, qu¶n lÝ tiÕn tr×nh, qu¶n lÝ tõ xa. Ngoµi ra nã cßn thóc ®Èy viÖc sö dông kiÓu an toµn vµ c¸c h×nh thøc kh¸c cña viÖc chÝnh x¸c m· nguån, ®¶m b¶o cho viÖc thøc hiÖn ®­îc b¶o mËt. ThËt vËy, kh¸i niÖm qu¶n lÝ m· nguån lµ nguyªn lÝ nÒn t¶ng cña runtime. M· nguån m· ®Ých tíi runtime th× ®ù¬c biÕt nh­ lµ m· nguån ®­îc qu¶n lÝ (managed code) trong khi ®ã m· nguån mµ kh«ng cã ®Ých tíi runtime th× ®­îc biÕt nh­ m· nguån kh«ng ®­îc qu¶n lÝ (unmanaged code). Th­ viÖn líp, mét thµnh phÇn chÝnh kh¸c cña .NET Framework lµ mét tËp hîp h­íng ®èi t­îng cña c¸c kiÓu d÷ liÖu ®­îc dïng l¹i. Nã cho phÐp chóng ta cã thÓ ph¸t triÓn nh÷ng øng dông cã giao diÖn ®å ho¹( GUI) ®Õn nh÷ng øng dông míi nhÊt ®­îc cung cÊp bëi ASP.NET nh­ lµ webform, vµ dÞch vô XML Web. - Common Language Runtime (CLR) CLR thùc hiÖn qu¶n lÝ bé nhí, qu¶n lÝ thùc thi tiÕn tr×nh, thùc thi m· nguån, x¸c nh©n m· nguån an toµn, biªn dÞch vµ c¸c dÞch vô hÖ thèng kh¸c. Nh÷ng ®Æc tÝnh trªn lµ nÒn t¶ng c¬ b¶n cho nh÷ng m· nguån ®­îc qu¶n lÝ ch¹y trªn CLR. Do chó träng ®Õn b¶o mËt, nh÷ng thµnh phÇn ®­îc qu¶n lÝ ®­îc cÊp nh÷ng møc ®é quyÒn h¹ kh¸c nhau, phô thuéc vµo nh÷ng yÕu tè nguyªn thuû cña chóng nh­: Liªn quan ®Õn Internet, hÖ thèng m¹ng hay mét m¸y tÝnh côc bé ®iÒu nµy cã nghÜa r»ng, mét thµnh phÇn ®ù¬c qu¶n lÝ cã thÓ cã hay kh«ng cã quyÒn thùc hiÖn mét thao t¸c truy cËp tin, thao t¸c truy cËp registry hay c¸c chøc n¨ng nh¹y c¶m kh¸c. - CLR : Thóc ®Èy viÖc m· nguån thùc hiÖn viÖc truy cËp ®­îc b¶o mËt. - CLR : Thóc ®Èy cho m· nguån ®­îc thùc thi m¹nh mÏ h¬n b»ng viÖc thùc thi m· nguån chÝnh x¸c vµ sù x¸c nhËn m· nguån. Th­ viÖn líp .NET Framework Lµ tËp hîp nh÷ng kiÓu d÷ liÖu ®ù¬c dïng l¹i vµ ®­îc kÕt hîp chÆt chÏ víi Common Language Runtime. Th­ viÖn líp lµ h­íng ®èi t­îng cung cÊp nh÷ng kiÓu d÷ liÖu mµ m· nguån ®­îc qu¶n lÝ cña chóng ta cã thÓ dÉn xuÊt. Còng nh­ mong ®îi cña ng­êi ph¸t triÓn th­ viÖn líp h­íng ®èi t­îng, kiÓu d÷ liÖu . NET Framework cho phÐp ng­êi ta ph¸t triÓn thiÕt lËp nh÷ng møc ®é th«ng dông cña viÖc lËp tr×nh, bao gåm c¸c nhiÖm vô nh­: Qu¶n lÝ chuçi, thu thËp hay chän läc d÷ liÖu, kÕt nèi víi c¬ së d÷ liÖu, vµ truy cËp tËp tin. Ngoµi nh÷ng nhiÖm vô th«ng dông trªn th­ viÖn líp cßn ®­a vµo nh÷ng kiÓu d÷ liÖu ®Ó hç trî cho nhiÒu kÞch b¶n ph¸t triÓn chuyªn biÖt kh¸c. 1.5 Ph¸t triÓn øng dông Client Nh÷ng øng dông trªn client còng gÇn víi nh÷ng øng dông kiÓu truyÒn thèng ®­îc lËp tr×nh dùa trªn windows. §©y lµ nh÷ng kiÓu øng dông hiÓn thÞ nhiÒu cöa sæ hay nhiÒu form trªn desktop cho phÐp ng­êi dïng thùc hiÖn mét thao t¸c hay mét nhiÖm vô nµo ®ã. Nh÷ng øng dông client bao gåm nh÷ng øng dông nh­ xö lÝ v¨n b¶n, xö lÝ b¶ng tÝnh, nh÷ng øng dông trong lÜnh vùc th­¬ng m¹i nh­ c«ng cô nhËp liÖu, c«ng cô t¹o b¸o c¸o… Nh÷ng øng dông client nµy th­êng sö dông nhiÒu cöa sæ menu, toolbar, button hay c¸c thµnh phÇn GUI kh¸c vµ chóng th­êng truy cËp c¸c tµi nguyªn côc bé nh­ lµ c¸c tËp tin hÖ thèng, c¸c thiÕt bÞ ngo¹i vi nh­ m¸y in. Mét lo¹i øng dông client kh¸c víi øng dông truyÒn thèng nh­ trªn lµ Activex control (hiÖn nay nã ®­îc thay thÕ bëi c¸c windows form control) ®­îc nhóng vµo c¸c trang web trªn Internet. C¸c øng dông nµy còng gièng nh­ nh÷ng øng dông client kh¸c lµ cã thÓ truy cËp tµi nguyªn côc bé. II. ng«n ng÷ C# Ng«n ng÷ C# ®­îc ph¸t triÓn bëi ®éi ngò kü s­ cña Microsoft, trong ®ã ng­êi dÉn ®Çu lµ Anders Hejlsberg vµ Scott Wiltamuth. C¶ hai ng­êi ®Òu lµ nh÷ng ng­êi næi tiÕng, trong ®ã Anders Hejlsberg ®­îc biÕt ®Õn lµ t¸c gi¶ cña Turbo Pascal, mét ng«n ng÷ lËp tr×nh PC phæ biÕn. «ng ®øng ®Çu nhãm thiÕt kÕ Borland Dephi. Mét trong nh÷ng thµnh c«ng ®Çu tiªn cña viÖc x©y dùng m«i tr­êng ph¸t triÓn tÝch hîp (IDE)cho lËp tr×nh Client/Server. PhÇn cèt lâi cña bÊt cø ng­êi lËp tr×nh h­íng ®èi t­îng lµ sù hç trî cña nã cho viÖc ®Þnh nghÜa vµ lµm viÖc víi nhiÒu líp. Nh÷ng líp th× ®Þnh nghÜa nh÷ng kiÓu d÷ liÖu míi, cho phÐp ng­êi ph¸t triÓn më réng ng«n ng÷ ®Ó t¹o m« h×nh tèt h¬n ®Ó gi¶i quyÕt vÊn ®Ò. Ng«n ng÷ C# chøa nhiÒu tõ kho¸ cho viÖc khai b¸o nhiÒu kiÓu líp ®èi t­îng míi vµ nhiÒu ph­¬ng thøc hay thuéc tÝnh cña líp cho viÖc thùc thi ®ãng gãi, kÕ thõa vµ ®a h×nh ba thuéc tÝnh c¬ b¶n cña bÊt cø ng«n ng÷ lËp tr×nh h­íng ®èi t­îng. Trong ng«n ng÷ C# mäi thø liªn quan ®Õn khai b¸o líp ®Òu ®­îc t×m thÊy trong phÇn khai b¸o cña nã. §Þnh nghÜa mét líp trong ng«n ng÷ C# kh«ng ®ßi hái ph¶i chia tËp tin Header vµ tËp tin nguån gièng nh­ trong ng«n ng÷ C++. H¬n thÕ n÷a, ng«n ng÷ C# hç trî kiÓu XML cho phÐp chÌn c¸c tag XML ®Ó ph¸t sinh tù ®éng c¸c Document cho líp . C# còng hç trî giao diÖn Interface, nã ®­îc xem nh­ cam kÕt víi mét líp cho nhiÒu dÞch vô mµ giao diÖn qui ®Þnh. Trong ng«n ng÷ C#, mét líp chØ cã thÓ kÕ thõa tõ duy nhÊt mét líp cha, tøc lµ kh«ng cho ®a kÕ thõa nh­ trong ng«n ng÷ C++, tuy nhiªn mét líp cã thÓ thùc thi nhiÒu giao diÖn. Khi mét líp thùc thi mét giao diÖn th× nã sÏ høa lµ nã cung cÊp chøc n¨ng thùc thi giao diÖn. Trong ng«n ng÷ C# nhiÒu cÊu tróc còng ®­îc hç trî nh÷ng kh¸i niÖm vÒ ng÷ nghÜa cña nã thay ®æi kh¸c víi C++. Trong C# mét cÊu tróc ®­îc giíi h¹n lµ kiÓu d÷ liÖu thu gän vµ khi t¹o thÓ hiÖn th× nã yªu cÇu Ýt h¬n vÒ hÖ ®iÒu hµnh vµ bé nhí so víi mét líp. Mét cÊu tróc th× kh«ng thÓ kÕ thõa tõ mét líp hay ®­îc kÕ thõa nh­ng mét cÊu tróc cã thÓ thùc thi mét giao diÖn. Ng«n ng÷ C# cung cÊp nhiÒu ®Æc tÝnh h­íng thµnh phÇn (component_oriented) nh­ lµ nh÷ng thuéc tÝnh, nh÷ng sù kiÖn. LËp tr×nh h­íng thµnh phÇn ®­îc hç trî bëi CLR cho phÐp l­u tr÷ metadata víi m· nguån cho mét líp. Metadata m« t¶ cho mét líp bao gåm nh÷ng ph­¬ng thøc vµ nh÷ng thuéc tÝnh cña nã cïng nh÷ng sù b¶o mËt cÇn thiÕt vµ nh÷ng thuéc tÝnh kh¸c. M· nguån chøa ®ùng nh÷ng logic cÇn thiÕt ®Ó thùc hiÖn nhiÒu chøc n¨ng cña nã. Do vËy, mét líp ®­îc biªn dÞch nh­ lµ mét khèi self_contained nªn m«i tr­êng hosting biÕt ®­îc c¸ch ®äc metadata cña mét líp m· nguån cÇn thiÕt mµ kh«ng cÇn nh÷ng th«ng tin kh¸c ®Ó sö dông nã. Mét l­u ý cuèi cïng vÒ ng«n ng÷ C# lµ ng«n ng÷ nµy còng hç trî viÖc truy cËp bé nhí trùc tiÕp sö dông kiÓu con trá cña C++ vµ tõ kho¸ cho dÊu ngoÆc [] trong to¸n tö. C¸c m· ngån nµy lµ kh«ng an toµn (unsafe) vµ bé gi¶i phãng bé nhí tù ®éng cña CLR sÏ kh«ng thùc hiÖn viÖc gi¶i phãng nh÷ng ®èi t­îng ®­îc tham chiÕu b»ng viÖc sö dông con trá cho ®Õn khi chóng ®­îc gi¶i phãng. III. LÝ do chän sö dông ng«n ng÷ C# Ng­êi ta cho r»ng kh«ng cÇn thiÕt cã mét ng«n ng÷ lËp tr×nh míi. Java, C++, perl, Microsoft Visual Basic, vµ nh÷ng ng«n ng÷ kh¸c nghÜ r»ng ®· cung cÊp tÊt c¶ nh÷ng chøc n¨ng cÇn thiÕt. Ng«n ng÷ C# lµ mét ng«n ng÷ ®­îc dÉn xuÊt tõ C vµ C++, nh­ng nã ®­îc t¹o ra tõ nÒn t¶ng ph¸t triÓn h¬n. Microsoft b¾t ®Çu tõ c«ng viÖc trong C vµ C++ vµ thªm vµo nh÷ng ®Æc tÝnh míi ®Ó lµm cho ng«n ng÷ nµy dÔ sö dông h¬n. Microsoft ®­a ra mét sè môc ®Ých khi x©y dùng ng«n ng÷ nµy. C# lµ ng«n ng÷ ®¬n gi¶n C# lµ ng«n ng÷ hiÖn ®¹i C# lµ ng«n ng÷ h­íng ®èi t­îng C# lµ ng«n ng÷ m¹nh mÏ vµ mÒm dÎo C# lµ ng«n ng÷ cã Ýt tõ kho¸ C# lµ ng«n ng÷ h­íng module C# lµ ng«n ng÷ sÏ trë nªn phæ biÕn C# lµ ng«n ng÷ ®¬n gi¶n C# lo¹i bá mét vµi sù phøc t¹p vµ rèi r¾m cña ng«n ng÷ nh­ Java vµ C++, bao gåm viÖc lo¹i bá nh÷ng Macro, nh÷ng template, ®a kÕ thõa vµ líp c¬ së ¶o (virtual base class). Chóng lµ nh÷ng nguyªn nh©n g©y ra sù nhÇm lÉn hay dÉn ®Õn nh÷ng vÊn ®Ò cho ng­êi ph¸t triÓn C++. Ng«n ng÷ C# ®¬n gi¶n v× nã dùa trªn nÒn t¶ng C vµ C++. NÕu chóng ta th©n thiÖn víi C vµ C++ chóng ta sÏ thÊy C# kh¸ gièng vÒ diÖn m¹o, có ph¸p, biÓu thøc, to¸n tö vµ nhiÒu chøc n¨ng kh¸c ®­îc lÊy trùc tiÕp tõ ng«n ng÷ C vµ C++, nh­ng nã ®· ®­îc c¶i tiÕn ®Ó lµm cho ng«n ng÷ ®¬n gi¶n h¬n. Mét trong c¸c sù c¶i tiÕn lµ lo¹i bá c¸c d­ thõa, hay lµ thªm vµo nh÷ng có ph¸p thay ®æi. VÝ dô nh­: Trong C++ cã 3 to¸n tö lµm viÖc víi c¸c thµnh viªn lµ ::, . , vµ -> §Ó biÕt khi nµo dïng 3 to¸n tö nµy còng phøc t¹p vµ dÔ nhÇm lÉn. Trong C# chóng ®­îc thay thÕ víi mét to¸n tö duy nhÊt gäi lµ .(dot). §èi víi ng­êi míi häc th× ®iÒu nµy vµ nhiÒu viÖc c¶i tiÕn kh¸c lµm bít nhÇm lÉn vµ ®¬n gi¶n h¬n. C# lµ ng«n ng÷ hiÖn ®¹i §iÒu g× lµm cho mét ng«n ng÷ hiÖn ®¹i? Nh÷ng ®Æc tÝnh nh­ lµ xö lÝ ngo¹i tÖ, thu gom bé nhí tù ®éng, nhiÒu kiÓu d÷ liÖu më réng, vµ b¶o mËt m· nguån lµ nh÷ng ®Æc tÝnh ®­îc mong ®îi trong mét ng«n ng÷ hiÖn ®¹i. C# chøa tÊt c¶ nh÷ng ®Æc tÝnh trªn. Con trá ®ù¬c tÝch hîp vµo ng«n ng÷ C++ chóng còng lµ nguyªn nh©n g©y ra nhiÒu r¾c rèi cña ng«n ng÷ nµy. C# lo¹i bá nh÷ng phøc t¹p vµ r¾c rèi ph¸t sinh bëi con trá. Trong C# bé thu gän bé nhí tù ®éng vµ kiÓu d÷ liÖu an toµn ®­îc tÝch hîp vµo ng«n ng÷ sÏ lo¹i bá nh÷ng vÊn ®Ò r¾c rèi cña C++. C# lµ ng«n ng÷ h­íng ®èi t­îng Nh÷ng ®Æc ®iÓm chÝnh cña ng«n ng÷ h­íng ®èi t­îng (object_oriented_language) lµ sù ®ãng gãi (encapsulation), sù kÕ thõa (inheritance) vµ ®a h×nh (polymorphism). C# hç trî nh÷ng ®Æc tÝnh trªn. C# lµ ng«n ng÷ m¹nh mÏ vµ còng mÒm dÎo C# ®­îc sö dông cho nhiÒu dù ¸n kh¸c nhau nh­ lµ t¹o ra c¸c øng dông xö lÝ v¨n b¶n, øng dông ®å ho¹, b¶ng tÝnh hay thËm chÝ nhiÒu tr×nh biªn dÞch cho c¸c ng«n ng÷ kh¸c. C# lµ ng«n ng÷ Ýt tõ kho¸ C# lµ ng«n ng÷ sö dông giíi h¹n nhiÒu tõ kho¸ phÇn lín c¸c tõ kho¸ ®­îc sö dông ®Ó m« t¶ th«ng tin. Chóng ta cø nghÜ r»ng mét ng«n ng÷ cã nhiÒu tõ kho¸ sÏ m¹nh h¬n ®iÒu nµy kh«ng ®óng Ýt nhÊt lµ trong tr­êng hîp ng«n ng÷ C#. Chóng ta cã thÓ t×m thÊy r»ng ng«n ng÷ nµy cã thÓ ®­îc sö dông ®Ó lµm bÊt cø nhiÖm vô nµo. B¶ng sau liÖt kª tÊt c¶ c¸c tõ kho¸ cña ng«n ng÷ C# Abstract Default Foreach Object sizeof unsafe As delegate goto operator stackalloc ushort Base do it out static using Bool double implicit override string virtual Break else in params struct volatile Byte enum int private switch void Case event interface Protected this while Catch expliclit internal public throw Char extern is readonly true Checked false lock ref try Class finally long return typeof Const fixed namespace sbyte uint Continue float new sealed ulong Decimal for null short unchecked C# lµ ng«n ng÷ lËp tr×nh h­íng module M· nguån C# cã thÓ ®­îc viÕt trong nh÷ng phÇn ®­îc gäi lµ nh÷ng líp, nh÷ng líp nµy chøa c¸c ph­¬ng thøc thµnh viªn cña nã. Nh÷ng líp vµ nh÷ng ph­¬ng thøc cã thÓ ®­îc sö dông l¹i trong øng dông hay c¸c ch­¬ng tr×nh kh¸c b»ng c¸ch truyÒn c¸c mÉu th«ng tin ®Õn nh÷ng líp hay ph­¬ng thøc chóng ta cã thÓ t¹o ra nhiÒu m· nguån dïng l¹i cã hiÖu qu¶. C# sÏ lµ ng«n ng÷ phæ biÕn C# lµ mét ng«n ng÷ lËp tr×nh mí

Các file đính kèm theo tài liệu này:

  • docLuan van.doc
  • doctom tat.doc