Đề tài Xây dựng phần mềm thi trắc nghiệm

Lời nói đầU Thông tin từ lâu đã được đánh giá có vai trò quan trọng trong quản lí kinh tế, ngày nay việc nhận định“Ai nắm được thông tin, người đó sẽ chiến thắng” lại càng trở nên đúng đắn. Chính từ việc tin học hoá thông tin với sự trợ giúp của computer và phần mềm đã đưa tới những khái niệm mới như: Kỷ nguyên của kỹ thuật số, nền kinh tế tri thức ở nước ta, việc định hướng và điều phối các hoạt động triển khai CNTT không còn ở mức thử nghiệm nữa mà đax trở thành nhu cầu bức thiết của quá trình phát triển. Mỗi năm có hàng trăm dự án tin học nằm dưới sự điều phối của ban chỉ đạo chương trình quốc gia về CNTT và rất nhiều dự án của bộ ngành được triển khai. Phạm vi ứng dụng của CNTT ngày càng được mở rộng trện mọi lĩnh vực truyền thông, đo lường, tự động hoá, quản lí các hoạt động của con người và xã hội Những lợi ích mà các phần mềm mang lại là đáng kể: Lưu trữ xử lí, tìm kiếm các thông tin nhanh chóng, chính xác, khoa học, giảm bớt nhân lực công sức, tiền của và hiệu quả của công việc được nâng lên một cách rõ rệt. Đặc biệt ở nước ta hiện nay việc ứng dụng CNTT trong quản lí chiếm phần lớn về sản phẩm phần mềm tin học. Để hỗ trợ thì các ngôn ngữ lập trình và các hệ quản trị CSDL không ngừng phát triển và đổi mới cho phép chúng ta xây dựng các phần mềm ứng dụng và hỗ trợ việc quản lí các hoạt động xã hội một cách tốt nhất. Với tầm quan trọng của ứng dụng CNTT trong quản lí tôi đã tìm hiểu và sử dụng ngôn ngữ lập trình C#. Ngôn ngữ này chạy trên Microsoft. Net FrameWrok Hiện nay, hệ quản trị CSDL có rất nhiều như: Foxpro, Mcrosoft Access, SQL Server, Oracle nhưng SQL Server đã trở thành phổ dụng cung cấp các công cụ cần thiết để tạo ra các CSDL đạt hiệu quả cao và giao diện thân thiện với người dùng. Căn cứ vào yêu cầu của đề tài tôi quyết định chọn ngôn ngữ lập trình C# và hệ CSDL SQL Server để xây dựng phần mềm thi trắc nghiệm. Đề tài luận văn quản lí thi trắc nghiệm. Gồm có bốn chương: Chương I. Tìm hiểu và đặc tả bài toán Chương II. Phân tích thiết kế hệ thống quản lí thi trắc nghiệm Chương III. Trình bày một số vấn đề về ngôn ngữ C# Chương IIII. Đưa ra các giao diện và modul chương trình

doc49 trang | Chia sẻ: lvcdongnoi | Ngày: 29/06/2013 | Lượt xem: 4068 | Lượt tải: 10download
Bạn đang xem nội dung tài liệu Đề tài Xây dựng phần mềm thi trắc nghiệm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Lêi nãi ®ÇU Th«ng tin tõ l©u ®· ®­îc ®¸nh gi¸ cã vai trß quan träng trong qu¶n lÝ kinh tÕ, ngµy nay viÖc nhËn ®Þnh“Ai n¾m ®­îc th«ng tin, ng­êi ®ã sÏ chiÕn th¾ng” l¹i cµng trë nªn ®óng ®¾n. ChÝnh tõ viÖc tin häc ho¸ th«ng tin víi sù trî gióp cña computer vµ phÇn mÒm ®· ®­a tíi nh÷ng kh¸i niÖm míi nh­: Kû nguyªn cña kü thuËt sè, nÒn kinh tÕ tri thøc… ë n­íc ta, viÖc ®Þnh h­íng vµ ®iÒu phèi c¸c ho¹t ®éng triÓn khai CNTT kh«ng cßn ë møc thö nghiÖm n÷a mµ ®· trë thµnh nhu cÇu bøc thiÕt cña qu¸ tr×nh ph¸t triÓn. Mçi n¨m cã hµng tr¨m dù ¸n tin häc n»m d­íi sù ®iÒu phèi cña ban chØ ®¹o ch­¬ng tr×nh quèc gia vÒ CNTT vµ rÊt nhiÒu dù ¸n cña bé ngµnh ®­îc triÓn khai. Ph¹m vi øng dông cña CNTT ngµy cµng ®­îc më réng trÖn mäi lÜnh vùc truyÒn th«ng, ®o l­êng, tù ®éng ho¸, qu¶n lÝ c¸c ho¹t ®éng cña con ng­êi vµ x· héi… Nh÷ng lîi Ých mµ c¸c phÇn mÒm mang l¹i lµ ®¸ng kÓ: L­u tr÷ xö lÝ, t×m kiÕm c¸c th«ng tin nhanh chãng, chÝnh x¸c, khoa häc, gi¶m bít nh©n lùc c«ng søc, tiÒn cña vµ hiÖu qu¶ cña c«ng viÖc ®­îc n©ng lªn mét c¸ch râ rÖt. §Æc biÖt ë n­íc ta hiÖn nay viÖc øng dông CNTT trong qu¶n lÝ chiÕm phÇn lín vÒ s¶n phÈm phÇn mÒm tin häc. §Ó hç trî th× c¸c ng«n ng÷ lËp tr×nh vµ c¸c hÖ qu¶n trÞ CSDL kh«ng ngõng ph¸t triÓn vµ ®æi míi cho phÐp chóng ta x©y dùng c¸c phÇn mÒm øng dông vµ hç trî viÖc qu¶n lÝ c¸c ho¹t ®éng x· héi mét c¸ch tèt nhÊt. Víi tÇm quan träng cña øng dông CNTT trong qu¶n lÝ t«i ®· t×m hiÓu vµ sö dông ng«n ng÷ lËp tr×nh C#. Ng«n ng÷ nµy ch¹y trªn Microsoft. Net FrameWrok HiÖn nay, hÖ qu¶n trÞ CSDL cã rÊt nhiÒu nh­: Foxpro, Mcrosoft Access, SQL Server, Oracle nh­ng SQL Server ®· trë thµnh phæ dông cung cÊp c¸c c«ng cô cÇn thiÕt ®Ó t¹o ra c¸c CSDL ®¹t hiÖu qu¶ cao vµ giao diÖn th©n thiÖn víi ng­êi dïng. C¨n cø vµo yªu cÇu cña ®Ò tµi t«i quyÕt ®Þnh chän ng«n ng÷ lËp tr×nh C# vµ hÖ CSDL SQL Server ®Ó x©y dùng phÇn mÒm thi tr¾c nghiÖm. §Ò tµi luËn v¨n qu¶n lÝ thi tr¾c nghiÖm. Gåm cã bèn ch­¬ng: Ch­¬ng I. T×m hiÓu vµ ®Æc t¶ bµi to¸n Ch­¬ng II. Ph©n tÝch thiÕt kÕ hÖ thèng qu¶n lÝ thi tr¾c nghiÖm Ch­¬ng III. Tr×nh bµy mét sè vÊn ®Ò vÒ ng«n ng÷ C# Ch­¬ng IIII. §­a ra c¸c giao diÖn vµ modul ch­¬ng tr×nh LuËn v¨n ®­îc hoµn thµnh vµo th¸ng 5/2006 t¹i tr­êng §¹i Häc Vinh d­íi sù h­íng dÉn cña thÇy gi¸o TS NguyÔn Trung Hoµ. Nh©n dÞp nµy t«i xin bµy tá lßng biÕt ¬n s©u s¾c ®Õn thÇy ng­êi ®· ®Þnh h­íng vµ tËn t×nh gióp ®ì t«i trong qu¸ tr×nh häc tËp vµ nghiªn cøu. C¶m ¬n c¸c thÇy c« gi¸o khoa CNTT tr­êng §¹i Häc Vinh ®· gi¶ng d¹y vµ chØ b¶o nh÷ng vÊn ®Ò liªn quan ®Õn ®Ò tµi. Xin c¶m ¬n ng­êi th©n vµ b¹n bÌ ®· gióp ®ì vµ t¹o ®iÒu kiÖn cho t«i suèt qu¸ tr×nh häc tËp vµ hoµn thµnh luËn v¨n nµy. Trong qu¸ tr×nh thiÕt kÕ do thêi gian vµ tr×nh ®é cã h¹n nªn ch­¬ng tr×nh kh«ng tr¸nh khái nh÷ng thiÕu sãt. V× vËy t«i rÊt mong sù gãp ý ch©n thµnh cña thÇy c« vµ c¸c b¹n. T«i xin ch©n thµnh c¶m ¬n. Vinh, th¸ng 5 n¨m 2006 Ng­êi thùc hiÖn Tr­¬ng ThÞ NguyÖt Thu Ch­¬ng i: t×m hiÓu vµ ®Æc t¶ bµI to¸n I. §Æc t¶ bµi to¸n HiÖn nay h×nh thøc thi tr¾c nghiÖm ®· ®­îc bé gi¸o dôc vµ ®µo t¹o khuyÕn khÝch ®­a vµo sö dông trong c¸c tr­êng, líp. Tæ chøc thi tr¾c nghiÖm nh­ thÕ lµ rÊt cÇn thiÕt ®Ó ®¸nh gi¸ ®óng kh¶ n¨ng vµ kiÕn thøc cña häc viªn. HÖ thèng qu¶n lý thi tr¾c nghiÖm cña häc sinh ¸p dông cho tÊt c¶ c¸c tr­êng Trung Häc Phæ Th«ng trong c¶ n­íc. Chøc n¨ng c¬ b¶n cña hÖ thèng lµ qu¶n lý vµ ®¸nh gi¸ chÊt l­îng häc tËp cña häc sinh th«ng qua c¸c ®iÓm kiÓm tra theo kú. ChÊt l­îng häc tËp cña häc sinh ®­îc tæng kÕt vµ ®¸nh gi¸ theo tõng häc kú. HÖ thèng bao gåm c¸c bé phËn víi c¸c chøc n¨ng cô thÓ sau: 1.1 Ng­êi sö dông hÖ thèng: ThÝ sinh: Ng­êi trùc tiÕp vµo dù thi Mçi thÝ sinh vµo dù thi (mét m«n thi nµo ®ã) ng­êi coi thi (hay cßn gäi lµ gi¸m thÞ) sÏ ph¸t cho mçi thÝ sinh mét ®Ò, trªn mçi ®Ò thÝ sinh nhËn ®­îc sÏ ph¶i ®iÒn nh÷ng th«ng tin sau: Hä vµ tªn: Ngµy sinh: Sè b¸o danh: Líp: Khoa: Ngµy thi: M«n thi: Sau mét thêi gian nhÊt ®Þnh tuú vµo sè c©u hái(th­êng lµ 1 c©u/phót) thÝ sinh sÏ ®¸nh dÊu vµo nh÷ng ®¸p ¸n ®­îc cho lµ ®óng. HÕt giê thÝ sinh sÏ nép bµi l¹i cho gi¸m thÞ vµ ra vÒ. Mét thêi gian sau thÝ sinh sÏ ®­îc biÕt kÕt qu¶, (nhanh hay chËm lµ tuú vµo thêi gian chÊm thi cña gi¸o viªn). Khi biÕt ®iÓm thi sÏ cã thÝ sinh ®ñ ®iÓm vµ sÏ cã nh÷ng thÝ sinh kh«ng ®¹t. Nh÷ng thÝ sinh kh«ng ®¹t nµy sÏ ®­îc tæ chøc thi l¹i vµo mét lÇn kh¸c. Gi¸m thÞ: Ng­êi trùc tiÕp coi thi Gi¸o viªn: Ng­êi ra ®Ò vµ trùc tiÕp chÊm bµi H×nh thøc ra ®Ò cña mét m«n thi ta cã thÓ h×nh dung cô thÓ nh­ sau: C¸c c©u hái ®Æt ra trong ®Ò thi ®­îc tæng hîp l¹i tõ kiÕn thøc ®· häc. Vµ cÊu tróc ®Ò thi lµ gièng nhau, trong mçi c©u hái ë mçi ®Ò c¬ b¶n cã ®é ®ång ®Òu. Tæng sè c©u hái sö dông trong ®Ò thi lµ do gi¸o viªn tù lÊy vµ ®iÓm thi còng do gi¸o viªn quy ®Þnh. 1.2 §¸nh gi¸ vÒ hÖ thèng cò - VÒ ­u ®iÓm: Cuéc thi ®­îc thùc hiÖn theo ®óng nguyªn t¾c cña bé gi¸o dôc vµ dÔ tæ chøc - VÒ nh­îc ®iÓm: NÕu mét cuéc thi tr¾c nghiÖm b×nh th­êng b»ng giÊy viÕt ®­îc tæ chøc víi mét quy m« lín sÏ gÆp ph¶i nh­ng vÊn ®Ò sau: - Chi phÝ cho viÖc in Ên, photo ®Ò thi cho thÝ sinh lµ rÊt tèn kÐm. - Ph¶i huy ®éng nhiÒu gi¸o viªn cho viÖc chÊm thi vµ coi thi. - ViÖc chÊm bµi cho thÝ sinh rÊt mÊt søc vµ cã thÓ sai sãt, thiÕu kh¸ch quan. - Do ®Ò thi cïng mét mÉu nªn c¸c thÝ sinh dÔ quay cãp nhau trong lóc thi, kh«ng ®¶m b¶o tÝnh c«ng b»ng cho cuéc thi. Nh­ vËy, viÖc tæ chøc mét cuéc thi trªn giÊy béc lé rÊt nhiÒu h¹n chÕ vµ kh«ng phï hîp víi t×nh h×nh hiÖn nay. - H­íng kh¾c phôc: §Ó hoµ chung víi sù ph¸t triÓn cña x· héi, v× sù nghiÖp gi¸o dôc, v× chñ tr­¬ng ®æi míi ph­¬ng ph¸p gi¶ng d¹y th× viÖc x©y dùng mét hÖ thèng thi tr¾c nghiÖm trªn m¸y tÝnh lµ rÊt cÇn thiÕt. Vµ v× nh÷ng tån t¹i nh­ trªn, t«i ®· m¹nh d¹n ®­a ra mét h×nh thøc qu¶n lý míi cã sù trî gióp cña c«ng nghÖ th«ng tin. §ã lµ sù xuÊt hiÖn cña m¸y tÝnh víi nh÷ng chøc n¨ng kÕ thõa t­¬ng tù nh­ c«ng t¸c qu¶n lý thi tr¾c nghiÖm ®· thùc hiÖn, tuy nhiªn thêi gian xö lý, c¸c c«ng viÖc liªn quan tíi c«ng viÖc qu¶n lý thi tr¾c nghiÖm ®­îc n©ng cao. C¸c kÕt qu¶ tÝnh to¸n ®¶m b¶o kh«ng dÉn ®Õn sai lÖch hay nhÇm lÉn. Ch­¬ng tr×nh nµy ®­îc tæ chøc trªn mét hÖ thèng c¸c m¸y tÝnh ®ù¬c nèi m¹ng víi nhau. 1.3 Tæng kÕt Tõ kÕt qu¶ ®· kh¶o s¸t vµ viÖc ph©n tÝch tÝnh thiÕt thùc, hiÖu qu¶ vµ ®é tiÖn lîi cña hÖ thèng cò, chóng ta thÊy r»ng hÖ thèng nµy cßn cã rÊt nhiÒu ®iÓm kh«ng cßn phï hîp víi c«ng viÖc qu¶n lý cña hiÖn nay. Mét sè c«ng viÖc cã thÓ dÉn ®Õn sai l¹c th«ng tin vµ xö lý qu¸ chËm, mÊt nhiÒu thêi gian... V× nh÷ng ®iÒu nh­ thÕ t«i ®· m¹nh d¹n ®­a ra mét ý t­ëng vÒ mét hÖ thèng qu¶n lý thi tr¾c nghiÖm cã kh¶ n¨ng thay thÕ hoµn chØnh hÖ thèng mµ chóng ta ®· cã víi c¸c chøc n¨ng hoµn toµn gièng víi c«ng t¸c qu¶n lý thi tr¾c nghiÖm cña bé gi¸o dôc céng thªm nh÷ng chøc n¨ng cã thÓ tiÕt kiÖm thêi gian, kh¶ n¨ng xö lý chÝnh x¸c, nhanh nh¹y vµ ®Çy hiÖu qu¶. T«i ®· kÕt hîp nh÷ng chuÈn, c¸c quy t¾c cøng cña nhiÖm vô qu¶n lý thi tr¾c nghiÖm ®· cã víi chiÕc m¸y tÝnh mµ hiÖn nay nã kh«ng cßn lµ qu¸ khã ®èi víi mçi tr­êng häc. 1.4 Mét sè yªu cÇu vÒ hÖ thèng míi Yªu cÇu vÒ phÇn mÒm PhÇn mÒm ph¶i thiÕt kÕ ch¹y trªn m¹ng côc bé M¸y chñ ph¶i sö dông HÖ ®iÒu hµnh Windows 2000 trë lªn C¬ së d÷ liÖu: SQL Server VÒ ng­êi sö dông - Ng­êi sö dông ph¶i cã tr×nh ®é c¬ b¶n vÒ tin häc Ch­¬ng ii: ph©n tÝch vµ thiÕt kÕ hÖ thèng I. Ph©n tÝch vµ thiÕt kÕ hÖ thèng 1.1 Lùa chän h­íng ph©n tÝch Khi ph©n tÝch thiÕt kÕ hÖ thèng ta cã thÓ chän mét trong hai h­íng lµ h­íng chøc n¨ng vµ h­íng d÷ liÖu. Trong ®Ò tµi nµy t«i lùa chän ph©n tÝch theo h­íng chøc n¨ng. Víi c¸ch tiÕp cËn nµy, chøc n¨ng ®­îc lÊy lµm trôc chÝnh cña qu¸ tr×nh ph©n tÝch vµ thiÕt kÕ, tiÕn hµnh ph©n tÝch trªn xuèng cã cÊu tróc. C¸c b­íc thùc hiÖn: X©y dùng biÓu ®å ph©n cÊp chøc n¨ng X©y dùng biÓu ®å luång d÷ liÖu X©y dùng mèi quan hÖ gi÷a c¸c thùc thÓ X©y dùng m« h×nh d÷ liÖu 1.2 Ph©n tÝch hÖ thèng cò Víi c¸ch qu¶n lý thi tr¾c nghiÖm hoµn toµn b»ng ph­¬ng ph¸p thñ c«ng truyÒn thèng gÆp nhiÒu khã kh¨n trong viÖc l­u tr÷ vµ xö lÝ th«ng tin. Bëi vËy cÇn x©y dùng mét ch­¬ng tr×nh qu¶n lý b»ng m¸y vi tÝnh ®Ó gióp viÖc qu¶n lý mét c¸ch chÝnh x¸c vµ hiÖu qu¶ h¬n lµm gi¶m nhÑ mét phÇn ®¸ng kÓ nh©n lùc vµ c«ng søc. Yªu cÇu cña hÖ thèng qu¶n lý b»ng m¸y tÝnh: - Qu¶n lý tèt th«ng tin vÒ thi tr¾c nghiÖm - Xö lý th«ng tin chÝnh x¸c, khoa häc - Ch­¬ng tr×nh dÔ sö dông, cã hiÖu qu¶ - Cã kh¶ n¨ng hç trî ®a ng­êi dïng, phï hîp víi xu thÕ ph¸t triÓn cña m¹ng m¸y tÝnh. 1.3 M« t¶ ch­¬ng tr×nh thi tr¾c nghiÖm trªn m¸y tÝnh M« t¶ ch­¬ng tr×nh Ch­¬ng tr×nh ®­îc thiÕt kÕ ®Ó thùc thi trªn mét hÖ thèng m¹ng côc bé bao gåm c¸c ®Æc ®iÓm chÝnh sau: C¸c thÝ sinh sÏ tiÕn hµnh ngåi thi trªn c¸c m¸y client, sau khi thi xong ch­¬ng tr×nh sÏ tÝnh to¸n ®Ó cã ®­îc ®iÓm thi, sau ®ã cËp nhËt bµi thi vµ ®iÓm thi cña thÝ sinh vµo CSDL trªn m¸y Server. §Ó hÖ thèng b¶o mËt tèt vµ kh«ng rß rØ th«ng tin t«i chän phÇn mÒm qu¶n trÞ c¬ së d÷ liÖu cña Microsoft lµ SQL Server vµ cµi ®Æt trªn m¸y chñ Server Windows. CSDL cho ch­¬ng tr×nh sÏ ®­îc cµi ®Æt trªn SQL Server. Yªu cÇu cña ch­¬ng tr×nh: C¸c yªu cÇu cña ch­¬ng tr×nh bao gåm: - §Ó ch­¬ng tr×nh cã thÓ qu¶n lÝ ®iÓm thi cña thÝ sinh, ch­¬ng tr×nh cÇn ph¶i cã chøc n¨ng cËp nhËt vµ l­u tr÷ th«ng tin vÒ danh s¸ch thÝ sinh. - Ng©n hµng ®Ò thi ®­îc ®­a vµo ch­¬ng tr×nh tr­íc ®ã vµ c¸c c©u hái ®­îc lÊy ra ngÉu nhiªn. Sau ®ã c¸c kú thi ®­îc t¹o ra ®Ó c¸c thÝ sinh cã thÓ ®¨ng ký thi, thÝ sinh nµo thi xong sÏ ®­îc ch­¬ng tr×nh cËp nhËt vµ kh«ng cho phÐp thi l¹i ngo¹i trõ cã sù can thiÖp cña ng­êi coi thi. - Sau khi thi thÝ sinh cã thÓ biÕt ®iÓm ngay - C¸c chøc n¨ng cËp nhËt c¸c bé d÷ liÖu cho ch­¬ng tr×nh ph¶i th«ng qua User cã quyÒn h¹n t­¬ng øng míi cho phÐp cËp nhËt. - Ngoµi ra ch­¬ng tr×nh cßn cã c¸c chøc n¨ng thèng kª vµ t×m kiÕm. 1.4 ThiÕt kÕ hÖ thèng míi - ¦u ®iÓm cña hÖ thèng míi: + Kh«ng cÇn ph¶i tèn chi phÝ giÊy mùc cho mçi lÇn thi + Kh«ng ph¶i huy ®éng nhiÒu gi¸o viªn cho viÖc coi thi + Trong lóc thi c¸c c©u hái ®­îc lÊy ngÉu nhiªn trong bé ®Ò thi, do ®ã h¹n chÕ ®­îc t×nh tr¹ng thÝ sinh xem bµi nhau. ViÖc chÊm bµi ®­îc ch­¬ng tr×nh thùc hiÖn mét c¸ch hoµn toµn tù ®éng vµ cã kÕt qu¶ ngay lËp tøc ngay sau khi thi xong. Ngoµi ra cßn ®¶m b¶o ®­îc tÝnh c«ng b»ng khi chÊm khi. Bµi thi ®­îc cña thÝ sinh ®­îc tù ®éng l­u tr÷ trong CSDL. Ch­¬ng tr×nh thi tr¾c nghiÖm trªn m¸y cã kh¶ n¨ng thay thÕ hoµn chØnh hÖ thèng thi tr¾c nghiÖm trªn giÊy mµ chóng ta ®· cã víi c¸c chøc n¨ng hoµn toµn gièng víi ch­¬ng tr×nh thùc tÕ. C¸c chøc n¨ng chÝnh cña hÖ thèng qu¶n lý thi tr¾c nghiÖm - Chøc n¨ng - Qu¶n trÞ - Thèng kª theo k× thi vµ theo líp - T×m kiÕm theo sè b¸o danh, theo líp, theo tªn Chøc n¨ng a. Qu¶n lÝ c©u hái b. Qu¶n lÝ ®Ò thi c. Qu¶n lÝ líp d. Qu¶n lÝ kú thi e. Qu¶n lÝ thÝ sinh Qu¶n trÞ: cËp nhËt quyÒn h¹n ®¨ng nhËp Thèng kª + Thèng kª theo kú thi + Thèng kª theo líp T×m kiÕm + T×m kiÕm theo líp + T×m kiÕm theo sè b¸o danh + T×m kiÕm theo hä tªn 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 ®ã. - 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íi nhÊt hiÖn nay. Microsoft muèn ng«n ng÷ C# trë nªn phæ biÕn. NhiÒu s¶n phÈm cña c«ng ty nµy ®· chuyÓn ®æi vµ viÕt l¹i b»ng C# b»ng c¸ch sö dông ng«n ng÷ nµy. Microsoft ®· x¸c nhËn kh¶ n¨ng cña C# cÇn thiÕt cho ng­êi lËp tr×nh. Microsoft .NET lµ mét lÝ do kh¸c ®Ó ®em ®Õn sù thµnh c«ng cña C# .NET lµ mét sù thay ®æi trong c¸ch t¹o vµ thùc thi nhiÒu øng dông. Ngoµi nh÷ng lÝ do trªn ng«n ng÷ C# còng sÏ trë nªn phæ biÕn do nhiÒu ®Æc tÝnh cña ng«n ng÷ nµy ®· ®­îc ®Ò cËp nh­: ®¬n gi¶n, h­íng ®èi t­îng, m¹nh mÏ… IV. Ng«n ng÷ C # vµ nh÷ng ng«n ng÷ kh¸c Chóng ta ®· nghe ®Õn vµ tiÕp xóc víi nhiÒu ng«n ng÷ kh¸c nh­ Visual Basic, C++, Java. Cã lÏ chóng ta còng tù hái sù kh¸c nhau gi÷a ng«n ng÷ C# vµ nh÷ng ng«n ng÷ ®ã, vµ còng tù hái v× sao l¹i cho ng«n ng÷ nµy ®Ó lËp tr×nh mµ l¹i kh«ng chän mét trong sè nh÷ng ng«n ng÷ kia. Cã rÊt nhiÒu lÝ do vµ chóng ta h·y so s¸nh gi÷a ng«n ng÷ C# vµ nh÷ng ng«n ng÷ kh¸c. Microsoft nãi r»ng C# mang ®Õn søc m¹nh cña ng«n ng÷ C++ vµ sù dÔ dµng cña ng«n ng÷ Visual Basic. Cã thÓ nã kh«ng dÔ nh­ Visual Basic nh­ng víi phiªn b¶n Visual Basic .NET (version 7) th× ngang nhau. V× chóng ®­îc viÕt l¹i tõ mét nÒn t¶ng. Chóng ta cã thÓ viÕt nhiÒu ch­¬ng tr×nh víi Ýt m· nguån h¬n nÕu dïng C#. MÆc dï C# lo¹i bá mét vµi ®Æc tÝnh cña C++. §iÒu nµy cã thÓ tiÕt kiÖm ®­îc hµng giê hay thËm chÝ hµng ngµy trong viÖc hoµn tÊt mét ch­¬ng tr×nh. Mét ®iÒu quan träng kh¸c víi C++ lµ m· nguån C# kh«ng ®ßi hái ph¶i cã tËp tin header. TÊt c¶ m· nguån ®­îc viÕt trong khai b¸o mét líp. .NET runtime trong C# thùc hiÖn viÖc thu gom bé nhí tù ®éng. Do ®iÒu nµy nªn viÖc sö dông con trá trong C# Ýt quan träng h¬n trong C++. Nh­ng con trá còng cã thÓ ®­îc sö dông trong C# khi ®ã, nhiÒu ®o¹n m· nguån nµy sÏ ®­îc ®¸nh dÊu lµ kh«ng an toµn(unsafe code). C# còng tõ bá ý t­ëng ®a kÕ thõa nh­ trong C++. Sù kh¸c nhau lµ C# ®­a thªm thuéc tÝnh vµo trong mét líp gièng nh­ trong Visual Basic vµ nh÷ng thµnh viªn cña líp ®­îc gäi duy nhÊt b»ng to¸n tö “ . “ víi C++ Cã nhiÒu c¸ch gäi trong c¸c t×nh huèng kh¸c nhau. §iÓm gièng nhau gi÷a C# vµ Java lµ c¶ hai cïng biªn dÞch ra m· trung gian. C# biªn dÞch ra MSIL cßn Java biªn dÞch ra byte code. Sau ®ã chóng ®­îc thùc hiÖn b»ng c¸ch th«ng dÞch hoÆc biªn dÞch just_in_ tim trong tõng m¸y ¶o t­¬ng øng. Tuy nhiªn, trong ng«n ng÷ C# nhiÒu hç trî ®­îc ®­a ra ®Ó biªn dÞch m· ng«n ng÷ trung gian sang m· m¸y C# chøa nhiÒu kiÓu d÷ liÖu c¬ b¶n h¬n Java vµ còng cho phÐp nhiÒu sù më réng víi kiÓu d÷ liÖu gi¸ trÞ. VÝ dô: Ng«n ng÷ C# hç trî kiÓu liÖt kª(enumeratorn) kiÓu nµy ®­îc giíi h¹n ®Õn mét h»ng ®­îc ®Þnh nghÜa tr­íc vµ kiÓu d÷ liÖu cÊu tróc ®©y lµ kiÓu d÷ liÖu cho ng­êi dïng ®Þnh nghÜa. T­¬ng tù nh­ Java, C# còng tõ bá tÝnh ®a kÕ thõa trong mét líp, tuy nhiªn m« h×nh kÕ thõa ®¬n nµy ®­îc më réng bëi tÝnh ®a kÕ thõa nhiÒu giao diÖn. Ch­¬ng vi : ®­a ra c¸c giao diÖn vµ modul cña Ch­¬ng tr×nh I. Giao diÖn hÖ thèng vµ menu ch­¬ng tr×nh S¬ ®å bè trÝ vµ c¸c chøc n¨ng Trªn c¬ së biÓu ®å ph©n cÊp chøc n¨ng vµ thùc tÕ yªu cÇu cña hÖ thèng øng dông, ch­¬ng tr×nh chÝnh ®­îc thiÕt kÕ vµ cµi ®Æt d­íi d¹ng tr×nh ®¬n (d¹ng møc) ®Ó ng­êi sö dông thuËn tiÖn trong viÖc lùa chän c¸c c«ng viÖc cÇn lµm trong hÖ thèng qu¶n lÝ thi tr¾c nghiÖm. S¬ ®å bè trÝ chøc n¨ng con cña chøc n¨ng: Chøc n¨ng Qu¶n lý líp Qu¶n lý thÝ sinh Qu¶n lý kú thi Qu¶n lý c©u hái Qu¶n lý ®Ò thi Qu¶n trÞ Thay ®æi mËt khÈu Thèng kª Theo kú thi Theo líp II. giao diÖn vµ c¸c form cña ch­¬ng tr×nh 1. Form §¨ng nhËp hÖ thèng: From này xuÊt hiÖn ®Çu tiªn khi ch¹y ch­¬ng tr×nh Password ®­îc l­u trong mét tÖp text. ChØ khi nµo ®óng mËt khÈu th× ch­¬ng tr×nh míi cã thÓ lµm viÖc. Form gåm 2 phÇn chÝnh: + PhÇn “D÷ LiÖu”: §Ó thay ®æi mËt khÈu khi truy cËp. + PhÇn “Chøc N¨ng”: HiÖn c¸c chøc n¨ng cña form. Form Main: §©y lµ from xuÊt hiÖn thø hai khi ch­¬ng tr×nh ®­îc thi hµnh. Nã sÏ gäi tíi c¸c form kh¸c khi thùc hiÖn c¸c chøc n¨ng cña ch­¬ng tr×nh. Form xuÊt hiÖn nÕu mËt khÈu truy cËp ®­îc nhËp lµ ®óng. 3. Form Qu¶n lÝ c©u hái: - C¸c chøc n¨ng cã trong form: + Thªm míi: KÝch chuét vµo nót thªm míi ®Ó thùc hiÖn viÖc thªm míi mét c©u hái. + Söa ®æi: KÝch chuét vµo nót söa ®æi ®Ó thùc hiÖn viÖc söa ®æi mét c©u hái bÊt kú mµ ta chän. + Xo¸ bá: KÝch chuét vµo nót xo¸ ®Ó thùc hiÖn viÖc xo¸ mét b¶n ghi bÊt kú mµ ta chän. + Ghi l¹i: Ta kÝch chuét vµo nót ghi ®Ó thùc hiÖn viÖc ghi l¹i th«ng tin. + Bá qua: KÝch chuét vµo nót nµy cho phÐp ta bá qua thao t¸c võa thùc hiÖn. + Tho¸t: kÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. - Form “ Qu¶n lÝ thÝ sinh” - Form nµy dïng ®Ó lËp danh s¸ch thÝ sinh cña mét líp ®Ó tæ chøc thi. - C¸c chøc n¨ng cã trong form nµy. + Thªm míi: KÝch chuét vµo nót thªm míi ®Ó thùc hiÖn viÖc thªm míi mét thÝ sinh. + Söa ®æi: KÝch chuét vµo nót söa ®æi ®Ó thùc hiÖn viÖc söa ®æi mét thÝ sinh bÊt kú mµ ta chän. + Xo¸ bá: KÝch chuét vµo nót xo¸ ®Ó thùc hiÖn viÖc xo¸ mét b¶n ghi bÊt kú mµ ta chän. + Ghi l¹i: Ta kÝch chuét vµo nót ghi ®Ó thùc hiÖn viÖc ghi l¹i th«ng tin. + Bá qua: KÝch chuét vµo nót nµy cho phÐp ta bá qua thao t¸c võa thùc hiÖn. + Tho¸t: KÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. Form Qu¶n lÝ ®Ò thi: - Form nµy dïng ®Ó t¹o nªn c¸c ®Ò thi , møc ®é c©u hái, thêi gian lµm bµi cña thÝ sinh. - C¸c chøc n¨ng dïng trong form nµy. + Thªm míi: KÝch chuét vµo nót thªm míi ®Ó thùc hiÖn viÖc thªm míi mét ®Ò thi víi c¸c chøc n¨ng cô thÓ cña ®Ò thi. + Söa ®æi: KÝch chuét vµo nót söa ®æi ®Ó thùc hiÖn viÖc söa ®æi mét ®Ò thi bÊt kú mµ ta chän. + Xo¸ bá: KÝch chuét vµo nót xo¸ ®Ó thùc hiÖn viÖc xo¸ mét b¶n ghi bÊt kú mµ ta chän. + Ghi l¹i: Ta kÝch chuét vµo nót ghi ®Ó thùc hiÖn viÖc ghi l¹i th«ng tin. + Bá qua: KÝch chuét vµo nót nµy cho phÐp ta bá qua thao t¸c võa thùc hiÖn. + Tho¸t: KÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. - Form Qu¶n lÝ líp: Form nµy dïng ®Ó t¹o ra c¸c líp cho thÝ sinh dù thi. C¸c chøc n¨ng cã trong form nµy. + Thªm míi: KÝch chuét vµo nót thªm míi ®Ó thùc hiÖn viÖc thªm míi mét líp ®Ó thÝ sinh vµo thi. + Söa ®æi: KÝch chuét vµo nót söa ®æi ®Ó thùc hiÖn viÖc söa ®æi mét líp bÊt kú mµ ta chän. + Xo¸ bá: KÝch chuét vµo nót xo¸ ®Ó thùc hiÖn viÖc xo¸ mét b¶n ghi bÊt kú mµ ta chän. + Ghi l¹i: Ta kÝch chuét vµo nót ghi ®Ó thùc hiÖn viÖc ghi l¹i th«ng tin. + Bá qua: KÝch chuét vµo nót nµy cho phÐp ta bá qua thao t¸c võa thùc hiÖn. + Tho¸t: KÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. - Form Qu¶n lÝ k× thi: - Form nµy dïng ®Ó ra mét k× thi cho thÝ sinh dù thi - C¸c nót chøc n¨ng cã trong form. + Thªm míi: KÝch chuét vµo nót thªm míi ®Ó thùc hiÖn viÖc thªm míi mét k×y thi. + Söa ®æi: KÝch chuét vµo nót söa ®æi ®Ó thùc hiÖn viÖc söa ®æi mét kú thi bÊt kú mµ ta chän. + Xo¸ bá: KÝch chuét vµo nót xo¸ ®Ó thùc hiÖn viÖc xo¸ mét b¶n ghi bÊt kú mµ ta chän. + Ghi l¹i: Ta kÝch chuét vµo nót ghi ®Ó thùc hiÖn viÖc ghi l¹i th«ng tin. + Bá qua: KÝch chuét vµo nót nµy cho phÐp ta bá qua thao t¸c võa thùc hiÖn. + Tho¸t: KÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. - Form Thèng kª: - Form nµy dïng ®Ó thèng kª th«ng tin vÒ sè thÝ sinh trong líp vµ sè thÝ sinh ®· dù thi trong líp ®ã. - C¸c nót chøc n¨ng cã trong form. + In Ên: Khi ta kÝch chuét vµo nót nµy th× nã sÏ in ra cho ta c¸c th«ng tin nh­ sè ng­êi cã tæng sè ng­êi cã trong líp vµ tæng sè ng­êi ®· dù thi. + Tho¸t: Khi ta kÝch chuét vµo chøc n¨ng nµy ®Ó trë vÒ ch­¬ng tr×nh chÝnh. - Form Thi: Form nµy dïng ®Ó tæ chøc thi cho thÝ sinh, ë form nµy thÝ sinh sÏ lµm bµi vµ t¹i ®©y thÝ sinh còng ®­îc biÕt ngay kÕt qu¶. C¸c nót chøc n¨ng cã trong form. + C©u hái tr­íc ®ã: Khi ta kÝch chuét vµo chøc n¨ng nµy th× nã sÏ quay trë l¹i c©u hái tr­íc ®ã ®Ó cho thÝ sinh xem l¹i. + C©u hái tiÕp theo: Khi ta kÝch chuét vµo chøc n¨ng nµy th× nã sÏ nh¶y sang c©u hái tiÕp theo cho thÝ sinh. + Hoµn thµnh: Khi thÝ sinh ®· hoµn thµnh xong bµi thi cña m×nh th× sÏ kÝch vµo nót nµy ®Ó biÕt kÕt qu¶ thi. - Form “ T×m KiÕm” - Form nµy dïng ®Ó t×m kiÕm th«ng tin vÒ thÝ sinh ®· dù thi. - C¸c chøc n¨ng ®­îc dïng trong form. + T×m kiÕm: Khi ta kÝch chuét vµo chøc n¨ng nµy th× nã sÏ t×m kiÕm cho ta nh÷ng th«ng tin cÇn biÕt vÒ thÝ sinh ®· dù thi. ë ®©y ta cã thÓ t×m kiÕm theo ba chøc n¨ng ®ã lµ: T×m kiÕm theo líp, t×m kiÕm theo sè b¸o danh vµ t×m kiÕm theo hä tªn. ë 3 chøc n¨ng nµy th× khi ta t×m kiÕm theo chøc n¨ng nµo tr­íc th× ch­¬ng tr×nh sÏ ­u tiªn cho chøc n¨ng ®ã. + Tho¸t: Khi kÝch chuét vµo chøc n¨ng nµy nã sÏ tho¸t ra khái ch­¬ng tr×nh vµ quay vÒ ch­¬ng tr×nh chÝnh. KÕT LUËn X©y dùng phÇn mÒm qu¶n lý lµ mét trong nh÷ng nhu cÇu xuÊt ph¸t tõ thùc tÕ ph¸t triÓn cña c¸c hÖ thèng. Tin häc ho¸ c¸c ho¹t ®éng qu¶n lÝ, gióp c¸c nhµ qu¶n lÝ cã tÇm nh×n bao qu¸t, t×m kiÕm nhanh chãng c¸c th«ng tin cÇn n¾m b¾t, hiÓu qu¶ c«ng viÖc ®­îc n©ng cao, chi phÝ thÊp. Nh×n mét c¸ch tæng thÓ luËn v¨n cña m×nh t«i nhËn thÊy luËn v¨n ®· ®¹t ®­îc kÕt qu¶ sau: - Giíi thiÖu vÒ ng«n ng÷ C# - Tr×nh bµy mét c¸ch cã hÖ thèng qu¸ tr×nh ph©n tÝch vµ thiÕt kÕ hÖ thèng qu¶n lÝ thi tr¾c nghiÖm trong tr­êng häc - Hoµn thµnh ch­¬ng tr×nh qu¶n lÝ thi tr¾c nghiÖm b»ng ng«n ng÷ C# - Ch­¬ng tr×nh ®¬n gi¶n, ®­îc lËp tr×nh cã giao diÖn th©n thiÖn víi ng­êi sö dông H­íng ph¸t triÓn cña ®Ò tµi TiÕp tôc ph¸t triÓn ch­¬ng tr×nh theo quy m« lín h¬n bao gåm qu¶n lÝ thi tÊt c¶ c¸c m«n. Vµ ¸p dông ch­¬ng tr×nh vµo thùc tÕ. tµi liÖu tham kh¶o Gi¸o tr×nh “ Ng«n ng÷ lËp tr×nh C# “ ®­îc biªn dÞch vµ tæng hîp tõ: [1] Programming C#, Jesse Liberty, O’Reilly. [2] C# in 21 Day, Bradley L.Jones, SAMS. [3] Windows Forms programming with C#, Erik Brown, Manning. [4] MSDN Library_April 2002. [5] Ph¹m Quang Tr×nh, Gi¸o tr×nh ph©n tÝch thiÕt kÕ hÖ thèng, Khoa c«ng nghÖ th«ng tin - tr­êng §¹i Häc Vinh. [6] TrÇn Thµnh Trai, Ph©n tÝch vµ thiÕt kÕ hÖ thèng th«ng tin qu¶n lý, NXB trÎ (Trung t©m KHTN vµ c«ng nghÖ quèc gia). [7] NguyÔn TÕ An, Gi¸o tr×nh nhËp m«n c¬ së d÷ liÖu, §¹i häc quèc gia thµnh phè Hå ChÝ Minh 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 Lùa chän h­íng ph©n tÝch Ph©n tÝch hÖ thèng cò M« t¶ ch­¬ng tr×nh thi tr¾c nghiÖm trªn m¸y vi tÝnh ThiÕt kÕ hÖ thèng míi II. S¬ ®å ph©n cÊp chøc n¨ng biÓu ®å luång d÷ liÖu M« h×nh thùc thÓ vµ c¸c thuéc tÝnh 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 C# lµ ng«n ng÷ ®¬n gi¶n C# lµ mét ng«n ng÷ hiÖn ®¹i C# lµ mét ng«n ng÷ h­íng ®èi t­îng C# lµ mét ng«n ng÷ m¹nh mÏ nh­ng còng mÒm dÎo C# lµ mét ng«n ng÷ Ýt tõ kho¸ C# lµ mét ng«n ng÷ lËp tr×nh h­íng module 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.

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

  • docLuan van.doc
  • doctom tat.doc