Đồ án môn Lập trình C Sharp

Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
LỜ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 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 Đỏ 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 trả  
sách. Nhu cầu học tập ngày càng cao đặc biệt để đả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.  
thế 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ớ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 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ị 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 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 đó thực tế.  
Trong đó, xây dựng phần mềm phục vụ công việc 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 thư viện  
trường đại học Sao Đỏ” cũng một trong những ứng dụng đượ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 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  
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 để chúng em có thể hoàn thiện được  
chương trình mà thực tế đòi hỏi.  
1
 
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
MỤC LỤC  
2
 
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
3
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
4
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
DANH MỤC HÌNH  
5
 
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
DANH MỤC BẢNG  
6
 
Đồ môn: Lập trình C Sharp  
1. Lý do chọn đề tài  
Ngành công nghệ thông tin  
MỞ ĐẦU  
Quản thư viện 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 thư viện sẽ giúp việc quản trở nên đơn giản đặ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 sẽ giúp việc truy  
vấn thông tin được nhanh chóng theo yêu cầu khác nhau.  
sự ra đời của một hệ thống “Quản 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 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 thực hiện đề tài: “ XÂY DỰNG CHƯƠNG TRÌNH QUẢN THƯ  
VIỆN TRƯỜNG ĐẠI HỌC SAO ĐỎ ”.  
2. Mục đích đề tài  
Hệ thống quản 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  
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 quản lý quá trình mượn trả sách.  
3. Thông tin thống 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 độc giả thủ thư:  
+ Độc giả: sinh viên trong trường  
+ Thủ thư: có toàn quyền sử dụng cập nhật thông tin, quản lí sách.  
4. 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 SQL-Server 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ả.  
7
         
Đồ môn: Lập trình C Sharp  
5. Phương pháp nghiên cứu  
- Nghiên cứu thuyết.  
- Khảo sát thực tế.  
Ngành công nghệ thông tin  
- 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ố gắng 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ười là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.  
7. Bố cục đề tài  
Nội dung đồ án gồm các thành phần sau:  
MỞ ĐẦU  
- Chương 1. Cơ sở thuyết  
- Chương 2. Phân tích, thiết kế hệ thống  
- Chương 3. Xây dựng ứng dụng quản thư viện  
KẾT LUẬN HƯỚNG PHÁT TRIỂN  
TÀI LIỆU THAM KHẢO  
8
     
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
9
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
CHƯƠNG 1. CƠ SỞ THUYẾT  
1.1. Cơ sở thuyết  
1.1.1. Các khái niệm cơ bản  
- Cơ sở dữ liệu: một tập hợp các bảng dữ liệu có quan hệ với nhau sao cho  
cấu trúc của chúng cũng như các mối quan hệ bên trong giữa chúng là tách biệt vớ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.  
VD: Lược đồ một quan hệ  
R = <x, w> = ( A1:D1,A2:D2, .., An :Dn , M)  
Trong đó: R là một lược đồ quan hệ  
Ai : tên thuộc tính  
Di : miền xác định của thuộc tính  
M : mệnh đề ràng buộc  
Nội dung của một lược đồ quan hệ gọi là các bộ.  
- Các phép toán tối thiểu:  
* Tìm kiếm dữ liệu theo tiêu chuẩn đã chọn, không làm thay đổi trạng  
thái cơ sở dữ liệu.  
* 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 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.  
- Một quan hệ bao giờ cũng 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á.  
10  
       
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
- Vi mt quan htuvào các phthuc ca các thuc tính vào khoá có trong đó  
mà ta phân chia các quan hệ đó thành các dng chun khác nhau. Các dng chun cơ  
bn:  
* Dạng chuẩn 1  
* Dạng chuẩn 2  
* 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 dạng chuẩn 3.  
1.1.3. Khái niệm chỉ dẫn và khoá chỉ dẫn  
Để 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 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 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 độc lập vật lý.  
- Cho một khả năng 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 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 độ bền vững đầy đủ thông tin  
1.2. Giới thiệu chung về hệ quản trị CSDL SQL-Server  
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 SQL-92 (phiên bản được  
11  
       
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
đư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 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)  
+ Gồm các lệnh SELECT, INSERT, UPDATE cho phép thao tác trên đối 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.  
+ Gồm các câu lệnh: GRANT và REVOKE  
+ Điều quan trọng nhất 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.  
+ Những lệnh trong SQL có khả năng sử dụng ở dạng tương tác đều 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 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.  
12  
 
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
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 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 đ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 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, 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ặc thậm chí là Java, 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ử những chức năng khác được lấy trực tiếp từ ngôn ngữ C  
và C++, nhưng đã đượ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 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ư xử ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ  
liệu mở rộng, bảo mật nguồn 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 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 nhiê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 rắc rối phát  
sinh bởi con trỏ. Trong C#, bộ thu gom bộ nhớ tự động 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ình  
13  
       
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
(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ẽ 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 thể làm. C# được sử dụng cho nhiều các dự án khác nhau như  
tạo ra ứng dụng xử 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 để tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ 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#.  
abstract  
default  
foreach  
Object  
sizeof  
unsafe  
as  
base  
delegate  
do  
goto  
if  
Operator  
out  
stackalloc  
static  
ushort  
virtual  
bool  
Double  
implicit  
override  
string  
volatile  
break  
byte  
else  
in  
params  
Private  
struct  
struct  
void  
Enum  
int  
while  
case  
event  
interface  
internal  
Protected  
Public  
this  
catch  
Explicit  
throw  
char  
checked  
extern  
false  
is  
lock  
readonly  
ref  
true  
try  
class  
const  
Finally  
fixed  
long  
return  
Sbyte  
typeof  
uint  
namespace  
continue  
decimal  
float  
new sealed  
short  
sealed  
short  
ulong  
for null  
unchecked  
Bảng 1.1: Các từ khóa của ngôn ngữ C#  
1.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 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 những phương  
thứ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  
14  
       
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
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  
nguồn dùng lại hiệu quả.  
1.3.7. C# sẽ 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ư 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 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 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 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ữ  
đó. 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.  
- 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 lại nó tránh được  
những lỗi thường gặp trong ngôn ngữ C++. Điều này có thể tiết kiệm được hàng  
15  
   
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
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 tập  
tin header. Tất cả 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 thể  
được sử dụng trong C#, khi đó những đoạn 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 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 just-in-  
time 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ị. 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, kiểu dữ liệu cấu trúc đây 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 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.  
1.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ì  
16  
 
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
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 đó 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ử  
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 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ương trì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ương trì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ượng và kiu dữ liu (type)  
- Điều cốt lõi của lập trình hướng đối tượng tạo ra các kiểu mới. Kiểu một  
thứ được xem như trừu tượng. Nó có thể 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 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.  
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 một lớp (class), và các thể hiện riêng của từng lớp được gọi đố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).  
17  
 
Đồ môn: Lập trình C Sharp  
1.3.11. Phương thức  
Ngành công nghệ thông tin  
- Hai thành phần chính cấu thành một lớp thuộc tính hay tính chất 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 lớp 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 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ư một sự giao ước giữa người tạo  
ra lớp người sử dụng lớp này. Người xây dựng các lớp cũng thể người dù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 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, 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 được  
viết. Các đoạn chú thích này sẽ không được biên dịch cũng không tham gia vào  
chương trình. Mục đích chính là làm cho đoạn nguồn rõ ràng và dễ hiểu.  
1.3.13. ng dng 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.  
18  
     
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
1.3.14. Namespace  
- Như chúng ta đã biết .NET cung cấp một thư viện các lớp đồ sộ thư viện  
này có tên là FCL (Framework Class Library). Trong đó Console chỉ một lớp nhỏ  
trong hàng ngàn lớp trong thư viện. Mỗi lớp một tên riêng, vì vậy FCL có hàng  
ngàn tên như ArrayList, Dictionary, FileSelector,…  
- Điều này làm nảy sinh vấn đề, người lập trình không thể nào nhớ hết được tên  
của các lớp trong .NET Framework. Tệ hơn nữa là sau này có thể ta tạo lại một lớp  
trùng với lớp đã chẳng hạn. 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 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 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. 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.  
19  
   
Đồ môn: Lập trình C Sharp  
Ngành công nghệ thông tin  
1.3.16. Phân biệt chữ thường và chhoa  
- 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 với  
WRITELINE.  
- Đá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  
ước cho cách đặt tên biến, hằng, hàm, và nhiều định danh khác nữa. Qui ước trong  
giáo trình này dùng cú pháp lạc đà (camel notation) cho tên biến và cú pháp Pascal cho  
hàm, hằng, thuộc tính.  
1.3.17. Từ khóa static  
- Hàm Main() trong ví dụ minh họa trên có nhiều hơn một cách thiết kế. Trong  
minh họa này hàm Main() được khai báo với kiểu trả về là void, tức là hàm này không  
trả về bất cứ giá trị nào cả. Đôi khi cần kiểm tra chương trình có thực 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 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.  
20  
   
Tải về để xem bản đầy đủ
doc 53 trang yennguyen 29/03/2022 4640
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án môn Lập trình C Sharp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docdo_an_mon_lap_trinh_c_sharp.doc