Đi đôi với sự phát triển của công nghệ chế tạo các thiết bị máy tính thì việc các sản phẩm phần mềm ứng dụng ra đời có tính chất quyết định đối với việc áp dụng ngành khoa học này.Trên t
Trang 1Trường Cao Đẳng Bách Khoa Đà Nẵng
Khoa Công Nghệ Thông tin
Website: www.bachkhoadanang.edu.vn - -
Trang 2Mục Lục
LỜI MỞ ĐẦU 5
CHƯƠNG I Giới thiệu 6
I.1 Giới thiệu chung 6
I.2 Đánh giá hiện trạng 6
I.3 Phạm vi chương trình 6
I.3.1.Về xử lý 6
I.3.2.Về dữ liệu 6
I.3.3.Về phần mềm 6
CHƯƠNG II Giới thiệu phần công nghệ thực hiện 7
II.1 Giới thiệu chung về ngôn ngữ lập trình C# 7
II.1.1 Biến và biểu thức trong C# 8
II.1.2 Từ khóa (keyword) trong ngôn ngữ C# 8
II.1.3 Các kiểu dữ liệu trong C# 9
II.1.4 Các toán tử số học 9
II.1.5 Toán tử quan hệ và logic 10
II.1.6 Toán tử xử lý bit 10
II.2 Các lệnh điều khiển trong C# 10
II.2.1 Các lệnh lặp 10
II.2.1.1 Lệnh lặp for 10
II.2.1.2 Vòng lặp do… while 11
II.2.1.3 Vòng lặp while 11
II.2.1.4 Vòng lặp foreach 11
II.2.2 Lệnh điều kiện 11
II.2.3 Lệnh lựa chọn (switch…case) 12
II.3 Phương thức (Method) 13
II.3.1 Phương thức trả về một giá trị 13
II.3.2 Phương thức kiểu void 13
II.4 Lớp trong lập trình hướng đối tượng C# (class) 14
II.5 Tính thừa kế trong C# 15
- Lớp thừa kế còn gọi là lớp dẫn xuất (derived class) 15
II.6 Files 17
II.6.1 Ghi đọc file text 17
Trang 3II.6.2 Ghi đọc file nhị phân 17
II.7 Chuỗi ký tự 17
II.7.1 Phương thức String.Format() 17
II.7.2 Phương thức Concat() 18
II.7.3 Phương thức Join() 18
II.7.4 Phương thức Insert() 19
II.7.5 Phương thức Copyto() 19
II.7.6 Phương thức TRIMSTAST(), TRIMEND(), TRIM() 19
II.7.7 Phương thức Remove(), PadLeft(), PadRight() 20
II.7.8 Phương thức xác định chuỗi con đầu và chuỗi con cuối 21
II.7.9 Phương thức xác định vị trí ký tự trong chuỗi 21
II.7.10 Phương thức so sánh các chuỗi ký tự 22
II.8 Lập trình WINDOWS với C# 22
II.8.1 Lập trình Windows theo điều khiển thư viện 23
II.8.2 Lập trình Windows theo kiểu khai báo 23
II.9 Lập trình cơ sở dữ liệu với C# 24
II.9.1 Hệ quản cơ sở dữ liệu 25
II.9.2 SQL Server 2005 25
CHƯƠNG III Giới thiệu nội dung thực tập 26
III.1 Phân tích chức năng 26
III.1.1 Sơ đồ chức năng 26
III.1.2 Các chức năng của hệ thống 27
III.1.2.1 Tra cứu, tìm kiếm thông tin 27
III.1.2.2 Thống kê dữ liệu 27
III.1.2.3 Xóa dữ liệu 27
III.1.2.4 Sửa dữ liệu 27
III.1.2.5 Thêm thông tin 28
III.1.2.6 Lưu trữ 28
III.2 Phân tích cơ sở dũ liệu 28
CHƯƠNG IV.Phát triển ứng dụng 33
IV.1 Bảng dữ liệu hệ thống QL_TUYENSINH 33
IV.2 Sơ đồ dữ liệu mức vật lý 34
IV.3 Phân tích lớp và code 35
IV.3.1 Giao diện đăng nhập hệ thống 35
Trang 4IV.3.2 Giao diện quản trị 38
IV.3.3 Giao diện chức năng thêm thông tin 52
IV.3.4 Thống kê số lượng thí sinh theo khối 59
IV.3.5 Thống kê số lượng thí sinh theo ngành 63
IV.3.6 Thống kê thí sinh theo nguyện vọng 69
IV.3.7 Thống kê thí sinh theo điểm 69
IV.3.8 Thống kê thí sinh theo điểm chuẩn 69
IV.3.9 Danh sách thí sinh trúng tuyển 69
IV.3.10 Danh sách thí sinh không trúng tuyển 69
IV.3.11 Danh mục Ban tuyển sinh 69
IV.3.12 Danh mục Tỉnh – Thành phố 69
IV.3.13 Danh mục Quận – Huyện 69
IV.3.14 Danh mục Trường trung học phổ thông 69
IV.3.15 Danh mục khu vực ưu tiên 69
IV.3.16 Danh mục đối tượng ưu tiên 69
IV.3.17 Danh mục trường Đại học – Cao đẳng 69
IV.3.18 Danh mục khối và môn thi 69
IV.3.19 Danh mục ngành 69
IV.3.20 Giao diện dành cho nhân viên 69
CHƯƠNG V Hướng phát triển dự án 69
Trang 5Ngày nay song song với quá trình phát triển công nghệ khoa học và kỹ thuật thì ngành khoa học tính toán đã đóng vai trò quan trọng, nó đã đạt được những thành tựu khoa học kỹ thuật rực rỡ với những bước tiến nhảy vọt.Việc áp dụng các công nghệ khoa học kỹ thuật vào lĩnh vực đời sống của con người ngày càng tăng và không ngừng can thiệp vào hầu hết các công việc trong đời sống Công nghệ thông tin là một trong những ngành khoa học đó Đi đôi với sự phát triển của công nghệ chế tạo các thiết bị máy tính thì việc các sản phẩm phần mềm ứng dụng ra đời có tính chất quyết định đối với việc áp dụng ngành khoa học này.
Trên thế giới cũng như ở Việt Nam , công nghệ thông tin đã trở thành một ngành công nghiệp mũi nhọn, nó là một ngành khoa học kỹ thuật không thể thiếu trong việc áp dụng vào các hoạt động xã hội như: Quản lý, kinh tế, thông tin
Ở nước ta hiện nay , việc áp dụng vi tính hoá trong việc quản lý tại các cơ quan, xí nghiệp đang rất phổ biến và trở nên cấp thiết Nhưng một vấn đề đặt ra trong việc quản lý là làm thế nào để chuẩn hoá cách xử lý dữ liệu ở các cơ quan, xí nghiệp, bởi trăm xí nghiệp, trăm cơ quan là trăm cách xử lý khác nhau, ở đây chúng tôi muốn đề cập tới tầm quan trọng của việc phân tích vấn đề trong quản lý ứng dụng vào vi tính Đó cũng là một vấn đề còn nhiều hạn chế của đội ngũ nhân viên trong việc quản lý tại các cơ quan, xí nghiệp của ta.
Một thực trạng đang diễn ra là các công ty thường mời các chuyên viên phần mềm vi tính về viết chương trình, nhưng họ không hiểu chương trình được viết như thế nào, hoặc ứng dụng được phân tích ra sao Họ không biết làm gì ngoài việc ấn nút theo sự hướng dẫn của công ty phần mềm khi sử dụng chương trình họ viết Khi muốn thay đổi nho nhỏ trong chương trình lại phải mời chuyên viên,vì người điều hành chỉ biết ấn nút mà thôi, mà những thay đổi này có thể khi phân tích vấn đề không ai để ý hoặc khách hàng quên khuấy không yêu cầu chuyên viên khắc phục trong chương trình Sự hạn chế trong việc phân tích vấn đề, quản lý đã không phát huy hết tác dụng của máy tính.
Với mong muốn giúp mọi người hiểu được ý nghĩa và tầm quan trọng của công nghệ thông tin.
Em giới thiệu phần mềm quản lý tuyển sinh đại học và cao đẳng dựa trên nền tảng của hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2005 và bộ Visual Studio C# 2012
Mặc dù rất cố gắng để hoàn thành công việc, xong thời gian có hạn và kinh nghiệm kiến thức chưa nhiều nên bài làm còn có nhiều thiếu xót cần được bổ xung Vì vậy, em mong nhận được ý kiến đóng góp của thầy cô và bạn bè để đề tài ngày càng hoàn thiện hơn.
Trang 6CHƯƠNG I Giới thiệu
I.1 Giới thiệu chung
Chương trình : Quản lý tuyển sinh đại học và cao đẳng với những chức năng cơ bản giúp bộ phận tuyển sinh của trường thực hiện công việc của mình dễ dàng và nhanh chóng hơn
Hệ thống quản lý tuyển sinh cần phải có những chức năng như sau:
Cập nhật tra cứu, tìm kiếm, thêm thông tin, sửa dữ liệu, xét xem thí sinh có đủ điểm
để vào trường hay không : điểm sàn, điểm chuẩn, điểm ưu tiên,…in danh sách thí sinh trúng tuyển hoặc không trúng tuyển v.v
I.2 Đánh giá hiện trạng
Hiện nay nhu cầu quản lý thông tin tuyển sinh của các trường đại học và cao đẳng trong nước ngày càng tăng Tuy đã có một số phần mềm để sử dụng nhưng phần mềm đó
là sử dụng cho tất cả các trường nên việc lưu trữ rất nhiều, khó kiểm soát và sửa chữa sẽ gây ra tình trạng thông tin thiếu chính xác, dẫn đến việc cập nhật điểm và thông tin thí sinh gặp nhiều khó khăn Để giúp cho người quản lý tuyển sinh dễ dàng lưu trũ, cập nhật thông tin và điểm của thí sinh cần có một chương trình chỉ phục vụ cho một trường cụ thể đảm bảo tính chính xác và đầy đủ các thông tin cần thiết Vì vậy phần mềm quản lý tuyển sinh đại học và cao đẳng là một ứng dụng minh họa.
I.3 Phạm vi chương trình
I.3.1.Về xử lý
Công việc chính của chương trình gồm:
Cập nhật thông tin, tra cứu thông tin và thống kê.
Xét thí sinh có đủ điểm để vào trường trường hay không bao gồm: điểm sàn, điểm chuẩn của ngành, đối tượng ưu tiên, khu vực ưu tiên.
In thông tin thí sinh trúng tuyển và không trúng tuyển.
Các danh mục hổ trợ ban tuyển sinh
I.3.2.Về dữ liệu
Rõ ràng
Dễ dàng lưu trữ
I.3.3.Về phần mềm
Trang 7CHƯƠNG II Giới thiệu phần công nghệ thực hiện
II.1 Giới thiệu chung về ngôn ngữ lập trình C#
C# được Microsoft phát triển dựa trên C++ và Java, C# là ngôn ngữ được cân bằng giữa C++, Visual Basic, Delphi và Java Được dẫn xuất từ C và C++, cùng với những đặc điểm mới làm cho ngôn ngữ này dễ sử dụng và mạng hơn nhiều, tạo sự phát triển tốt hơn Với sự hỗ trợ của Microsoft, nhiều tính năng của C# khá giống với những đặt tính có trong Java, giúp người lập trình Java mau chóng làm quen với C# để phát triển ứng dụng tốt hơn.
C# có một số điểm điểm nỗi trội sau:
C# là ngôn ngữ đơn giản, hiện đại:
Những đặc tính như là xử lý ngoại tệ, cho phép 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 đặt tính được mong đợi trong một ngôn ngữ hiện đại C# có tất cả những đặt tính trên
C# là ngôn ngữ hướng đối tượng, mạnh, linh hoạt:
Những đặc điểm chính của ngôn ngữ hướng đối tượng là sự đóng gói, sự kế thừa và đa hình C# hỗ trợ tất cả những đặt tính trên Ngôn ngữ này chỉ bị giới hạn bởi chính bản thân hây trí tưởng tượng của chúng ta Ngôn ngữ này không đặt những rang buộc lên những việc có thể làm.
C# được sử dụng cho nhiều dự án khác nhau như tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bảng tính hay thậm chí là trình biên dịch cho ngôn ngữ khác.
C# là ngôn ngữ hướng module:
Mã nguồn của C# có thể viết trong những phần 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 trong những ứng dụng hay chương trình khác Bằng cách truyền thông tin đến những lớp hay phương thức, chúng ta có thể tạo lại những mã nguồn dùng lại có hiệu quả.
Ứng dụng console, winform và webform.:
Ứng dụng console:
Giao tiếp với người dùng bằng bàn phím.
Không có giao diện đó họa.
Ứng dụng windows form :
Giao tiếp với người dùng bàng bàn phím với chuột.
Có giao diện xử lý đồ họa và xử lý sự kiện.
Ứng dụng web form:
Kết hợp với ASP.NET, C# đóng vai trò xử lý sự kiện bên dưới.
Trang 8 Có giao diện và xử lý sự kiện
II.1.1 Biến và biểu thức trong C#
Sử dụng 26 chữ cái tiếng Anh thường và hoa:
a, b, c, d, e, f,….x, y, x.
A, B, C, D, E, F,…X, Y, Z.
10 chữ số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Dấu gạch dưới_(không phải dấu trừ)
II.1.2 Từ khóa (keyword) trong ngôn ngữ C#
Trang 9Kiểu C# Số byte Kiểu NET Mô tả
Byte 1 byte Số nguyên dương không dấu : 0-255
Bool 1 boolean Giá trị logic true/false
Sbyte 1 sbyte Số nguyên có dấu -128 - 127
Short 2 Int16 Số nguyên có giá trị -32768 – 32767
Ushort 2 Uint16 Số nguyên khồng dấu 0 – 65.535
Int 4 Int32 Số nguyên có dấu -2.147.483.647 –
2.147.483.647 Uint 4 Uint32 Số nguyên không dấu 0 – 4.294.967.295
Float 4 single Kiểu dấu chấm động giá trị xấp xỉ từ
3.4E – 38 đến 3.4E + 38, với 7 chữ số có nghĩa.
Double 8 Double Kiểu dấu chấm động có độ chính xác
gấp đôi, giá trị xấp xỉ từ 1.7E – 308 đến 1,7E + 308, với 1516 chữ số có nghĩa.
Decemal 8 Decemal Có độ chính xác đến 28 con số và giá
trị thập phân,được dùng trong tính toán yaif chính,kiểu này đòi hỏi phải có hậu tố “m” hoặc “M” theo sau giá trị Long 8 Int64 Số nguyên có dấu:
-9.223.370.036.854.775.808 - 9.223.370.036.854.775.807 Ulong 8 Uint64 Số nguyên không dấu: 0 – 0*ffffffffffff
++i ; i++ Tăng giá trị i lên 1 đơn vị
i ; i Giảm giá trị i xuống 1 đơn vị
II.1.5 Toán tử quan hệ và logic
Trang 10II.2.1.2 Vòng lặp do… while
Vòng lặp do… while cũng có 3 biểu thức:
- Biểu thức khởi tạo
Trang 11- Biểu thức kiểm tra điều kiện Nếu điều kiện thỏa mãn (đúng) thì vòng lặp được thực hiện còn nếu điều kiện không thỏa mãn (sai) thì vòng lặp kết thúc
II.2.1.3 Vòng lặp while
Vòng lặp while cũng có 3 biểu thức:
- Biểu thức khởi tạo.
- Biểu thức thay đổi và thực hiện lệnh.
- Biểu thức kiểm tra điều kiện.
II.2.1.4 Vòng lặp foreach
Lệnh foreach thường sử dụng cho mảng cú pháp lệnh:
Foreach ( kiểu tên in biểu thức lệnh ) {
if (điều kiện 2) lệnh 1;
else lệnh 2;
} else
{
if (điều kiện 3) lệnh 3;
else lệnh 4; }
II.2.3 Lệnh lựa chọn (switch…case)
Lệnh switch…case trong C# thường sử dụng biến lựa chọn chủ yếu là số nguyên.
Trang 12Console WriteLine( "Nhap hai so a va b" );
a = Double Parse( Console ReadLine());
b = Double Parse( Console ReadLine());
do
{
Console WriteLine( "MENU" );
Console WriteLine( "1 Cong." );
Console WriteLine( "2 Tru." );
Console WriteLine( "3 Nhan." );
Console WriteLine( "4 Chia." );
Console WriteLine( "5 Thoat." );
pt = Int32 Parse( Console ReadLine());
Trang 13Phương thức cũng như hàm trong ngôn ngữ C/C++ hoặc ngôn ngữ Java Phương thức
có hai loại chính: Phương thức trả về giá trị và phương thức kiểu void.
II.3.1 Phương thức trả về một giá trị
Phương thức này có kiểu float, double, int, string…Bên trong phương thức luôn
II.3.2 Phương thức kiểu void
Có thể chia phương thức kiểu void thành 4 loại:
- Kiểu void không có đối số Nó được dùng để hiển thị các thông báo.
void Method () {}
- Kiểu void có đối số đưa vào nhưng không có đối số lấy ra Nó thường dùng để hiển thị các thông báo, tính toán một biểu thức nào đó rồi hiển thị kết quả ra màn hình.
- Kiểu void không có đối số đưa vào nhưng có đối số lấy ra khỏi hàm Nó thường dùng
để nhập dữ liệu từ bàn phím và đưa ra khỏi hàm Các đối số lấy ra phải là đối số kiểu
tham chiếu như kiểu có từ khóa REF hay từ khóa OUT.
- Kiểu void có cả đối số vào và đối số ra Các đối số lấy ra phải là đối số kiểu tham chiếu
như kiểu có từ khóa REF hay từ khóa OUT.
Ví dụ: Các hàm sau đây không cần phải có đối số vì ngay đấu class, trên tất cả các hàm
ta đặt từ khóa static cho tất cả các biến a ,b, m Ba biến này gọi là biến toàn cục – global.
Trang 14Console.WriteLine("a = "+a+"; b = "+b);
Console.WriteLine("m = a+b = "+m);
II.4 Lớp trong lập trình hướng đối tượng C# (class)
- Lập trình hướng đối tượng (OOP: Object Oriented Programming) là một phương pháp dựa vào khái niệm về lớp và đối tượng Lớp là một kiểu mới Lớp chứa nhiều đối tượng Ví dụ một lớp ôtô có nhiều đối tượng là các loại ôtô khác nhau Loại ôtô đó là một đối tượng Một lớp bao gồm: Thuộc tính (hay dữ liệu), các thao tác (hay các phương thức) Một đối tượng ôtô sẽ có các thuộc tính như số cánh cửa, số bánh xe, số ghế ngồi,…Mặt khác ôtô phải có các thao tác như khởi động, chạy, tăng tốc, giảm tốc, dừng,…Đó chính là các phương thức của lớp ôtô.
Thuộc tính của lớp có thể khai báo theo các kiểu:
- private: Các thuộc tính khai báo kiểu private chỉ có hiệu lực ngay trong một lớp.
- public: có hiệu cho cả các lớp khác Các phương thức đa phần được khai báo kiểu public.
- Protected: Được sử dụng cho các biến thuộc lớp dẫn xuất (lớp kế thừa).
Trang 15- Thừa kế là một đặc điểm của hướng đối tượng Nhờ sử dụng khái niệm thừa kế mà ta có thể
tạo ra các lớp mới từ lớp cơ sở đã có Khi sử dụng thừa kế, ta có thể tái sử dụng mã chương trình, tạo ra một giao diện chung mà các đối tượng thừa kế giao diện này có thể truy cập Lớp mới thừa
kế từ lớp cơ sở có thể thừa kế các thuộc tính (dữ liệu), thừa kế các phương thức của lớp cơ sở (base class).
- Lớp thừa kế còn gọi là lớp dẫn xuất (derived class).
- Có hai cách để viết chương trình có thừa kế:
Cách 1: Sử dụng từ khóa virtual và override - Các biến thuộc lớp cơ sở được khai báo theo kiểu private (hoặc protected) Các biến thuộc lớp dẫn xuất được khai báo theo kiểu private - Các hàm thành viên thuộc lớp cơ sở phải có từ khóa virtual trước từ khóa void - Các hàm thành viên thuộc lớp dẫn xuất phải có từ khóa override trước từ khóa void
Cú pháp: class Base1 {
private int a, b; public virtual void Method1() {
}
}
class Derived: Base1 {
private int c; public override void Show() {
}
}
Trang 16Cách 2: Sử dụng từ khóa New.
Cú pháp:
Class base1 //lop co so
{
private type data1;
private type data2;
public void Method1()
private type data3;
public new void Method1()
private type data4;
public new void Method1()
Trang 17-II.6 Files
- Khi cần lưu dữ liệu vào đĩa, C# cung cấp một cơ chế để thực hiện giống như mọi ngôn ngữ khác Có hai cách ghi và đọc dữ liệu vào file là kiểu file text và kiểu file nhị phân
II.6.1 Ghi đọc file text
II.6.1.1 Ghi dữ liệu vào file
- Cú pháp để ghi dữ liệu vào file:
string filename = " C:\\cs\\text.txt" ;
StreamWrite sw = new StreamWrite(filename);
sw.Write(" this is text." );
sw.close();
II.6.1.2 Đọc dữ liệu từ file
string filename = " C:\\cs\\text.txt" ;
StreamWrite sr1 = new StreamWrite(filename);
sr1.ReadLine();
sr1.close();
II.6.2 Ghi đọc file nhị phân
Việc ghi/đọc dữ liệu của file nhị phân có nhiều ưu điểm hơn file text vì tính bảo mật cao hơn.
II.7 Chuỗi ký tự
Xử lý chuổi trong các ngôn ngữ lập trình là hết sức cần thiết Trong C#, có nhiều hàm (phương thức) thư viện để thực hiện việc sử lý chuỗi ký tự Sau đây ta sẽ xét một số phương thức cơ bản.
II.7.1 Phương thức String.Format()
Phương thức này cho phép ta định dạng một chuỗi kết hợp nhiều dạng khác nhau.
Ví dụ:
Trang 18string s1 = String.Format("{0} x {1} = {2}", x, 3, x*3);
string s2 = String.Format("ngay gio hien hanh:
II.7.2 Phương thức Concat()
- Phương thức này cho phép nối các chuỗi với nhau thành một chuỗi lớn hơn.
II.7.3 Phương thức Join()
- P hương thức này cho phép chèn một chuỗi con vào một chuỗi nhỏ.
for (int i = 0; i < s1.Length; i++ )
Console.Write(""+s1[i]);
Console.ReadLine();
Console.WriteLine(String.Join(s2,s1));
Console.ReadLine();
}
Trang 19II.7.4 Phương thức Insert()
Ta có thể chèn một chuỗi vào vị trí n của một chuỗi đã cho.
II.7.5 Phương thức Copyto()
- Nếu có một chuỗi s1 = “hello beautiful world”, s2 = “Viet Nam”, khi thực hiện câu lệnh: s1.CopyTo(6, s2, 0, 4) trong đó 6 là vị trí bắt đầu trích các phần tử của chuỗi s1, 0 là vị trí đầu tiên để copy chuỗi vào, 4 là độ dài cần copy vào.
string s1 = "Hello beautiful world";
char[] s2 = {'V','i','e','t',' ','N','a','m'};
II.7.6 Phương thức TRIMSTAST(), TRIMEND(), TRIM().
- Phương thức TrimStart() cho phép cắt bỏ ký tự trắng ở đầu chuỗi.
- Phương thức TrimEnd() cho phép cắt bỏ ký tự trắng ở cuối chuỗi.
Trang 20- Phương thức Trim() cho phép cắt bỏ ký tự trắng ở cuối chuỗi.
Console.WriteLine("Hello{0}World ",s1);
string s2 = s1.TrimStart();//cắt boH dấu cách đấLu chuỗNi
Console.WriteLine("Hello{0}World ", s2);
s2 = s1.TrimEnd();//cắt boH dấu cách cuỗi chuỗNi
Console.WriteLine("Hello{0}World ", s2);
s2 = s1.Trim();//cắt boH dấu cách caH hai bến
Console.WriteLine("Hello{0}World ", s2);
Console.ReadLine();
} }
II.7.7 Phương thức Remove(), PadLeft(), PadRight()
- Phương thức Remove() cho phép cắt bỏ các phần tử của chuỗi từ vị trí m và có độ dài n.
- Phương thức PadLeft() cho phép điền một ký tự mới vào một phía trái một chuỗi đã cho để lấp đầy n ký tự của chuỗi (bao gồm cả ký tự mới).
- Phương thức PadRight() cho phép điền một ký tự mới vào phía phải một chuỗi đã cho để lấp đầy n ký tự của chuỗi (bao gồm cả ký tự mới).
Trang 21Đổi thành chữ hoa và chữ thường.
Cho các chuỗi :
s1 = “Hello World”;
s2 = “Hello”;
s3 = “World”;
Phương thức s1.StartsWith(s2); cho phép ta so sánh chuỗi s2 với từ đầu tiên của chuỗi s1.
Nếu chúng bằng nhau sẽ trả về giá trị true Nếu chúng khác nhau sẽ trả về giá trị false.
Phương thức s1.ToUpper(); sẽ đổi toàn bộ ký tự của chuỗi thành ký tự hoa.
Phương thức s1.ToLower(); sẽ đổi toàn bộ ký tự của chuỗi thành ký tự thường.
Cho chuỗi s1 = “Hello World”;
Phương thức s1.IndexOf(‘o’); cho ta biết ký tự ‘o’ trong chuỗi s1 có vị trí n (vị trí đầu tiên bằng 0).
Phương thức s1.LastIndexOf (‘l’); cho ta biết ký tự ‘l’cuối cùng của chuỗi s1 có vị trị m.
string s1 = " Hello World ! ";
Console.WriteLine("Vi tri ky tu o:"+s1.IndexOf('o'));
Console.WriteLine("Vi tri l:"+s1.LastIndexOf('l'));
Console.ReadLine(); }}
Trang 22II.7.10 Phương thức so sánh các chuỗi ký tự
- Phương thức String.Compare(s1,s2); cho kết quả trả về là một só nguyên n Nếu s1 > s2 thì
n > 0 Nếu s1 > s2 thì n < 0 Nếu s1 > s2 thì n = 0.
- Phương thức s1.CompareTo(s2) cũng trả về kết quả giống như phương thức String.Compare(s1,s2).
- Phương thức String.Compare.Equals(s1,s2); trả về giá trị true nếu hai chuỗi s1 = s2, và trả
về giá trị false nếu hai chuỗi s1 và s2 khác nhau
string s1 = " Hello World ! ";
string s2 = " Hello World !";
string s3 = " HELLO WORLD !";
string s4 = " Hello World !";
Console.WriteLine(String.CompareOrdinal(s1,s3));
Console.WriteLine(String.Equals(s1, s3));
Console.WriteLine(String.Equals(s2, s2));
Console.WriteLine(s1.CompareTo(s2));
Console.ReadLine();
}
}
II.8 Lập trình WINDOWS với C#
Có hai phương pháp chính cho việc lập trình Windows.
- Sử dụng các câu lệnh trong khai báo.
- Sử dụng các biểu tượng theo kiểu kéo – thả (control)
Trang 23Ví dụ: Ta tạo 1 form đăng nhập gồm có:
Label: Tên đăng nhập, Mật khẩu.
Button: Đăng nhập và Thoát.
Textbox: tbUser và tbPass.
Hình ảnh minh họa:
Form đăng nhập.
II.8.2 Lập trình Windows theo kiểu khai báo
Từ Form đăng nhập đã tạo ta sẽ viết các dòng lệnh tương ứng như sau:
Trang 24MessageBox.Show("Ban da dang nhap thanh cong.");
}
else
{
MessageBox.Show("Ban da dang nhap sai hoac mat
khau khong dung hay nhap lai !");
}
}
class account
{
private string _Username;
public string Username
{
get { return _Username; }
set { _Username = value; }
}
private string _Password;
public string Password
{
get { return _Password; }
set { _Password = value; }
}
public account(string usernane, string password)
{
this.Username = usernane;
this.Password = password;
II.9 Lập trình cơ sở dữ liệu với C#
Một Cơ sở dữ liệu là một tập hợp có tổ chức của thông tin được phân chia vào trong những bảng Mỗi bảng lại được chia thành những hàng và những cột ; những cột này lưu trữ những thông tin thực tế Bạn truy nhập một cơ sở dữ liệu sử dụng ngôn ngữ truy
Trang 25II.9.1 Hệ quản cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS), là phần mềm hay
hệ thống được thiết kế để quản trị một cơ sở dũ liệu Cụ thể, các chương trình thuộc loại này hỗ trộ khả năng lưu trữ, sữa chữa, xóa và tìm kiếm thông tin trong một cơ sở
dữ liệu Có rất nhiều loại hệ quản trị cơ cơ dữ liệu khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính.
Tuy nhiên, đa số hệ quản trị cơ sơ dữ liệu trên thị trường điều có một đặc điểm chung là
sử dụng ngôn ngữ truy vấn theo cấu trúc mà tiếng Anh gọi là Structured Query Language (SQL) Các hệ quản trị cơ sơ dữ liệu phổ biến được nhiều người biết đến là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Informix,… Phần lớn các hệ quản trị
cơ sở dữ liệu kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau như: Linux, Unix, MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên hệ điều hành Windows.
Ưu điểm của hệ quản trị cơ sơ dữ liệu:
Quản lý được dữ liệu dư thừa.
Đảm bảo tính nhất quán cho dữ liệu.
Tạo khả năng chiac sẽ dữ liệu nhiều hơn.
Cải tiến toàn vẹn cho dữ liệu.
Nhược điểm:
Hệ quản trị cơ sở dữ liệu tốt thì khá phức tạp.
Hệ quản trị cơ sở dữ liệu tốt thường chiếm rất lớn dung lượng bộ nhớ.
Giá cả khác nhau tùy theo môi trường và chúc năng.
Hệ quản trị cơ sở dữ được viết tổng quát cho nhiều người dùng thì thường chậm.
II.9.2 SQL Server 2005
- SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu (Relational Database
Management System (RDBMS)) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer Một RDBMS bao gồm databases, database engine
và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS.
- SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server 2005 có thể kết hợp "ăn ý" với các server khác như Microsoft Internet Information Server (IIS), E -Commerce Server, Proxy Server
Trang 26Các phiên bản của SQL Server 2005:
- Enterprise: Hỗ trợ không giới hạn số lượng CPU và kích thước Database Hỗ trợ không giới hạn RAM (nhưng tùy thuộc vào kích thước RAM tối đa mà HĐH hỗ trợ) và các hệ thống 64bit.
- Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ 4 CPU Ngoài ra phiên bản này cũng không được trang bị một số tính năng cao cấp khác.
Workgroup: Tương tự bản Standard nhưng chỉ hỗ trợ 2 CPU và tối đa 3GB RAM
Express: Bản miễn phí, hỗ trợ tối đa 1CPU, 1GB RAM v à kích thước Database giới hạn trong 4GB.
Trang 27III.1 Phân tích chức năng
III.1.1 Sơ đồ chức năng
Sơ đồ chức năng dùng để phân quyền trong hệ thống.
- Người quản lý chương trình được phân quyền tra cứu, thống kê, cập nhật lại thông tin, backup lại dũ liệu, in thông tin thí sinh.
- Nhân viên chỉ được phép tra cứu, thống kê, in thông tin thí sinh mà không được cập nhật
dữ liệu của hệ thống.
III.1.2 Các chức năng của hệ thống
III.1.2.1 Tra cứu, tìm kiếm thông tin
Người sử dụng có thể biết được thông tin chi tiết của một thí sinh bằng việc tra cứu nhưng phải biết mã khối, trường, số báo danh, nguyện vọng của thí sinh đó Khi chương trình nhận được yêu cầu tra cứu thông tin thí sinh từ phía người dùng thì hệ thống sẽ thực hiện và trả về đầy đủ thông tin thí sinh.
III.1.2.2 Thống kê dữ liệu
Chức năng thống kê dữ liệu giúp người sử dụng chương trình có thể biết được thí sinh đã đăng ký vào trường nào, ngành nào, hiện đã có bao nhiêu thí sinh và số thí sinh tương
Trang 28ứng với từng khối Người sử dụng yêu cầu thống kê => chương trình nhận được yêu cầu
và trả về kết quả gồm:
Xuất ra 1 khối bao gồm những ngành gì.
Xuất ra tổng số thí sinh đã đăng ký vào khối đó Và số thí sinh đã đăng ký vào một ngành của khối đó.
III.1.2.3 Xóa dữ liệu
Chức năng này giúp người sử dụng chương trình xóa một thí sinh khi người quản lý thêm thí sinh bị sai hoặc dư.
Khi nhấn nút xóa, chương trình nhận được yêu cầu và đưa ra thông báo hỏi có muốn xóa hay không Nếu người sử dụng đồng ý thì chương trình cho phép xóa thông tin từ thí sinh
đó sau đó sẽ lưu lại database Trả về thông báo dữ liệu đã được xóa Chức năng này chỉ người quản lý mới có còn nhân viên thì không
III.1.2.4 Sửa dữ liệu
Người sử dụng chương trình có thể sửa thông tin thí sinh như họ tên, ngày tháng năm sinh, nơi cư ngụ, mã trường, điểm ưu tiên…khi bị sai sót Mã ngành khi thí sinh từ ngành này chuyển sang ngành khác Khi nhấn nút sửa thì chương trình hiện lên giao diện cho phép sửa thông tin thí sinh và lưu vào database Đối với người quản lý mới có chức năng sửa dũ liệu hệ thống Nhân viên không có chức năng này
III.1.2.5 Thêm thông tin
Chức năng này giúp người sử dụng thêm thí sinh của một ngành quá ít hoặc không đủ số lượng để mở một lớp học, hoặc thí sinh ngành này muốn chuyển sang ngành khác học, hoặc thí sinh đủ điểm chuẩn để vào ngành này ở nguyện vọng 2, 3.
III.1.2.6 Lưu trữ
Đối với từng yêu cầu, hệ thồng sẽ thực hiện lưu trữ nhiều thông tin khác nhau Các thông tin đó bao gồm: thông tin về thí sinh, điểm, người dùng.
Thông tin thí sinh: tên, ngày sinh, quê quán, giới tính, điểm thi…
Thông tin điêm: sẽ lưu trữ điểm và in kết quả của thí sinh.
Thông tin người dùng: tên đăng nhập, mật khẩu, quyền người dùng.
III.2 Phân tích cơ sở dũ liệu
Khởi tạo cơ sở dũ liệu QL_TUYENSINH và add lần lượt các bảng vào cơ sở dũ liệu.
Trang 29(TRUONGPT), trường tuyển sinh (TRUONGTS), đơn vị dự tuyển (DONVIDT), huyện (HUYEN), thí sinh (THISINH1), thí sinh toàn quốc (THISINHTOANQUOC), đối tượng (DOITUONG), khu vực (KHUVUC), ngành (NGANH), khối thi (KHOITHI), điểm sàn (DIEMSAN), điểm chuẩn (DIEMCHUAN), thành viên (USERS).
CREATE DATABASE QL_TUYENSINH
/*TAO BANG TINH*/
CREATE TABLE TINH
/*BANG TRUONG PHO THONG*/
CREATE TABLE TRUONG
(
[Truongpt] nvarchar( ) not null,
[Ten_truong]nvarchar(100) null,
[Matinh]nvarchar( )not null,
[Khuvuc] nvarchar( )null,
[Diachi] nvarchar(200),
primary key(Truongpt, Matinh)
) ON[PRIMARY]
Go
Trang 30/*BANG TRUONG TUYEN SINH*/
[Matruong] nvarchar( ) not null,
[Ten_Truong] nvarchar(100) null,
[Loai_truong] nvarchar( ) null,
[To_chuc_thi] nvarchar( ) null,
PRIMARY KEY Matruong)
[Mabants] nvarchar( ) null,
[Madonvidt] nvarchar( )not null,
[Ten_don_vi_dt] nvarchar(200) null,
[Mahuyen] nvarchar( ) null,
PRIMARY KEY Madonvidt)
[Mahuyen] nvarchar( )not null,
[Ten_huyen] nvarchar(100)null,
[Matinh] nvarchar( ) null,
PRIMARY KEY Mahuyen)
Trang 31[Mabants]NVARCHAR( )NOT NULL,
[Madonvidt]NVARCHAR( )NOT NULL,
[Matruong]NVARCHAR( ) NULL,
[Khoi]NVARCHAR( )NOT NULL,
[Truong2]NVARCHAR( ),
[Khoi2]NVARCHAR( ) NOT NULL,
[Manganh]NVARCHAR( ),
[SBD]NUMERIC(18, )NOT NULL,
[Ho]NVARCHAR(50)NULL,
[Ten]NVARCHAR( )NULL,
[Gioitinh]NVARCHAR( ) NULL,
[Ngay_sinh]NVARCHAR( )NULL,
[Dantoc]NVARCHAR( ),
[Matinh]NVARCHAR( ) NULL,
[Mahuyen]NVARCHAR( ),
[Doituong]NVARCHAR( ) NOT NULL,
[Nhom_UT]NVARCHAR( )NOT NULL,
[Namtn]NVARCHAR( )NULL,
[Lop_10]NVARCHAR( ) NULL,
[Lop_11]NVARCHAR( )NOT NULL,
[bants]NVARCHAR(255) NULL,
[donvidt]NVARCHAR(255)NULL,
[truong]NVARCHAR(255) NULL,
[khoi]NVARCHAR(255)NULL,
Trang 32[phai] FLOAT NULL,
[ngaysinh]NVARCHAR(255)NULL,
[dantoc]NVARCHAR(255),
[tinh]NVARCHAR(255) NULL,
[huyen]NVARCHAR(255),
[doituong]NVARCHAR(255)NULL,
[nhomut]NVARCHAR(255)NULL,
[namtn]NVARCHAR(255)NULL,
[lop10]NVARCHAR(255) NULL,
[lop11]NVARCHAR(255)NULL,
/*BANG DOI TUONG*/
CREATE TABLE DOITUONG
(
[Doituong]NVARCHAR( ) NOT NULL,
[Ten_doi_tuong]NVARCHAR(200) NULL,
[Nhom_UT]NVARCHAR( ) NULL,
PRIMARY KEY Doituong)
)ON[PRIMARY]
GO
/*BANG KHOI THI*/
CREATE TABLE KHOITHI
(
[Khoi]NVARCHAR( ) NOT NULL,
[Mon_thi_1]NVARCHAR(50) NULL,
[Mon_thi_2]NVARCHAR(50) NULL,
[Mon_thi_3]NVARCHAR(50) NULL,
[Diem_san_dh]NVARCHAR( ) NULL,
[Diem_San_cd]NVARCHAR( ) NULL,
PRIMARY KEY Khoi)
)ON[PRIMARY]
/*BANG KHU VUC*/
CREATE TABLE KHUVUC
(
Trang 33PRIMARY KEY Khuvuc)
)ON[PRIMARY]
/*BANG NGANH*/
CREATE TABLE NGANH
(
[Manganh]NVARCHAR( ) NOT NULL,
[Ten_nganh] NVARCHAR(100) NULL,
[Khoi]NVARCHAR( ) NOT NULL,
[Diemchuan] NVARCHAR( )NOT NULL,
PRIMARY KEY Manganh,Khoi,Diemchuan)
)ON[PRIMARY]
/*BANG DIEM SAN*/
CREATE TABLE DIEMSAN
(
[Khoi]NVARCHAR( ) NOT NULL,
[Diemsan_dh]NVARCHAR( ) NOT NULL,
[Diemsan_cd] NVARCHAR( ) NOT NULL,
PRIMARY KEY Khoi,Diemsan_dh,Diemsan_cd)
)ON[PRIMARY]
/*BANG DIEM CHUAN*/
CREATE TABLE DIEMCHUAN
(
[Khoi]NVARCHAR( ) NOT NULL,
[Manganh]NVARCHAR( ) NOT NULL,
[Diemchuan] NVARCHAR( ) NULL,
PRIMARY KEY Khoi,Manganh)
)ON[PRIMARY]
/*BANG THANH VIEN*/
CREATE TABLE USERS
(
[STT]NVARCHAR( ) NULL,
[Ten_dang_nhap]NVARCHAR(24) NOT NULL,
[Mat_khau] NVARCHAR(24) NULL,
[Vai_tro] NVARCHAR( ) NULL,
PRIMARY KEY(Ten_dang_nhap)
)ON[PRIMARY]
CHƯƠNG IV.Phát triển ứng dụng
IV.1 Bảng dữ liệu hệ thống QL_TUYENSINH
Hình thành các bảng cần tạo trong ứng dụng cần có các bảng với các ràng buộc toàn vẹn sau:
- Bảng BANTS khóa chính Mabants.
- Mabants, Madonvidt, Matruong, Khoi, Manganh, Matinh, Mahuyen, Doituong, Khuvuc là các khóa chính của bảng THISINH1.
- Doituong là khóa chính của bảng DOITUONG.
- Matruong là khóa chính của bảng TRUONGTS.
- Khoi, Diemsan_dh, Diemsan_cd là các khóa chính của bảng DIEMSAN.
- Khối là khóa chính của bảng KHOITHI.
- Manganh, Khoi, Diemchuan là khóa chính của bảng NGANH.
- Madonvidt là khóa chính của bảng DONVIDUDT.
Trang 34- Truongpt, Matinh là khóa chính của bảng TRUONG.
- Matinh là khóa chính của bảng TINH.
- Mahuyen là khóa chính của bảng HUYEN.
- Khuvuc là khóa chính của bảng KHUVUC.
- Ten_dang_nhap là khóa chính của USER.
IV.2 S đ d li u m c v t lý ơ đồ dữ liệu mức vật lý ồ dữ liệu mức vật lý ữ liệu mức vật lý ệu mức vật lý ức vật lý ật lý