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
49 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 5181 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng phần mềm thi trắc nghiệm, để xem tài liệu hoàn chỉnh 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Ó: Lu 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 nhng 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 nhng 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 lu 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µ lu 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 lu 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 ®å cha 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 nhng lóc ®ã chÊt lîng cña nã cha 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.
Nhng 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 lu tr÷ vµ thùc thi mét c¸ch côc bé. Thùc thi mét c¸ch côc bé nhng ®î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 nhng 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 lu 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 lu ý 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++, nhng 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++, nhng 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 nhng 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++. Nhng 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 lu 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Ï nhng 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:
- Luan van.doc
- tom tat.doc