Với mong muốn tìm hiểu một phần nhỏ trong kho tàng phát triển của công nghệ thông tin, nhằm phục vụ cho lợi ích của các thư viện nói chung và của thư viện trường đại học Sao Đỏ nói riêng. Mời các em cùng tham khảo báo cáo Xây dựng chương trình quản lý thư viện trường đại học Sao Đỏ.
Trang 1L I M Đ U Ờ Ở Ầ
Trong nh ng năm g n đây, vi c tin h c hóa nhà trữ ầ ệ ọ ường đã tr thành khá phở ổ
bi n các nế ở ước trên th gi i, vi t nam cũng m i b t đ u th c hi n đế ớ ệ ớ ắ ầ ự ệ ược m t vàiộ năm g n đây. Và vì th , vi c nâng cao Qu n Lý Th Vi n b ng Máy Tính là m tầ ế ệ ả ư ệ ằ ộ
đi u c n thi t.ề ầ ế
Th vi n trư ệ ường đ i h c Sao Đ là n i không th thi u đạ ọ ỏ ơ ể ế ược cho m i sinhỗ viên c a trủ ường, đó t p trung m t lở ậ ộ ượng l n sinh viên ra vào th vi n đ đ c,ớ ư ệ ể ọ
mượn và tr sách. Nhu c u h c t p ngày càng cao đ c bi t là đ đ m b o ki nả ầ ọ ậ ặ ệ ể ả ả ế
th c có tính logic và chính xác thì vi c tìm đ n v i sách là r t c n thi t, đ đáp ngứ ệ ế ớ ấ ầ ế ể ứ nhu c u đó thì th vi n trầ ư ệ ường đã tăng s lố ượng sách đáng k r t phong phú v lo iể ấ ề ạ sách cũng nh s lư ố ượng
Vì th mà ngế ười th th trong m t ngày ph i liên t c l p đí l p l i côngủ ư ộ ả ụ ặ ặ ạ
vi c tìm sách, cho đ c gi mệ ộ ả ượn tr sách s p x p sách đúng theo v trí quy đ nh đãả ắ ế ị ị khó khăn l i càng khó khăn h n. Và v i s phát tri n c a nhà trạ ơ ớ ự ể ủ ường thì th vi nư ệ càng được phát tri n h n n a và khi đó công vi c c a ngể ơ ữ ệ ủ ười th th càng nhi uủ ư ề
h n.ơ
T đó v n đ qu n lý sách đừ ấ ề ả ược coi là r t c n thi t. Qu n lý t t cung c pấ ầ ế ả ố ấ
đ y đ , nhanh chóng và chính xác v các lo i sách cho sinh viên và th ng kê báo cáoầ ủ ề ạ ố
v i ban qu n lý là th c s c n thi t.ớ ả ự ự ầ ế
Là sinh viên đang h c ngành CNTT, vi c h c t p, trang b và ti p thu cácọ ệ ọ ậ ị ế
ki n th c v tin h c t th c t cũng nh công tác qu n lý là c n thi t. Chính vì v yế ứ ề ọ ừ ự ế ư ả ầ ế ậ
mà dướ ự ưới s h ng d n c a th y giáo, chúng em đã bẫ ủ ầ ước đ u làm quen v i vi c tìmầ ớ ệ
hi u, phân tích và v n d ng nh ng ki n th c đó và th c t ể ậ ụ ữ ế ứ ự ế
Trong đó, xây d ng ph n m m ph c v công vi c là m t trong nh ng v nự ầ ề ụ ụ ệ ộ ữ ấ
đ mà các l p trình viên quan tâm hàng đ u. H th ng thông tin v ề ậ ầ ệ ố ề “Qu n lý th ả ư
vi n tr ệ ườ ng đ i h c Sao Đ ” ạ ọ ỏ cũng là m t trong nh ng ng d ng mà độ ữ ứ ụ ược quan tâm nhi u nh t.ề ấ
V i mong mu n tìm hi u m t ph n nh trong kho tàng phát tri n c a côngớ ố ể ộ ầ ỏ ể ủ ngh thông tin, nhóm em đã đi vào tìm hi u v cách th c t ch c và ho t đ ng c aệ ể ề ứ ổ ứ ạ ộ ủ
th vi n trư ệ ường đ i h c Sao Đ đ t đó xây d ng ph n phân tích h th ng thôngạ ọ ỏ ể ừ ự ầ ệ ố tin v ề “Qu n lý th vi n tr ả ư ệ ườ ng đ i h c Sao Đ ” ạ ọ ỏ nh m ph c v cho l i ích c aằ ụ ụ ợ ủ các th vi n nói chung và c a th vi n trư ệ ủ ư ệ ường đ i h c Sao Đ nói riêng.ạ ọ ỏ
Trong th i gian h c t p chúng em đã c g ng tìm hi u v H qu n tr c sờ ọ ậ ố ắ ể ề ệ ả ị ơ ở
d li u SQL Server 2008 và Ngôn ng l p trình C# nh ng do ki n th c còn h nữ ệ ữ ậ ư ế ứ ạ
ch nên chế ương trình c a chúng em còn thi u sót và ch a hoàn thi n. Chúng em r tủ ế ư ệ ấ mong đượ ực s đóng góp c a các th y cô giáo và b n bè đ chúng em có th hoànủ ầ ạ ể ể thi n đệ ược chương trình mà th c t đòi h i.ự ế ỏ
1
Trang 211 1.1.1. Các khái ni m c b nệ ơ ả
11 1.1.2. Khái ni m ph thu c d li u và các d ng chu nệ ụ ộ ữ ệ ạ ẩ
13 1.2.2. C u trúc l nh ấ ệ
13 1.3. Gi i thi u v ngôn ng l p trình C# ớ ệ ề ữ ậ
14 1.3.1. C# là ngôn ng đ n gi nữ ơ ả
14 1.3.2. C# là ngôn ng hi n đ iữ ệ ạ
đ i t ố ượng và ki u d ể ữ li u (type) ệ 18
Trang 3th c ứ 20 1.3.12. Chú thích
20
d ng Console ụ 20 1.3.14. Namespace
21 1.3.15. Từ
khóa using 21 1.3.16. Phân
bi t chữệ th ường và chữ hoa 22 1.3.17. Từ
khóa static 22
23 2.1.Gi i thi u v th vi n trớ ệ ề ư ệ ường đ i h c Sao Đạ ọ ỏ
23 2.1.1. Mô t ph m vi c a h th ngả ạ ủ ệ ố
23 2.2. Xác đ nh yêu c u c a h th ng ị ầ ủ ệ ố
24 2.3 Mô t các ch c năng c a h th ngả ứ ủ ệ ố
24
25 2.4.1. Qu n lí truy c pả ậ
25 2.4.1.1. Qu n lí đăng xu tả ấ
26
27 2.4.2.1.Tìm sách theo tên
28 2.4.2.2. Tìm sách theo khoa
29
29 2.4.3.Qu n lí C p nh tả ậ ậ
31 2.4.3.1.Qu n lí c p nh t sáchả ậ ậ
31 2.4.3.2.Qu n lí c p nh t th lo iả ậ ậ ể ạ
32 2.4.4. Qu n lí mả ượn tr sáchả
33
33 2.4.4.2.Qu n lý tr sáchả ả
34 2.4.5.Qu n lí th ng kêả ố
35 2.5.Xây d ng bi u đ l p phân tíchự ể ồ ớ
36 2.6. Bi u đ tr ng tháiể ồ ạ
36 2.7 Các bi u đ tu n t ể ồ ầ ự
37 2.7.1 Bi u đ tu n t cho ch c năng Đăng nh pể ồ ầ ự ứ ậ
38 2.7.3 Bi u đ tu n t cho ch c năng qu n lí mể ồ ầ ự ứ ả ượn sách
2.7.4 Bi u đ tu n t cho ch c năng qu n lí tr sáchể ồ ầ ự ứ ả ả
41
3
Trang 42.7.5 Bi u đ tu n t cho ch c năng qu n lí th ng kêể ồ ầ ự ứ ả ố
42 2.8. Thi t k c s d li uế ế ơ ở ữ ệ
46 3.1.3. B ng đ c gi (docgia)ả ộ ả
46
47 3.1.5.B ng l p (lop)ả ớ
49 3.2. Thi t k giao di n ph n m mế ế ệ ầ ề
51
52 3.2.6. Form thông tin sách
Trang 55
Trang 6DANH M C HÌNH Ụ
24 Hình 2.2. Bi u đ use case t ng quát c a h th ngể ồ ổ ủ ệ ố
31 Hình 2.6.Bi u đ use case c p nh t sáchể ồ ậ ậ
31 Hình 2.7. Bi u đ use case c p nh t sinh viênể ồ ậ ậ
31 Hình 2.8. Bi u đ use case c p nh t th lo iể ồ ậ ậ ể ạ
35 Hình 2.12.Bi u đ l p phân tích c a h th ngể ồ ớ ủ ệ ố
39 Hình 2.17. Bi u đ tu n t cho ch c năng qu n lí mể ồ ầ ự ứ ả ượn sách
Trang 8M Đ U Ở Ầ
1. Lý do ch n đ tàiọ ề
Qu n lý th vi n là m t chu i công vi c r t v t vã và t n nhi u công s c. Vi cả ư ệ ộ ỗ ệ ấ ấ ố ề ứ ệ tin h c hoá trong bài toán qu n lý th vi n s giúp vi c qu n lý tr nên đ n gi n vàọ ả ư ệ ẽ ệ ả ở ơ ả
đ c bi t là tình chính xác cao. Đ c bi t tin h c hoá trong bài toán qu n lý s giúpặ ệ ặ ệ ọ ả ẽ
vi c truy v n thông tin đệ ấ ược nhanh chóng theo yêu c u khác nhau.ầ
Và s ra đ i c a m t h th ng ự ờ ủ ộ ệ ố “Qu n lý ả th vi n tr ư ệ ườ ng đ i h c Sao Đ ạ ọ ỏ”
ph c v cho công tác nghi p v c a con ngụ ụ ệ ụ ủ ười làm gi m thi u t i đa nh ng v t vả ể ố ữ ấ ả trong công vi c.ệ
Nh n th y vi c xây d ng chậ ấ ệ ự ương trình qu n lý cho ả th vi nư ệ có th giúpể
kh c ph c khó khăn trên đ ng th i tăng kh năng ti p c n ắ ụ ồ ờ ả ế ậ c a đ c giủ ộ ả. B i v y,ở ậ nhóm em quy t đ nh tìm hi u và th c hi n đ tài: “ ế ị ể ự ệ ề XÂY D NG CHỰ ƯƠNG TRÌNH QU NẢ
LÝ TH VI N TRƯ Ệ ƯỜNG Đ I H C SAO ĐẠ Ọ Ỏ ”
2. M c đích đ tàiụ ề
H th ng qu n lý th vi n đệ ố ả ư ệ ược xây d ng nh m m c đích gi i quy t cácự ằ ụ ả ế yêu c u sau: ầ
1. Giúp sinh viên tra c u sách.ứ
2. Cung c p cho th th các thông tin v các đ u sách m t đ c gi đangấ ủ ư ề ầ ộ ộ ả
mượn và h n ph i tr và các cu n sách còn đang đạ ả ả ố ược mượn.
3. Th ng kê hàng tháng s sách cho mố ố ượn theo các ch đ : khoa, khóa h c,ủ ề ọ
l p … L p bi u đ t l b n đ c vào th viên, báo cáo t ng h p. ớ ậ ể ồ ỷ ệ ạ ọ ư ổ ợ
4. H tr th th c p nh t thông tin sách, xác nh n cho mỗ ợ ủ ư ậ ậ ậ ượn sách và nh nậ
l i sách khi đ c gi tr sách. ạ ộ ả ả
5. H tr qu n lý các thông tin v đ c gi d a trên th th vi n. ỗ ợ ả ề ộ ả ự ẻ ư ệ
Các yêu c u phi ch c năng: ầ ứ
1. H th ng tri n khai theo d ng Website trên h th ng m ng n i b c aệ ố ể ạ ệ ố ạ ộ ộ ủ
trường
2. Th th s d ng h th ng đ c p nh t và qu n lý quá trình mủ ư ử ụ ệ ố ể ậ ậ ả ượn trả sách.
3. Thông tin th ng kê ph i đ m b o tính chính xác, khách quan.ố ả ả ả
3. Đ i tố ượng c a đ tàiủ ề
Chương trình được thi t k cho hai đ i tế ế ố ượng s d ng là ử ụ đ c giộ ả và thủ thư:
+ Đ c giộ ả: sinh viên trong trường
Trang 94. Ph m vi nhiên c uạ ứ
Tìm hi u kĩ thu t l p trình C# và h qu n tr CSDL SQLServer 2008ể ậ ậ ệ ả ị
Các ch c năng c a chứ ủ ương trình qu n lý ả sách và đ c giộ ả
Quy trình xây d ng chự ương trình qu n lý ả sách và đ c giộ ả
5. Phương pháp nghiên c uứ
Nghiên c u lý thuy t.ứ ế
Kh o sát th c t ả ự ế
Phân tích thi t k h th ng chế ế ệ ố ương trình cho phù h p.ợ
Xây d ng chự ương trình theo nh ng yêu c u đã đ t ra.ữ ầ ặ
6. Th c ti n c a đ tàiự ễ ủ ề
Trong th c t ta có th th y r ng m t s h th ng hi n t i n u làm th côngự ế ể ấ ằ ộ ố ệ ố ệ ạ ế ủ thì th thủ ư có c g ng và c i thi n phố ắ ả ệ ương pháp làm vi c đ n đâu đi chăng n a thìệ ế ữ
v n t n t i nh ng v n đ sau:ẫ ồ ạ ữ ấ ề
Th i gian tìm ki m ghi chép quá l n, khi có thông tin c n thi t thì th i gianờ ế ớ ầ ế ờ
t ng h p thông tin r t nhi u không đáp ng đổ ợ ấ ề ứ ược yêu c u.ầ
Công vi c t ng h p h t s c khó khăn d b nh m l n.ệ ổ ợ ế ứ ễ ị ầ ẫ
Nhi u kho n m c thông tin và ghi chép không th ng nh t. ề ả ụ ố ấ
Nhi u ngề ười làm m t công vi c thông tin s không nh t quán và d x y raộ ệ ẽ ấ ễ ả sai xót
Khi có s thay đ i đi u ch nh t n nhi u th i gian.ự ổ ề ỉ ố ề ờ
T v n đ trên và đi u ki n c th c a c quan cho phép vi c đ a tin h cừ ấ ề ề ệ ụ ể ủ ơ ệ ư ọ vào qu n lí nó s làm gi m đả ẽ ả ượ ấc r t nhi u v th i gian ít sai sót, giúp cho ngề ề ờ ườ ilàm công vi c qu n lí có th i gian nghiên c u ho c nghiên c u h c t p vào nh ngệ ả ờ ứ ặ ứ ọ ậ ữ công tác khác.
Chương 3. Xây d ng ng d ng qu n lý ự ứ ụ ả th vi nư ệ
9
Trang 11v i chớ ương trình ng d ng bên ngoài, đ ng th i nhi u ngứ ụ ồ ờ ề ười dùng khác nhau cũng
nh nhi u ng d ng khác nhau có th cùng khai thác và chia x m t cách ch n l cư ề ứ ụ ể ẻ ộ ọ ọ lúc c n.ầ
Th c th :ự ể Là hình nh c th c a m t đ i tả ụ ể ủ ộ ố ượng trong h th ng thông tinệ ố
qu n lý. M t th c th xác đ nh Tên và các thu c tính.ả ộ ự ể ị ộ
Thu c tính: Là m t y u t d li u ho c thông tin c a th c th y.ộ ộ ế ố ữ ệ ặ ủ ự ể ấ
L p th c th : Là các th c th cùng thu c tính.ớ ự ể ự ể ộ
Lược đ quan h : T p các thu c tính c a m t quan h Lồ ệ ậ ộ ủ ộ ệ ược đ m t quanồ ộ
h g m các thu c tính c a th c th cùng v i các m nh đ ràng bu c.ệ ồ ộ ủ ự ể ớ ệ ề ộ
* Thay đ i c u trúc c s d li u.ổ ấ ơ ở ữ ệ
* Thay đ i n i dung c s d li u.ổ ộ ơ ở ữ ệ
* X lý, tính toán trên c s d li u.ử ơ ở ữ ệ1.1.2. Khái ni m ph thu c d li u và các d ng chu nệ ụ ộ ữ ệ ạ ẩ
M t thu c tính g i là ph thu c vào các thu c tính khác khi giá tr c aộ ộ ọ ụ ộ ộ ị ủ thu c tính này ph thu c vào giá tr c a thu c tính kia. S ph thu c này có th làộ ụ ộ ị ủ ộ ự ụ ộ ể gián ti p hay tr c ti p.ế ự ế
11
Trang 12 M t quan h bao gi cũng có m t nhóm thu c tính mà giá tr c a chúng quiộ ệ ờ ộ ộ ị ủ
đ nh giá tr c a các thu c tính khác, nhóm thu c tính đó g i là khoá.ị ị ủ ộ ộ ọ
V i m t quan h tu vào các ph thu c c a các thu c tính vào khoá có trongớ ộ ệ ỳ ụ ộ ủ ộ
đó mà ta phân chia các quan h đó thành các d ng chu n khác nhau. Các d ng chu nệ ạ ẩ ạ ẩ
c b n:ơ ả
* D ng chu n 1ạ ẩ
* D ng chu n 3ạ ẩCác d li u l u tr dữ ệ ư ữ ướ ại d ng chu n 3 tránh đẩ ược hi n tệ ượng d th a dư ừ ữ
li u, t o cho d li u có tính đ c l p cao. Các quan h n u ch a d ng chu n 3 sệ ạ ữ ệ ộ ậ ệ ế ư ở ạ ẩ ẽ
được phân rã thành các quan h nh h n có d ng chu n 3.ệ ỏ ơ ạ ẩ
1.1.3. Khái ni m ch d n và khoá ch d nệ ỉ ẫ ỉ ẫ
Đ có th tìm ki m thông tin nhanh theo m t tiêu chu n nào đó chúng ta t oể ể ế ộ ẩ ạ
ra các thông tin ch d n theo tiêu chu n đó. Các thông tin ch d n là các thông tinỉ ẫ ẩ ỉ ẫ giúp ta tìm ki m d li u nhanh. Các thông tin này g i là khoá ch d n. Khoá ch d nế ữ ệ ọ ỉ ẫ ỉ ẫ
có th là 1 trể ường ho c nhi u trặ ề ường trong trường h p này ph i ch ra th t V iợ ả ỉ ứ ự ớ cách t o ra khoá theo tiêu chu n nào đó ta có th tìm ki m d li u nhanh theo tiêuạ ẩ ể ế ữ ệ chu n đó.ẩ
1.1.4. M c tiêu và tính u vi t c a mô hình quan hụ ư ệ ủ ệ
Cho m t lộ ược đ d li u d s d ng, mô hình đ n gi n, ngồ ữ ệ ễ ử ụ ơ ả ười dùng không
c n bi t c u trúc v t lý c a d li u. Ti n l i cho ngầ ế ấ ậ ủ ữ ệ ệ ợ ười dùng cu i không chuyên tinố
h c.ọ
Tăng cường tính đ c l p c a d li u, đ c bi t là đ c l p v t lý.ộ ậ ủ ữ ệ ặ ệ ộ ậ ậ
Cho m t kh năng có m t ngôn ng thao tác b c cao.ộ ả ộ ữ ậ
T i u vi c tìm ki m d li u trong c s d li u, h qu n tr t tìm cáchố ư ệ ế ữ ệ ơ ở ữ ệ ệ ả ị ự truy nh p.ậ
C i thi n nâng cao toàn v n d li u và b o m t d li u.ả ệ ẹ ữ ệ ả ậ ữ ệ
Có th ph c v cho nhi u chể ụ ụ ề ương trình ng d ng.ứ ụ
Có c s toán h c phong phú ch c ch n:ơ ở ọ ắ ắ
* Lý thuy t quan hế ệ
* D ng chu n có đ b n v ng và đ y đ thông tinạ ẩ ộ ề ữ ầ ủ
Trang 131.2. Gi i thi u chung v h qu n tr CSDL SQLServerớ ệ ề ệ ả ị
1.2.1. Gi i thi uớ ệ
SQL (Structured Query Language) là ngôn ng truy v n d li u đữ ấ ữ ệ ược sử
d ng cho các h qu n tr c s d li u quan h Ngôn ng SQL chu n đụ ệ ả ị ơ ở ữ ệ ệ ữ ẩ ược đ a raư
b i ANSI (American National Standards Institude) và ISO (International Standardsở Organization) v i phiên b n m i nh t hi n nay là phiên b n SQL92 (phiên b nớ ả ớ ấ ệ ả ả
được đ a ra vào năm 1992). Ngôn ng SQL đư ữ ược cài đ t trong t t c các h qu nặ ấ ả ệ ả
tr c s d li u. M c dù có nhi u ngôn ng khác nhau đị ơ ở ữ ệ ặ ề ữ ược đ a ra cho các hư ệ
qu n tr CSDL quan h , SQL là ngôn ng đả ị ệ ữ ượ ử ục s d ng r ng rãi hi n nay trong r tộ ệ ấ nhi u h th ng CSDL thề ệ ố ương m i nh Oracle, SQL Server, DB2 ạ ư
1.2.2. C u trúc l nh ấ ệ
Các l nh trong ngôn ng SQL đệ ữ ược chia làm 3 lo i chính:ạ
Ngôn ng đ nh d li u: (DDL : Data Definition Language)ữ ị ữ ệ
+ G m các l nh CREATE, ALTER, DROP đ nh nghĩa, thay đ i và h y b cácồ ệ ị ổ ủ ỏ
đ i tố ượng d li u nh TABLE (b ng), INDEX (ch m c), SEQUENCE (trình t ),ữ ệ ư ả ỉ ụ ự VIEW (khung nhìn)
Ngôn ng thao tác d li u: (DML : Data Manipulation Language)ữ ữ ệ
tượng d li u.ữ ệ
Ngôn ng đi u khi n:ữ ề ể
+ Đượ ử ục s d ng trong vi c c p phát hay h y b quy n d li u c a ngệ ấ ủ ỏ ề ữ ệ ủ ườ ử i s
d ng đ i v i các câu l nh SQL ho c trên các đ i tụ ố ớ ệ ặ ố ượng CSDL
+ Đi u quan tr ng nh t là t t c các đ i tề ọ ấ ấ ả ố ượng t o ra trong c s d li uạ ơ ở ữ ệ
đ u đề ượ ưc l u tr trong t đi n d li u hay trong danh m c.ữ ừ ể ữ ệ ụ
+ Có th s d ng ngôn ng SQL các d ng tể ử ụ ữ ở ạ ương tác hay d ng nhúng.ạ
+ D ng tạ ương tác cho phép g i câu l nh tr c ti p đ n h qu n tr c s dử ệ ự ế ế ệ ả ị ơ ở ữ
li u và nhanh chóng nh n k t qu tr v Đ i v i d ng nhúng thì các câu l nh SQLệ ậ ế ả ả ề ố ớ ạ ệ
được ch a trong chứ ương trình vi t b ng ngôn ng c p cao nh m t n d ng các tínhế ằ ữ ấ ằ ậ ụ năng l p trình không đậ ược SQL h tr , không tr c ti p nh n k t qu tr v t câuỗ ợ ự ế ậ ế ả ả ề ừ
l nh SQL và k t qu đệ ế ả ược truy n vào bi n hay tham s c a th t c.ề ế ố ủ ủ ụ
13
Trang 14+ Nh ng l nh trong SQL có kh năng s d ng d ng tữ ệ ả ử ụ ở ạ ương tác đ u có thề ể
được dùng trong các chương trình ng d ng. Tuy nhiên, trong m t s trứ ụ ộ ố ường h p cúợ pháp c a hai d ng này có ph n khác bi t c n l u ý khi s d ng.ủ ạ ầ ệ ầ ư ử ụ
+ SQL ch áp d ng trong các h qu n tr c s d li u. H qu n tr c s dỉ ụ ệ ả ị ơ ở ữ ệ ệ ả ị ơ ở ữ
li u là ph n m m cho phép đ nh nghĩa, kh i t o, b o trì c s d li u và cung c pệ ầ ề ị ở ạ ả ơ ở ữ ệ ấ các truy xu t d li u. Thông thấ ữ ệ ường nó ám ch cho d li u này đỉ ữ ệ ượ ưc l u tr , tuyữ nhiên trong các h c s d li u tin h c hóa, c s d li u còn bao g m các thànhệ ơ ở ữ ệ ọ ơ ở ữ ệ ồ
ph n khác nh ph n c ng, ph n m m, ngầ ư ầ ứ ầ ề ườ ử ụi s d ng
1.3. Gi i thi u v ngôn ng l p trình C# ớ ệ ề ữ ậ
Ngôn ng C# khá đ n gi n, ch kho ng 80 t khóa và h n mữ ơ ả ỉ ả ừ ơ ười m y ki uấ ể
d li u đữ ệ ược d ng s n. Tuy nhiên ngôn ng C# có ý nghĩ 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 c u trúc, thành ph nệ ậ ệ ạ ồ ấ ả ữ ỗ ợ ấ ầ component, l p trình hậ ướng đ i tố ượng. Ngôn ng C# đữ ược xây d ng trên n n t ngự ề ả
c a C++ và JAVA. Ngôn ng C# ch a nh ng t khóa cho vi c khai báo nh ng ki uủ ữ ứ ữ ừ ệ ữ ể
l p đ i tớ ố ượng m i và nh ng phớ ữ ương th c hay thu c tính c a l p, và 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 nào
1.3.1. 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 nh ng 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 các 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++ hoệ ớ ặ th m chí là Java, chúng ta s th y C# khá gi ng v di nc ậ ẽ ấ ố ề ệ
m o, cú pháp, bi u th c, toán t và nh ng 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 vài 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. ổ
1.3.2. C# là ngôn ng hi n đ iữ ệ ạ
Nh ng đ c tính nh là x lý ngo i l , thu gom b nh t đ ng, nh ng 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. N u là ngữ ệ ạ ứ ấ ả ữ ặ ế ười m i h c l pớ ọ ậ trình có th chúng ta s c m th y nh ng đ c tính trên ph c t p và khó hi u. Tuyể ẽ ả ấ ữ ặ ứ ạ ể
Trang 15nhiên, cũng đ ng lo l ng chúng ta s d n d n đừ ắ ẽ ầ ầ ược tìm hi u nh ng đ c tính qua cácể ữ ặ
chương trong cu n sách này.ố
* Ghi chú: 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 nh ng 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 gom 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++.ợ ữ ẽ ạ ỏ ữ ấ ề ắ ố ủ
1.3.3. 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ìnự ự ế ừ h (polymorphism). C# h tr t t c nh ng đ c tính trên. Ph n hỗ ợ ấ ả ữ ặ ầ ướng đ i tố ượng c aủ C# s đẽ ược trình bày chi ti t trong m t chế ộ ương riêng ph n sau.ở ầ
1.3.4. C# là ngôn ng m nh m và cũng m m d oữ ạ ẽ ề ẻ
Nh đã đ c p trư ề ậ ước, v i ngôn ng C# chúng ta ch b gi i h n chính b iớ ữ ỉ ị ớ ạ ở ở
b n thân hay là trí tả ưởng tượng c a chúng ta. Ngôn ng này không đ t nh ng ràngủ ữ ặ ữ
bu c lên nh ng vi c có th làm. C# độ ữ ệ ể ượ ử ục s d ng cho nhi u các d án khác nhauề ự
nh là t o ra ng d ng x lý văn b n, ng d ng đ h a, b n tính, hay th m chíư ạ ứ ụ ử ả ứ ụ ồ ọ ả ậ
nh ng trình biên d ch cho các ngôn ng khác.ữ ị ữ
1.3.5. C# là ngôn ng ít t khóaữ ừ
C# là ngôn ng s d ng gi i h n nh ng t khóa. Ph n l n các t khóaữ ử ụ ớ ạ ữ ừ ầ ớ ừ
đượ ử ục s d ng đ mô t thông tin. Chúng ta có th nghĩ r ng m t ngôn ng có nhi uể ả ể ằ ộ ữ ề
t khóa thì s m nh h n. Đi u này không ph i s th t, í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ê các t khóa c a ngôn ng C#.ấ ứ ệ ụ ả ệ ừ ủ ữ
B ng 1.1: Các t khóa c a ngôn ng C# ả ừ ủ ữ
15
Trang 161.3.6. C# là ngôn ng 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 nh ng mã ngu n dùng l i có hi u qu ể ạ ữ ồ ạ ệ ả
1.3.7. C# s là m t ngôn ng ph bi nẽ ộ ữ ổ ế
C# là m t trong nh ng ngôn ng l p trình m i nh t. Vào th i đi m cu nộ ữ ữ ậ ớ ấ ờ ể ố sách này được vi t, nó không đế ược bi t nh là m t ngôn ng ph bi n. Nh ngế ư ộ ữ ổ ế ư ngôn ng này có m t s lý do đ tr thành m t ngôn ng ph bi n. M t trongữ ộ ố ể ở ộ ữ ổ ế ộ
nh ng lý do chính là Microsoft và s cam k t c a .NETữ ự ế ủ
Microsoft mu n ngôn ng C# tr nên ph bi n. M c dù m t công ty khôngố ữ ở ổ ế ặ ộ
th làm m t s n ph m tr nên ph bi n, nh ng nó có th h tr Cách đây khôngể ộ ả ẩ ở ổ ế ư ể ỗ ợ lâu, Microsoft đã g p s th t b i v h đi u hành Microsoft Bob. M c dù Microsoftặ ự ấ ạ ề ệ ề ặ
mu n Bob tr nên ph bi n nh ng th t b i. C# thay th t t h n đ đem đ n thànhố ở ổ ế ư ấ ạ ế ố ơ ể ế công s v i Bob. Th t s là không bi t khi nào m i ngơ ớ ậ ự ế ọ ười trong công ty Microsoft
s d ng Bob trong công vi c h ng ngày c a h Tuy nhên, v i C# thì khác, nó đử ụ ệ ằ ủ ọ ớ ượ c
s d ng b i Microsoft. 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 nh ng ngầ ế ữ ườ ậi l p trình
Micorosoft .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 nh ng ng d ng.ộ ự ổ ạ ự ữ ứ ụ
Ngoài hai lý do trên ngôn ng C# cũng s tr nên ph bi n do nh ng đ cữ ẽ ở ổ ế ữ ặ tính c a ngôn ng này đủ ữ ược đ c p trong m c trề ậ ụ ước nh : đ n gi n, hư ơ ả ướng đ iố
tượng, m nh m ạ ẽ
1.3.8. Ngôn ng C# và nh ng ngôn ng khácữ ữ ữ
Chúng ta đã t ng nghe đ n nh ng ngôn ng khác nh Visual Basic, C++ vàừ ế ữ ữ ư 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 t i sao l i ch n ngôn ng này đ h c mà không ch n m t trongự ỏ ạ ạ ọ ữ ể ọ ọ ộ
nh ng ngôn ng kia. Có r t nhi u lý do và chúng ta hãy xem m t s s so sánh gi aữ ữ ấ ề ộ ố ự ữ ngôn ng C# v i nh ng ngôn ng khác giúp chúng ta ph n nào tr l i đữ ớ ữ ữ ầ ả ờ ược nh ngữ
th c m c.ắ ắ
Trang 17 Microsoft nói r ng C# mang đ n s c m nh c a ngôn ng C++ v i 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. B i 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ác đ c tính c a C++, nh ng bù l i nó tránhặ ạ ỏ ộ ặ ủ ư ạ
được nh ng l i mà thữ ỗ ường g p trong ngôn ng 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. Chúng
ta s hi u nhi u v đi u này trong các chẽ ể ề ề ề ương c a giáo 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.Nh đã nói bênế ộ ớ ư ở trên. .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 đó nh ng đ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++. Và s khác nhau khác 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 “.” khác v i C++ có nhi u cáchọ ấ ằ ử ớ ề
g i trong các tình hu ng khác nhau.ọ ố
M t ngôn ng khác r t m nh và ph bi n là Java, gi ng nh C++ và C#ộ ữ ấ ạ ổ ế ố ư
được phát tri n d a trên C. N u chúng ta quy t đ nh s h c Java sau này, chúng taể ự ế ế ị ẽ ọ
s tìm đẽ ược nhi u cái mà h c t C# có th đề ọ ừ ể ược áp d ng. Đi m gi ng nhau 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 bytecode. Sau đó chúng đị ược th c hi n b ng cách thông d ch ho c biên d chự ệ ằ ị ặ ị justintime 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 (enumerator), ki u này đị ụ ữ ỗ ợ ể ệ ệ ể ược gi i h nớ ạ
đ n m t t p 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 giá tr do ngệ ị ười dùng đ nh nghĩa. Chúng ta s đị ẽ ược tìm hi u k h n v ki u dể ỹ ơ ề ể ữ
li u tham chi u và ki u d li u giá tr s đệ ế ể ữ ệ ị ẽ ược trình bày trong ph n sau.ầ
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.ở ộ ở ế ừ ề ệ
17
Trang 181.3.9. Các bước chu n b cho chẩ ị ương trình
Thông thường, trong vi c phát tri n ph n m m, ngệ ể ầ ề ười phát tri n ph i tuânể ả
th theo quy trình phát tri n ph n m m m t cách nghiêm ng t và quy trình này đãủ ể ầ ề ộ ặ
được chu n hóa. Tuy nhiên trong ph m vi c a chúng ta là tìm hi u m t ngôn ngẩ ạ ủ ể ộ ữ
m i và vi t nh ng chớ ế ữ ương trình nh thì không đòi h i kh t khe vi c th c hi n theoỏ ỏ ắ ệ ự ệ quy trình. Nh ng đ gi i quy t đư ể ả ế ược nh ng v n đ thì chúng ta cũng c n ph i th cữ ấ ề ầ ả ự
hi n đúng theo các bệ ước sau. Đ u tiên là ph i xác đ nh v n đ c n gi i quy t. N uầ ả ị ấ ề ầ ả ế ế không bi t rõ v n đ thì ta không th tìm đế ấ ề ể ược phương pháp gi i quy t. Sau khi xácả ế
đ nh đị ược v n đ , thì chúng ta có th nghĩ ra các k ho ch đ th c hi n. Sau khi cóấ ề ể ế ạ ể ự ệ
m t k ho ch, thì có th th c thi k ho ch này. Sau khi k ho ch độ ế ạ ể ự ế ạ ế ạ ược th c thi,ự chúng ta ph i ki m tra l i k t qu đ xem v n đ đả ể ạ ế ả ể ấ ề ược gi i quy t xong ch a.ả ế ư Logic này thường được áp d ng trong nhi u lĩnh v c khác nhau, trong đó có l pụ ề ự ậ trình
Khi t o m t chạ ộ ương trình trong C# hay b t c ngôn ng nào, chúng ta nênấ ứ ữ theo nh ng bữ ước tu n t sau:ầ ự
+ Xác đ nh m c tiêu c a chị ụ ủ ương trình. Ví d m c tiêu đ vi t chụ ụ ể ế ương trình
x lý văn b n đ n gi n, m c tiêu chính là xây d ng chử ả ơ ả ụ ự ương trình cho phép so nạ
th o và l u tr nh ng chu i ký t hay văn b n. N u không có m c tiêu thì khôngả ư ữ ữ ỗ ự ả ế ụ
th vi t để ế ược chương trình hi u qu ệ ả
+ Xác đ nh nh ng phị ữ ương pháp gi i quy t v n đ T o m t chả ế ấ ề ạ ộ ương trình để
gi i quy t v n đ Bả ế ấ ề ước th hai là quy t đ nh đ n phứ ế ị ế ương pháp đ vi t chể ế ươ ngtrình. Bước này xác đ nh nh ng thông tin nào c n thi t đị ữ ầ ế ượ ử ục s d ng trong chươ ngtrình, các hình th c nào đứ ượ ử ục s d ng. T nh ng thông tin này chúng ta rút ra đừ ữ ượ c
phương pháp đ gi i quy t v n đ ể ả ế ấ ề
+ Th c thi chự ương trình đ xem k t qu ể ế ả
1.3.10. L p,ớ đối tư n ợ g và kiểu dữ liệu (type)
Đi u c t lõi c a l p trình hề ố ủ ậ ướng đ i tố ượng là t o ra các ki u m i. Ki u làạ ể ớ ể
m t th độ ứ ược xem nh tr u tư ừ ượng. Nó có th là m t b ng d li u, m t ti u trình,ể ộ ả ữ ệ ộ ể hay m t nút l nh trong m t c a s Tóm l i ki u độ ệ ộ ử ổ ạ ể ược đ nh nghĩa nh m t d ngị ư ộ ạ
v a có thu c tính chung (properties) và các hành vi ng x (behavior) c a nó.ừ ộ ứ ử ủ
N u trong m t ng d ng trên Windows chúng ta t o ra ba nút l nh OK,ế ộ ứ ụ ạ ệ Cancel, Help, thì th c ch t là chúng ta đang dùng ba th hi n c a m t ki u nút l nhự ấ ể ệ ủ ộ ể ệ trong Windows và các nút này cùng chia x các thu c tính và hành vi chung v i nhau.ẻ ộ ớ
Trang 19Ví d , các nút có các thu c tính nh kích thụ ộ ư ước, v trí, nhãn tên (label), tuy nhiên m iị ỗ thu c tính c a m t th hi n không nh t thi t ph i gi ng nhau, và thộ ủ ộ ể ệ ấ ế ả ố ường thì chúng khác nhau, nh nút OK có nhãn là “OK”, Cancel có nhãn là “Cancel” Ngoài ra cácư nút này có các hành vi ng x chung nh kh năng v , kích ho t, đáp ng các thôngứ ử ư ả ẽ ạ ứ
đi p nh n,…Tùy theo t ng ch c năng đ c bi t riêng c a t ng lo i thì n i dung ngệ ấ ừ ứ ặ ệ ủ ừ ạ ộ ứ
x khác nhau, nh ng t t c chúng đử ư ấ ả ược xem nh là cùng m t ki u.ư ộ ể
Cũng nh nhi u ngôn ng l p trình hư ề ữ ậ ướng đ i tố ượng khác, ki u trong C#ể
được đ nh nghĩa là m t l p (class), và các th hi n riêng c a t ng l p đị ộ ớ ể ệ ủ ừ ớ ược g i làọ
đ i tố ượng (object). Trong các chương k ti p s trình bày các ki u khác nhau ngoàiế ế ẽ ể
ki u l p nh ki u li t kê, c u trúc và ki u y quy n (delegates).ể ớ ư ể ệ ấ ể ủ ề
19
Trang 201.3.11. Phư n ơ g th cứ
Hai thành ph n chính c u thành m t l p là thu c tính hay tính ch t vàầ ấ ộ ớ ộ ấ
phương th c hay còn g i là hành đ ng ng x c a đ i tứ ọ ộ ứ ử ủ ố ượng. Trong C# hành vi
được đ nh nghĩa nh m t phị ư ộ ương th c thành viên c a l p.ứ ủ ớ
Phương th c chính là các hàm đứ ược đ nh nghĩa trong l p. Do đó, ta còn cóị ớ
th g i các phể ọ ương th c thành viên là các hàm thành viên trong m t l p. Cácứ ộ ớ
phương th c này ch ra r ng các hành đ ng mà l p có th làm đứ ỉ ằ ộ ớ ể ược cùng v i cáchớ
th c làm hành đ ng đó. Thông thứ ộ ường, tên c a phủ ương th c thứ ường được đ t theoặ tên hành đ ng, ví d nh DrawLine() hay GetString().ộ ụ ư
Khi chương trình th c thi, CLR g i hàm Main() đ u tiên, hàm Main() là đ uự ọ ầ ầ vào c a chủ ương trình, và m i chỗ ương trình ph i có m t hàm Main() Đôi khiả ộ
chương trình có nhi u hàm Main() nh ng lúc này ta ph i xác đ nh các ch d n biênề ư ả ị ỉ ẫ
d ch đ CLR bi t đâu là hàm Main() đ u vào duy nh t trong chị ể ế ầ ấ ương trình
Vi c khai báo phệ ương th c đứ ược xem nh là m t s giao ư ộ ự ước gi a ngữ ườ i
t o ra l p và ngạ ớ ườ ử ụi s d ng l p này. Ngớ ười xây d ng các l p cũng có th là ngự ớ ể ườ idùng l p đó, nh ng không hoàn toàn nh v y. Vì có th các l p này đớ ư ư ậ ể ớ ược xây d ngự thành các th vi n chu n và cung c p cho các nhóm phát tri n khác…Do v y vi cư ệ ẩ ấ ể ậ ệ tuân th theo các qui t c lá r t c n thi t.ủ ắ ấ ầ ế
Đ khai báo m t phể ộ ương th c, ph i xác đ nh ki u giá tr tr v , tên c aứ ả ị ể ị ả ề ủ
phương th c, và cu i cùng là các tham s c n thi t cho phứ ố ố ầ ế ương th c th c hi n.ứ ự ệ1.3.12. Chú thích
M t chộ ương trình được vi t t t thì c n ph i có chú thích các đo n mã đế ố ầ ả ạ ượ c
vi t. Các đo n chú thích này s không đế ạ ẽ ược biên d ch và cũng không tham gia vàoị
chương trình. M c đích chính là làm cho đo n mã ngu n rõ ràng và d hi u.ụ ạ ồ ễ ể
1.3.13. Ứng d n ụ g Console
ng d ng này giao ti p v i ngỨ ụ ế ớ ười dùng thông quan bàn phím và không có giao di n ngệ ười dùng (UI), gi ng nh các ng d ng thố ư ứ ụ ường th y trong Windows.ấ Trong các chương xây d ng các ng d ng nâng cao trên Windows hay Web thì taự ứ ụ
m i dùng các các giao di n đ h a. Còn đ tìm hi u v ngôn ng C# thu n tuý thìớ ệ ồ ọ ể ể ề ữ ầ cách t t nh t là ta vi t các ng d ng console.ố ấ ế ứ ụ
Trong hai ng d ng đ n gi n trên ta đã dùng phứ ụ ơ ả ương th c WriteLine() c aứ ủ
l p Console. Phớ ương th c này s xu t ra màn hình dòng l nh hay màn hình DOSứ ẽ ấ ệ chu i tham s đ a vào.ỗ ố ư
Trang 21l p trùng v i l p đã có ch ng h n. Ví d trong quá trình phát tri n m t ng d ng taớ ớ ớ ẳ ạ ụ ể ộ ứ ụ
c n xây d ng m t l p t đi n và l y tên là Dictionary, và đi u này d n đ n sầ ự ộ ớ ừ ể ấ ề ẫ ế ự tranh ch p khi biên d ch vì C# ch cho phép m t tên duy nh t.ấ ị ỉ ộ ấ
Ch c ch n r ng khi đó chúng ta ph i đ i tên c a l p t đi n mà ta v a t oắ ắ ằ ả ổ ủ ớ ừ ể ừ ạ thành m t cái tên khác ch ng h n nh myDictionary. Khi đó s làm cho vi c phátộ ẳ ạ ư ẽ ệ tri n các ng d ng tr nên ph c t p, c ng k nh. Đ n m t s phát tri n nh t đ nhể ứ ụ ở ứ ạ ồ ề ế ộ ự ể ấ ị nào đó thì chính là c n ác m ng cho nhà phát tri n.ơ ộ ể
Gi i pháp đ gi i quy t v n đ này là vi c t o ra m t namespace,ả ể ả ế ấ ề ệ ạ ộ namsespace s h n ch ph m vi c a m t tên, làm cho tên này ch có ý nghĩa trongẽ ạ ế ạ ủ ộ ỉ vùng đã đ nh nghĩa.ị
1.3.15. Từ khóa using
Đ làm cho chể ương trình g n h n, và không c n ph i vi t t ng namespaceọ ơ ầ ả ế ừ cho t ng đ i từ ố ượng, C# cung c p t khóa là using, sau t khóa này là m t namespaceấ ừ ừ ộ hay subnamespace v i mô t đ y đ trong c u trúc phân c p c a nó. Ta có th dùngớ ả ầ ủ ấ ấ ủ ể dòng l nh:ệ "using System" đ u ch ng trình và khi đó trong ch ng trình n uở ầ ươ ươ ế chúng ta có dùng đ i tố ượng Console thì không c n ph i vi t đ y đ :ầ ả ế ầ ủ System.Console. mà ch c n vi t ỉ ầ ế Console
M c dù chúng ta ch đ nh r ng chúng ta s d ng namespace System, vàặ ỉ ị ằ ử ụ không gi ng nh các ngôn ng khác, không th ch đ nh r ng chúng ta s d ng đ iố ư ữ ể ỉ ị ằ ử ụ ố
tượng System.Console
Cách bi u di n namespace có th làm gi m nhi u thao tác gõ bàn phím,ể ễ ể ả ề
nh ng nó có th s không đem l i l i ích nào b i vì nó có th làm xáo tr n nh ngư ể ẽ ạ ợ ở ể ộ ữ namespace có tên không khác nhau. Gi i pháp chung là chúng ta s d ng t khóaả ử ụ ừ using v i các namespace đã đớ ược xây d ng s n, các namespace do chúng ta t o ra,ự ẵ ạ
nh ng namespace này chúng ta đã n m ch c s u li u v nó. Còn đ i v i namespaceữ ắ ắ ư ệ ề ố ớ
do các hãng th ba cung c p thì chúng ta không nên dùng t khóa ứ ấ ừ using
21
Trang 221.3.16. Phân bi tệ chữ thường và chữ hoa
Cũng gi ng nh C/C++, C# là ngôn ng phân bi t ch thố ư ữ ệ ữ ường v i ch hoa,ớ ữ
đi u này có nghĩa r ng hai câu l nh writeLine thì khác v i WriteLine và cũng khácề ằ ệ ớ
Đáng ti c là C# không gi ng nh VB, môi trế ố ư ường phát tri n C# s không tể ẽ ự
s a các l i này, n u chúng ta vi t hai ch v i cách khác nhau thì chúng ta có th đ aử ỗ ế ế ữ ớ ể ư vào chương trình g r i tìm ra các l i này.ỡ ố ỗ
Đ trách vi c lãnh phí th i gian và công s c, ngể ệ ờ ứ ười ta phát tri n m t s quiể ộ ố
hi n đúng hay không, ngệ ườ ậi l p trình có th khai báo hàm Main() tr v m t giá trể ả ề ộ ị nào đó đ xác đ nh k t qu th c hi n c a chể ị ế ả ự ệ ủ ương trình
Trong khai báo c a ví d trên có dùng t khóa static:ủ ụ ừ
static void Main()
{
}
T khóa này ch ra r ng hàm Main() có th đừ ỉ ằ ể ược g i mà không c n ph i t oọ ầ ả ạ
đ i tố ượng ChaoMung. Nh ng v n đ liên quan đ n khai báo l p, phữ ấ ề ế ớ ương th c, hayứ thu c tính s độ ẽ ược trình bày chi ti t trong các chế ương ti p theo.ế
Trang 23CH ƯƠ NG 2. PHÂN TÍCH, THI T K H TH NG Ế Ế Ệ Ố
2.1.Gi i thi u v ớ ệ ềth vi n trư ệ ường đ i h c Sao Đạ ọ ỏ
Th vi n trư ệ ường đ i h c Sao Đ là n i không th thi u đạ ọ ỏ ơ ể ế ược cho m i sinhỗ viên c a trủ ường, đó t p trung m t lở ậ ộ ượng l n sinh viên ra vào th vi n đ đ c,ớ ư ệ ể ọ
mượn và tr sách. Nhu c u h c t p ngày càng cao đ c bi t là đ đ m b o ki nả ầ ọ ậ ặ ệ ể ả ả ế
th c có tính logic và chính xác thì vi c tìm đ n v i sách là r t c n thi t, đ đáp ngứ ệ ế ớ ấ ầ ế ể ứ nhu c u đó thì th vi n trầ ư ệ ường đã tăng s lố ượng sách đáng k r t phong phú v lo iể ấ ề ạ sách cũng nh s lư ố ượng
2.1.1. Mô t ph m vi c a h th ngả ạ ủ ệ ố
H th ng chệ ố ương trình ph i đ m b o các yêu c u sau:ả ả ả ầ
Gi m thi u công s c, th i gian c a con ng i.ả ể ứ ờ ủ ườ
Truy c p tìm ki m nhanh chóng, hi u qu , chính xác.ậ ế ệ ả
L p báo cáo nhanh chóngậ
* M c tiêu qu n lýụ ả
Theo dõi đ c thông tin ượ đ c gi ọ ả
Theo dõi đượ ố sách.c s
Theo dõi đượ thông tin sách.c
Tính đượ s phi u đ c gic ố ế ộ ả
Trang 24Môi trườ : th th , đ c gi ng ủ ư ộ ả
v thông ềtin mượn sách
QU N LÍ Đ C Ả Ộ GIẢ
T đó có mô hình qu n lí nh sauừ ả ư
Hình 2.1. Mô hình qu n lí th vi n ả ư ệ
2.2. Xác đ nh yêu c u c a h th ng ị ầ ủ ệ ố
Phai năm ro nhu câu cân xây d ng cua hê thông, t cac nhu câu cân xây d ng̉ ́ ̃ ̀ ̀ ự ̉ ̣ ́ ừ ́ ̀ ̀ ự
ma cân phai thu thâp cac t liêu cân thiêt t n i thiêt lâp d an.̀ ̀ ̉ ̣ ́ ư ̣ ̀ ́ ư ờ ́ ̣ ự ́
Cac công cu cân thiêt đê xây d ng hê thông: SQL Server 2008, Visual Studió ̣ ̀ ́ ̉ ự ̣ ́
2012, Rational Rose, Microsoft Word 2013
Kiên th c cân co: ́ ứ ̀ ́
+ Năm v ng vê ngôn ng lâp trinh Visual Studio 2012.́ ữ ̀ ư ̣̃ ̀
+ Phân tich chinh xac c s d liêu băng SQL Server 2008.́ ́ ́ ơ ở ữ ̣ ̀
+ Thiêt kê cac mô hinh băng Rational Rose va phân tich ro rang, chinh xać ́ ́ ̀ ̀ ̀ ́ ̃ ̀ ́ ́ băng Microsoft Word 2013. ̀
2.3 Mô t các ch c năng c a h th ngả ứ ủ ệ ố
H th ng qu n lý ệ ố ả th vi nư ệ bao gôm cac ch c năng sau:̀ ́ ứ
* Ch c năng qu n lý sáchứ ả :
Quan ly thông tin chi tiêt vê ̉ ́ ́ ̀sách nh : Ma ̃ư sách, tên sách, ngay ̀ nh pậ , nhà
xu t b n, năm xu t b n, ấ ả ấ ả
Trang 26Đi u ki n kiên quy tề ệ ế Th th đã có tài kho nủ ư ả
Trang 27Đi u ki n kiên quy tề ệ ế Th Th ph i đăng nh p.ủ ư ả ậ
Trang 28Tim kiem theo ten sach
Tim kiem theo Khoa
Tim kiem ma sinh vien
Tim Kiem Sinh Vien
Thu thu
Tim kiem theo ten sach
Tim kiem theo Khoa
tìm ki m sách trong c s d li u.ế ơ ở ữ ệ
S ki n kích ho tự ệ ạ Th th ch n ch c năng tìm ki m theo t khóa ủ ư ọ ứ ế ừ
Đi u ki n kiên quy tề ệ ế Th th ph i đăng nh p.ủ ư ả ậ
Phương th c c b nứ ơ ả 1 Th th ch n tìm ki m theo t khóaủ ư ọ ế ừ
2 H th ng tr v form tìm ki m theo tệ ố ả ề ế ừ khóa
3 Th th nh p t khóa và tìm ki m.ủ ư ậ ừ ế
4 H th ng tr v k t qu tìm ki m.ệ ố ả ề ế ả ế