MỤC LỤC
trang
Lời nói đầu
Chương I: Tìm hiểu và đặc tả bài toán
I. Đặc tả bài toán
1.1 Người sử dụng hệ thống
1.2 Đánh giá hệ thống cũ 4
1.3 Tổng kết 5
1.4 Một số yêu cầu về hệ thống mới 5
Chương II. Phân tích và thiết kế hệ thống
1.1 Lựa chọn hướng phân tích
1.2 Phân tích hệ thống cũ
1.3 Mô tả chương trình thi trắc nghiệm trên máy vi tính
1.4 Thiết kế hệ thống mới
II. Sơ đồ phân cấp chức năng
1.1 biểu đồ luồng dữ liệu
1.2 Mô hình thực thể và các thuộc tính
1.3 Mô hình dữ liệu quan hệ
Chương III. Một số vấn đề về ngôn ngữ C# 6
I. Tổng quan 6
1.1 Microsoft .NET 6
1.2 Kiến trúc .NET Framework 7
1.3 .NET Framework 8
1.4 Thư viện lớp .NET Framework 9
1.5 Phát triển ứng dụng Client 9
II. Một số vấn đề về ngôn ngữ C# 9
III. Lí do chọn và sử dụng ngôn ngữ C# 11
a. C# là ngôn ngữ đơn giản
b. C# là một ngôn ngữ hiện đại
c. C# là một ngôn ngữ hướng đối tượng
d. C# là một ngôn ngữ mạnh mẽ nhưng cũng mềm dẻo
e. C# là một ngôn ngữ ít từ khoá
f. C# là một ngôn ngữ lập trình hướng module
g. C# sẽ là một ngôn ngữ phổ biến
IV. Ngôn ngữ C# và những ngôn ngữ khác
Chương IV. Đưa ra các giao diện và modul chương trình
Giao diện hệ thống và menu chương trình
Kết luận
Tài liệu tham khảo.
49 trang |
Chia sẻ: lethao | Lượt xem: 2257 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Quản lý thi trắc nghiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uéc líp ®ã. §Ó thùc hiÖn ®îc viÖc cËp nhËt, ngêi sö dông ph¶i cã quyÒn h¹n.
- Qu¶n lÝ danh s¸ch c©u hái vµ ®Ò thi: Chøc n¨ng qu¶n lÝ danh s¸ch c©u hái vµ bé ®Ò thi cho phÐp ngêi sö dông ch¬ng tr×nh cËp nhËt, xo¸, thay ®æi c¸c th«ng tin vÒ c¸c bé ®Ò thi vµ c¸c c©u hái tr¾c nghiÖm trong bé ®Ò thi ®ã.
- Qu¶n lÝ kú thi vµ c¸c líp: Chøc n¨ng nµy cho phÐp ngêi sö dông ch¬ng tr×nh so¹n lÞch c¸c kú thi sÏ thi, c¸c ®Ò sÏ thi vµ c¸c líp sÏ ®îc thi trong kú thi ®ã.
- Qu¶n trÞ: Chøc n¨ng nµy cho phÐp thay ®æi mËt khÈu cña ngêi dïng.
Chøc n¨ng thi:
Chøc n¨ng thi tr¾c nghiÖm lµ chøc n¨ng quan träng nhÊt trong ch¬ng tr×nh, c¸c thÝ sinh b×nh thêng sö dông chøc n¨ng nµy ®Ó thi.
Chøc n¨ng thèng kª:
Chøc n¨ng nµy cho ngêi sö dông biÕt sè ngêi ®· ®¨ng kÝ thi vµ sè ngêi dù thi.
Chøc n¨ng t×m kiÕm:
Chøc n¨ng nµy cho phÐp t×m kiÕm th«ng tin vÒ thÝ sinh.
Chøc n¨ng kÕt thóc:
Chøc n¨ng nµy cho phÐp ta tho¸t ra khái ch¬ng tr×nh.
II. S¬ ®å ph©n cÊp chøc n¨ng
S¬ ®å ph©n cÊp chøc n¨ng ®îc sö dông ®Ó nªu ra chøc n¨ng vµ qu¸ tr×nh cho biÓu ®å luång d÷ liÖu, th«ng qua nã ®Ó m« t¶ c¸c chøc n¨ng xö lý cña hÖ thèng theo c¸c møc. ViÖc ph©n r· chøc n¨ng ®îc thùc hiÖn trong s¬ ®å ph©n cÊp chøc n¨ng cßn ®îc dïng ®Ó chØ ra møc ®é mµ tõng qu¸ tr×nh hoÆc qu¸ tr×nh con ph¶i xuÊt hiÖn trong biÓu ®å luång d÷ liÖu.
Kh¶o s¸t thùc tÕ cña “HÖ thèng qu¶n lý thi tr¾c nghiÖm”, s¬ ®å ph©n cÊp chøc n¨ng cña hÖ thèng ®îc tr×nh bµy theo c¸c møc cô thÓ sau:
T×m kiÕm
ch¬ng tr×nh tr¾c nghiÖm
CËp nhËt d÷ liÖu
CËp nhËt líp
CËp nhËt thÝ sinh
CËp nhËt c©u hái
CËp nhËt ®Ò thi
CËp nhËt kú thi
Thi tr¾c nghiÖm
Thèng kª
Theo líp
Theo kú thi
1.1 BiÓu ®å luång d÷ liÖu
BiÓu ®å luång d÷ liÖu dïng ®Ó diÔn t¶ tËp hîp c¸c chøc n¨ng cña hÖ thèng trong mèi quan hÖ tríc sau cña tiÕn tr×nh xö lý vµ viÖc trao ®æi th«ng tin trong hÖ thèng. BiÓu ®å luång d÷ liÖu gióp ta thÊy ®îc ®»ng sau nh÷ng g× thùc tÕ x¶y ra trong hÖ thèng, lµm râ nh÷ng chøc n¨ng vµ c¸c th«ng tin cÇn thiÕt. BiÓu ®å luång ®îc chia thµnh c¸c møc nh sau:
a. Møc ng÷ c¶nh
Lµ møc tæng qu¸t nhÊt ®îc x©y dùng ë giai ®o¹n ®Çu cña qu¸ tr×nh ph©n tÝch vµ ®îc dïng ®Ó v¹ch ra biªn giíi cña hÖ thèng còng nh buéc ngêi ph©n tÝch – thiÕt kÕ ph¶i xem xÐt c¸c luång d÷ liÖu bªn ngoµi hÖ thèng, ë møc nµy ngêi ph©n tÝch chØ cÇn x¸c ®Þnh ®îc c¸c t¸c nh©n ngoµi cña hÖ thèng vµ coi toµn bé c¸c xö lý cña hÖ thèng lµ mét chøc n¨ng, trong biÓu ®å 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í
Các file đính kèm theo tài liệu này:
- Luan van.doc
- tom tat.doc