Tải bản đầy đủ (.pdf) (93 trang)

Xây dựng chương trình bán vé cho rạp chiếu phim BETA thái nguyênh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.61 MB, 93 trang )

LỜI CẢM ƠN
Đầu tiên, em xin dành lời cảm ơn thầy cô ở trường Đại học công nghệ
thông tin và truyền thông. Đặc biệt, là các thầy cô trong khoa hệ thống thông tin.
Những người đã chỉ lối, dẫn đường cho em trên hành trình đi tìm tri thức, những
người đã hướng dẫn, dạy bảo em tận tình trong quá trình học tại mái trường. Cùng
lời cảm ơn chân thành tới cô giáo TS. Nông Thị Hoa, người đã hướng dẫn và tạo
điều kiện để em hoàn thành đề tài đồ án này.
Do còn hạn chế về kinh nghiệm và kiến thức nên chương trình còn nhiều
thiếu sót cần được bổ xung.Vậy em mong muốn thầy cô và các bạn đóng góp ý
kiến giúp cho đề tài của em ngày càng được hoàn thiện hơn.
Một lần nữa em xin chân thành cảm ơn thầy cô và các bạn !
Thái Nguyên, tháng 06 năm 2016
Sinh viên

Hoàng Văn Mười

1


LỜI CAM ĐOAN
Tôi Hoàng Văn Mười xin cam đoan:
 Đồ án tốt nghiệp là thành quả từ sự nghiên cứu hoàn toàn thực tế trên cơ
sở các số liệu thực tế và được thực hiện theo hướng dẫn của giáo viên hướng dẫn.
 Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng tôi, không
sao chép theo bất cứ đồ án tương tự nào.
 Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài
liệu trong báo cáo và danh mục tài liệu tham khảo.
 Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, tôi xin
hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày 15 tháng 05 năm 2016
Sinh viên


Hoàng Văn Mười

2


LỜI MỞ ĐẦU
Trong thế giới rộng lớn của Internet với hàng tỷ người đang sử dụng hàng ngày,
phần lớn trong số họ thường đọc các thông tin quảng cáo dịch vụ trực tuyến khi lướt web
và đó là cơ hội để doanh nghiệp quảng cáo tiếp thị cho sản phẩm - dịch vụ của mình trực
tuyến trên Internet. Mang phong cách quảng cáo trực tuyến mới mẻ, giao diện bắt mắt,
một website sẽ mang lại những lợi thế sau đây:
1. Hình thức thể hiện
 Hình thức thể hiện bằng banner, tin tức, hình ảnh quảng cáo sản phẩm,
cách làm đó mang lại những lợi ích sau:
 Lượng chương trình quảng cáo hiển thị trên một giao diện website là rất
lớn, mọi chương trình quảng cáo đều có cơ hội tiếp cận với khách hàng.
 Khách hàng vào website với mục đích tìm kiếm thông tin về sản phẩm,
dịch vụ,nên độ sàng lọc khách hàng là rất cao.
 Khách hàng sẽ không phải mệt mỏi vì đọc những trang chữ dài, nên sẽ
thu thập được nhiều thông tin cần thiết hơn cho họ.
2. Đối với khách hàng (Người dùng)
Không mất công phải mòn mỏi tìm kiến thông tin về sản phẩm, tin tức và
dịch vụ mình cần trên mạng, nhất là với nhiều người không thường xuyên tiếp xúc
với máy tính - kỹ năng tìm kiếm trên mạng còn hạn chế thì đây là một môi trường
tuyệt vời cho họ. Xem được nhiều thông tin hơn, dễ dàng hơn trong việc so sánh
các sản phẩm, dịch vụ của các doanh nghiệp trong và ngoài nước để có thể đưa ra
quyết định đúng đắn nhất trước khi sử dụng sản phẩm, dịch vụ.
3. Đối với nhà cung cấp (Công ty, Doanh nghiệp)
 Sàng lọc được khách hàng, không phải tốn chi phí và thời gian cho
những người không có nhu cầu.

 Dễ dàng được khách hàng biết đến hơn so với cách quảng cáo trên các
trang web khách tại Việt Nam.
 Chi phí giảm trong khi hiệu quả tăng cao.
Thái Nguyên, tháng 06 năm 2016
Sinh viên
Hoàng Văn Mười
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1. Lịch sử ngôn ngữ C#

3


Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó
người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai người này điều là
những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả của
Turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm
thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng
môi trường phát triển tích hợp (IDE) cho lập trình client/server.
1.2. Giới thiệu ngôn ngữ lập trình C#.net
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 xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực
thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu
trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện
diện trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những
điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn
ngữ mạnh nhất là C++và Java.
C# được xây dựng và kiến trúc bởi Anders Hejlsberg, người đã viết nên
trình biên dịch Pascal và có nhiều đóng góp cho Delphi cũng như Java.
C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi .NET
Framework . C# do Microsoft đề ra là ngôn ngữ hướng đối tượng rất thuần nhất và

trong sáng, nó hiện thực hầu hết các tính chất tốt của mô hình hướng đối tượng
giống như Java.
C# sẽ được dịch ra mã máy để chạy trên nền .Net, nền này cung cấp rất
nhiều đối tượng mạnh, phong phú và đa dạng để giải quyết nhiều vấn đề phổ biến
trong lập trình.
Ngôn ngữ C# chứa các 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 đây là 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.
C# hỗ trợ giao diện (interface), nó được xem như một cam kết với một lớp
4


cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ có thể
kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong ngôn ngữ
C++, tuy nhiên một lớp có thể thực thi nhiều giao diện.
Ngôn ngữ C# là ngôn ngữ hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụng kiểu
con trỏ của C++ và từ khóa cho dấu ngoặc [] trong toán tử.
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ có ít từ khóa
C# là ngôn ngữ hướng module
C# sẽ trở nên phổ biến
Có 2 kiểu ứng dụng chính trong C#.net: Console application, Window
application
 Console application được thiết kế để chạy các dòng lệnh không hỗ trợ
giao diện cho người sử dụng.
 Window application được thiết kế để chạy trên màn hình nền có hỗ trợ

giao diện cho người sử dụng.
Nền tảng về ngôn ngữ C#
1.3. Lớp, đối tượng và kiểu
Bản chất của lập trình hướng đối tượng là tạo ra các kiểu mới. Một kiểu
biểu diễn một vật gì đó. Giống với các ngôn ngữ lập trình hướng đối tượng khác,
một kiểu trong C# cũng định nghĩa bằng từ khoá class(và được gọi là lớp) còn
thểhiện của lớp được gọi là đối tượng.
Xem Ví dụ1 ta thấy cách khai báo một lớp HelloWorld. Ta thấy ngay là
cách khai báo và nội dung của một lớp hoàn toàn giống với ngôn ngữ Java và C++,
chỉ có khác là cuối khai báo lớp không cần dấu “;”

5


1.3.1. Phương thức (Main)
Các hành vi của một lớp được gọi là các phương thức thành viên (gọi tắt là
phương thức) của lớp đó. Một phương thứclà một hàm(phương thức thành viên
còn gọi là hàm thành viên). Các phương thức định nghĩa những gì mà một lớp có
thể làm. Cách khai báo, nội dung và cách sửdụng các phương thức giống hoàn toàn
với Java và C++. Trong ví dụtrên có một phương thức đặc biệt là phương thức
Main()(như hàm main()trong C++) là phương thức bắt đầu của một ứng dụng C#,
có thể trảvề kiểu voidhay int. Mỗi một chương trình (assembly) có thể có nhiều
phương thức Main nhưng khi đó phải chỉ định phương thức Main() nào sẽ bắt đầu
chương trình.
b) Namespace
- .NET cung cấp một thư viện các class rất đồ sộ, trong đó Console là một
class nhỏ trong thư viện các class này.
- Mỗi class có một tên riêng, vì vậy người lập trình không thể nào nhớ hết
tên các class trong .NET. Để giải quyết vấn đề này là việc tạo ra một namespace,
namespace 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.4. Định danh – biến và toán tử trong C#
1.4.1. Định danh
Định danh là tên mà người lập trình chỉ định cho các kiểu dữ liệu, các
phương thức, biến, hằng, hay đối tượng....
Một định danh phải bắt đầu với một ký tự chữ cái hay dấu gạch dưới, các ký
tự còn lại phải là ký tự chữ cái, chữ số, dấu gạch dưới.
Theo qui ước đặt tên của Microsoft thì đề nghị sử dụng cú pháp lạc đà
(camel notation) bắt đầu bằng ký tự thường để đặt tên cho các biến, với ký tự đầu
tiên là hoa cho cách đặt tên hàm và hầu hết các định danh còn lại

6


Các định danh không được trùng với các từ khoá trong C#

1.4.2. Biến
- Dùng để lưu trữ giá trị mang một kiểu dữ liệu nào đó.
Khai báo biến: Sau khi khai báo biến phải gán giá trị cho biến
<Kiểu_Dữ_Liệu> <tên_biến> [ = <giá_trị> ] ;
Phạm vi hoạt động của biến là vùng đoạn mã mà từ đấy biến có thể được
truy xuất.Trong một phạm vi hoạt động (scope), không thể có hai biến cùng mang
một tên trùng nhau.
1.4.3. Hằng
Một hằng (constant) là một biến nhưng trị không thể thay đổi được suốt thời
gian thi hành chương trình. Đôi lúc ta cũng cần có những giá trị bao giờ cũng bất
biến.
- Hằng được phân làm 3 loại:
+ Giá trị hằng (literal)
+ Biểu tượng hằng (symbolic constants)

+ Kiểu liệt kê (enumerations)
1.4.4. Toán tử
7


a) Toán tử toán học: + , - , * , / , %
b) Toán tử tăng / giảm: += , -= , *= , /= , %=
c) Toán tử tăng / giảm 1 đơn vị: ++ , --d) Toán tử gán: =
e) Toán tử quan hệ: == , != , > , >= , < , <=
f) Toán tử logic: ! , && , ||
g) Toán tử 3 ngôi: (Điều_Kiện) ? (Biểu_Thức_1) : (Biểu_Thức_2) ;
1.5. Kiểu dữ liệu – Cấu trúc điều kiện – Cấu trúc lặp
1.5.1. Kiểu dữ liệu và xây dựng sẵn
Ngôn ngữ C# đưa ra các kiểu dữ liệu xây dựng sẵn rất hữu dụng, phù hợp
với một ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu được ánh xạ đến một kiểu dữ
liệu được hỗ trợ bởi hệ thống xác nhận ngôn ngữ chung (Common Language
Specification: CLS) trong MS.NET. Việc ánh xạ các kiểu dữ liệu nguyên thuỷ của
C# đến các kiểu dữ liệu của .NET sẽ đảm bảo các đối tượng được tạo ra trong C#
có thể được sử dụng đồng thời với các đối tượng được tạo bởi bất cứ ngôn ngữ
khác được biên dịch bởi .NET, như VB.NET.
Bảng sau sẽ mô tả một số các kiểu dữ liệu được xây dựng sẵn
C# hỗ trợ 8 kiểu dữ liệu số nguyên sau:
Name

CTS Type

Sbyte

System.SByte


Short

System.Int16

Int

System.Int32

Long

System.Int64

Byte

System.Byte

Description
8-bit
integer

Range (min:max)

signed
-128:127 (-27:27-1)

16-bit signed
-32,768:32,767 (-215:215-1)
integer
32-bit signed-2,147,483,648:2,147,483,647
(-231:231-1)


integer

64-bit signed-9,223,372,036,854,775,808:
9,223,372,036,854,775,807 (-263:263-1)

integer
8-bit
integer

signed
0:255 (0:28-1)

8


Ushort

System.UInt16

16-bit signed
0:65,535 (0:216-1)
integer

Uint

System.UInt32

32-bit signed
0:4,294,967,295 (0:232-1)

integer

Ulong

System.UInt64

64-bit signed
0:18,446,744,073,709,551,615(0:264-1)
integer

Kiểu dữ liệu số dấu chấm di động (Floating Point Types)
Name

CTS Type

Description

Significant

Range

Figures

(approximate)

32-bit singleFloat

System.Single

precision


7

floating- point
64-bit doubleDouble

System.Double

precision

15/16

floating- point

±1.5 × 10-45 to ±
3.4 × 1038

±5.0 × 10-324 to
±1.7 × 10308

Quá trình chuyểu đổi kiểu (Type Conversions)
Bảng sau hiển thị cách chuyển đổi kiểu implicit được hỗ trợ trong C#.
From

To

Sbyte

short, int, long, float, double, decimal


Byte

short, ushort, int, uint, long, ulong, float, double, decimal

Short

int, long, float, double, decimal

Ushort

int, uint, long, ulong, float, double, decimal

Int
Uint
long, ulong

long, float, double, decimal
long, ulong, float, double, decimal
float, double, decimal
9


Float

Double

Char

ushort, int, uint, long, ulong, float, double, decimal


10


* Bảng trình bày các ký tự đặc biệt
Kiểu C#

Số

Kiểu

byte

.NET

Mô tả

Byte

1

Byte

Số nguyên dương không dấu từ 0 đến 255

Char

2

Char


Ký tự Unicode

Bool

1

Boolean

Giá trị logic true / false

sbyte

1

Sbyte

Số nguyên có dấu từ -128 đến 127

short

2

Int16

Số nguyên có dấu từ -32768 đến 32767

ushort

2


Uint16

Số nguyên dương không dấu từ 0 đến 65535

int

4

Int32

Số nguyên có dấu từ -2.147.483.647 đến
2.147.483.647

uint

4

Uint32

Số

nguyên

không

dấu

từ

0


đến

4.294.967.295
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 15, 16 chữ số có nghĩa

decimal

8

Decimal

Có độ chính xác đến 28 con số và giá trị thập
phân, được dùng trong tính toán tài
chính, kiểu này đòi hỏi phải có hậu tố “m”
hay “M”

long

8

Int64


Kiểu số nguyên có dấu có giá trị trong
khoảng

-9.223.370.036.854.775.808

đến

9.223.372.036.854.775.807
ulong

8

Uint46

Số

nguyên

0xfffffffffffffff

11

không

dấu

từ

0


đến


1.5.2 Mảng (Arrays)
Array là một cấu trúc dữ liệu cấu tạo bởi một số biến được gọi là những
phần tử mảng. Tất cả các phần tử này đều thuộc một kiểu dữ liệu. Bạn có thể truy
xuất phần tử thông qua chỉ số (index). Chỉ số bắt đầu bằng zero.
Có nhiều loại mảng (array): mảng một chiều, mảng nhiều chiều.
Cú pháp :
type[ ] array-name;
thí dụ:
int[] myIntegers; // mảng kiểu số nguyên
string[]mystring; // mảng kiểu chuỗi chữ

Mảng nhiều chiều (Multidimensional Arrays in C#)
Cú pháp :
Type[,] array-name;
Thí dụ muốn khai báo một mảng hai chiều gồm hai hàng ba cột với phần tử
kiểu nguyên :
Int[,] myRectArray = new int[2,3];
Bạn có thể khởi gán mảng xem các ví dụ sau về mảng nhiều chiều:
Int[,] myRectArray = new int[,]{ {1,2},{3,4},{5,6},{7,8}};// mảng 4 hàng 2
cột
1.5.3. Xử lý chuỗi
Lớp đối tượng String C# xem những chuỗi như là những kiểu dữ liệu cơ
bản tức là các lớp này rất linh hoạt, mạnh mẽ, và nhất là dễ sử dụng. Mỗi đối tượng
chuỗi là một dãy cố định các ký tự Unicode.
1.6. Lớp và đối tượng
Trong C# tất cả các biến đều là đối tượng. Mỗi một đối tượng đều có các

biến thành viên để lưu trữ dữ liệu cho các phương thức(hàm) để tác động lên biến
12


thành viên. Mỗi đối tượng thuộc về một lớp đối tượng nào đó. Các đối tượng có
cùng lớp thì có cùng các biến thành viên và phương thức.

13


 Lớp
Kiểu dữ liệu trong C# được định nghĩa là một lớp (class).
Người lập trình tạo ra các kiểu dữ liệu mới bằng cách xây dựng các lớp đối
tượng. Một lớp có thể chứa sự kết nối của các dữ liệu (fields), các hoạt động được
thực hiện trên dữ liệu (method) và sự truy nhập tới dữ liệu (properties)
Cú pháp:
[Thuộc tính] [Bổ từ truy xuất] class <Định danh lớp> [: Lớp cơ sở]
{
thân lớp
}
 Đối tượng
Để khai báo một đối tượng của lớp ta dùng từ khóa new và khai báo nó theo
cấu trúc sau:
<tên lớp> <tên đối tượng> = new <tên lớp> ([các giá trị khởi tạo nếu
có])
Để truy nhập đến một phương thức ta thông qua tên biến đối tượng và toán
tử chấm “.”:
<tên đối tượng>. <tên phương thức> ([danh sách các đối số nếu có])
Đối với các lớp lồng nhau, để truy cập đến những thuộc tính và phương
thức của class lồng thì khi khai báo cần chỉ ra lớp chứa đựng nó. Muốn sử dụng

biến của lớp chứa thì các biến của lớp dùng để chứa phải khai báo là static và phải
khai báo đối tượng chứa nó.
1.6.1. Hàm hủy bỏ (destructor)
Dùng để giải phóng vùng nhớ đã cấp phát cho đối tượng khi mà đối tuợng
không còn được tham chiếu đến. Hàm hủy bỏ là một hàm không có giá trị trả về có
tên trùng tên với class và có thêm kí tự “~”ở trước. Muốn khai báo một destructor
chúng ta khai báo nó với cú pháp như sau:
14


class className{
public ~className() {
Tuy nhiên, trong ngôn ngữ C# thì cú pháp khai báo trên là một shortcut liên
kết đến một phương thức kết thúc Finalize được kết với lớp cơ sở, do vậy khi viết
~ classname()
{
// Thực hiện một số công việc
}
Và viết :
class1.Finalize()
{
// Thực hiện một số công việc
base.Finalize();
}
Thì hai cách viết như thế này sẽ được C# hiểu là như nhau.
1.6.2. Sử dụng các thành viên tĩnh static:
Thành viên tĩnh không thể hiện gì cho lớp về cả thuộc tính và phương thức
mà nó như là một thành phần của lớp.
 Sử dụng phương thức tĩnh:
Một phương thức static có phạm vi hoạt động giống như một phương thức

toàn cục mà không cần tạo ra bất cứ một thể hiện nào của lớp cả. Toàn cục ở đây
hiểu theo nghĩa là toàn cục trong lớp.
Gọi một phương thức static:
Về bản chất thành phần static là một thành phần của lớp không thể hiện trả
về vì vậy không có một tham chiếu this. Một hàm static không thể trực tiếp truy
xuất đến các thành viên không static mà phải thông qua một đối tượng thể hiện của
lớp đó như sau:
Tenlop.tenhamtinh ([danh sach tham so neu co]:
15


Ví dụ diem.hien() là lời gọi đến phương thúc tĩnh có tên là hien() của lớp
diem
 Sử dụng các phương thức khởi tạo static:
Trong khai báo một static constructor không có từ khóa truy cập. Phương
thức tĩnh chỉ có thể truy nhập đến thành phần dữ liệu cũng có tính chất tĩnh mà
thôi. Nếu trong khai báo lớp có một hàm static constructor thì hàm này sẽ được gọi
trước khi bất cứ một thể hiện nào của lớp được tạo ra.
Việc sử dụng hàm khởi tạo static cần được cân nhắc kỹ lưỡng vì chúng ta
không thể theo dõi nó được như trong C++ vì thế thường gây ra những hậu quả
khó lường.
- Khởi tạo private constructor:
Việc sử dụng một hàm khởi tạo private trong lớp sẽ có tác dụng ngăn chặn
tạo ra bất kì một đối tượng nào của lớp. Hàm khởi tạo private này mặc nhiên,
không có tham số gì cả và trống rỗng. Khi đó trong lớp sẽ không có hàm khởi tạo
public nên sẽ không khởi tạo được bất cứ một thành viên thể hiện nào.
Ví dụ không muốn tạo ra bất kì một đối tượng nào của lớp diem thì trong
khi định nghĩa lớp ta sẽ định nghĩa thêm một hàm khởi tạo tầm vực là private như
sau:
private diem ()

{
// không làm gì cả
}
 Sử dụng các thuộc tính tĩnh:
Trong C# không hề có một biến nào có phạm vi hoạt động toàn cục như
trong một số ngôn ngữ lập trình khác ( pascal, C, C++, Visual Basic …) việc sử
dụng một biến với mục đích “toàn cục” trở nên là một điều không thể. Biến toàn
cục trong các ngôn ngữ khác được hiểu là toàn cục trong ứng dụng nhưng đối với
C# thì toàn cục theo nghĩa hiểu của nó là toàn cục trong một lớp và không có khái
16


niệm toàn cục trong toàn bộ chương trình. Nếu ta khai báo một biến thành viên
tĩnh của lớp thì biến thành viên tĩnh này có tầm vực hoạt động theo ý nghĩa toàn
cục đó. Các biến thành viên tĩnh có hoạt động tích cực trong vai trò này.

17


 Lớp tĩnh:
Một lớp có thể được xây dựng là một lớp tĩnh và chỉ chứa các thành phần
tĩnh mà thôi và nó không cho phép tạo thể hiện của lớp bằng việc sử dụng từ khóa
new. Lớp static thường được tải tự động trong Net.Framework khi chương trình
hoặc namespace chứa lớp được tải lên.Việc tạo một static class giống với việc tạo
ra một lớp mà chỉ chứa một private constructor. Như vậy là có thể kiểm tra chắc
chắn và đảm bảo những thành viên của lớp này không thể được tạo ra.
1.6.3. Nạp chồng phương thức
Chồng phương thức là việc tạo ra nhiều phương thức trùng tên với nhau
nhưng nhận các tham số khác nhau hay trả về dữ liệu khác nhau. Việc phân biệt
các hàm này dựa vào dấu ấn:

+ Khác nhau các tham số: khác nhau về số lượng tham số
+ Khác nhau về kiểu dữ liệu của tham số, kiểu dữ liệu trả về của phương
thức.
1.7. Cấu trúc chương trình C#
C# là một ngôn ngữ phân biệt chữ hoa và chữ thường.
Dấu ; được dùng để kết thúc câu lệnh.
Tất cả các khai báo và câu lệnh thực hiện đều được đặt trong một file với
phần mở rộng là cs.
1.7.1 Cấu trúc điều khiển
Câu lệnh điều kiện if :
Câu lệnh phân nhánh if...else dựa trên một điều kiện. Điều kiện là một biểu
thức sẽ được kiểm tra giá trị ngay khi bắt đầu gặp câu lệnh đó. Nếu điều kiện được
kiểm tra là đúng, thì câu lệnh hay một khối các câu lệnh bên trong thân của câu
lệnh if được thực hiện.
Trong câu điều kiện if...else thì else là phần tùy chọn. Các câu lệnh bên
trong thân của else chỉ được thực hiện khi điều kiện của if là sai. Do vậy khi câu
18


lệnh đầy đủ if...else được dùng thì chỉ có một trong hai if hoặc else được thực hiện

19


Cú pháp như sau:
If(condition)
Statement(s)
[else
Startemant(s)]
Câu lệnh switch:

Các câu lệnh if nằm lồng rất khó đọc, khó gỡ rối. Khi bạn có một loạt lựa
chọn phức tạp thì nên sử dụng câu lệnh switch.
Cú pháp như sau:
switch (biểu thức)
{ casce biểu thức ràng buộc:
câu lệnh
câu lệnh nhảy
[default: câu lệnh mặc định]
}
1.7.2. Lệnh lặp (Loops):
C# cung cấp cho chúng ta 4 vòng lặp khác nhau (for, while, do...while, và
foreach)
cho phép chúng ta thực hiện một đoạn mã lặp lại đến khi đúng điều kiện
lặp.
Lệnh for
Cú pháp:
for (initializer;condition;iterator)
statement(s)
while (The while Loop)
Cú pháp như sau :
while(condition)
20


statement(s);
Thí dụ :
bool condition = false;
while (!condition)
{
// Vòng lặp thực hiện đến khi điều kiện đúng

DoSomeWork();
condition = CheckCondition(); // cho rằng CheckCondition() trả về kiểu
bool
}
Lệnh do . . . while (The do…while Loop)
bool condition;
do
{
// Vòng lặp này sẽ thực hiện ít nhất một lần thậm chí nếu câu điều kiện sai
MustBeCalledAtLeastOnce();
condition = CheckCondition();
} while (condition);
Vòng lặp foreach (The foreach Loop)
Cho phép bạn rảo qua tất cả các phần tử bản dãy hoặc các tập hợp khác, và
tuần tự xem xét từng phần tử một
Ngoài ra C# còn sử dụng các câu lệnh điều khiển như: goto, break,
return,… Chúng có tác dụng nhảy ra khỏi hàm hay thoát khỏi các vòng lặp.
1.8. Mảng – Chuỗi – Ngoại lệ
1.8.1 Array (mảng)
* Mảng 1 chiều
a) Định nghĩa
- Mảng là một tập hợp có thứ tự của những đối tượng (objects), tất cả các
21


đối tượng này có cùng một kiểu dữ liệu.
- Mảng trong ngôn ngữ C# sử dụng những phương thức và các thuộc tính.
Thể hiện của mảng trong C# có thể truy cập những phương thức và các thuộc tính
của System.Array.
b) Khai báo mảng:

<kiểu dữ liệu>[] <tên mảng> ;
* Mảng nhiều chiều
a) Định nghĩa
- Mảng đa chiều là mảng mà mỗi thành phần là một mảng khác.
- Ngôn ngữ C# hỗ trợ hai kiểu mảng đa chiều là:
+ Mảng đa chiều cùng kích thước.
+ Mảng đa chiều khác kích thước.
- Trong phạm vi bài học này, ta chỉ khảo sát mảng 2 chiều mà thôi.
b) Khai báo mảng 2 chiều
<kiểu dữ liệu>[ , ] <tên mảng>
Ví dụ:
int[ , ] myRectangularArray ;
1.8.2. String (Chuỗi)
Lớp đối tượng String C# xem những chuỗi như là những kiểu dữ liệu cơ
bản tức là các lớp này rất linh hoạt, mạnh mẽ, và nhất là dễ sử dụng. Mỗi đối tượng
chuỗi là một dãy cố định các ký tự Unicode.
1.8.3 Exception (Ngoại lệ)
a) Khái niệm
- Exception có thể được hiểu là bắt giữ lỗi với những đoạn mã hợp lệ để
không tổn hại đến chương trình.
- Lỗi có thể do nguyên nhân từ chính người sử dụng; hoặc có thể do những
vấn đề không mong đợi khác như: thiếu bộ nhớ, thiếu tài nguyên hệ thống ….
1.9. Giới thiệu ngôn ngữ lập trình ASP.NET (MVC – EntityFramework)
22


1.9.1 MVC
MVC là viết tắt của Model – View – Controller. Là một kiến trúc phần
mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nói cho dễ
hiểu, nó là mô hình phân bố source code thành 3 phần, mỗi thành phần có một

nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Các thành phần trong MVC:
Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng xử
lý các chức năng cụ thể của yêu cầu.
Model: Đây là thành phần chứa tất cả đối tượng của ứng dụng.
View: Hiển thị nội dung, tương tác với người dùng, chứa toàn bộ các
control giao diện
1.9.2 Entity Framework (EF)
Entity Framework là một bộ ánh xạ đối tượng – quan hệ cho phép người lập
trình .NET làm việc với dữ liệu quan hệ qua các đối tượng (object) nó giúp lập
trình viên không cần viết câu truy vấn cho (hầu hết) những gì liên quan đến xử lý
dữ liệu.
Các thành phần trong Entity Framework:
- Code là mã lệnh tạo thành các lớp đối tượng dữ liệu cho phép thao tác với
dữ liệu.
- Model là sơ đồ gồm các hộp mô tả các thực thể và các đường nối kết mô
tả các quan hệ.
- Database là cơ sở dữ liệu (có thể là SQL Server, Compact SQL Server,
Local database, MySQL, Oracle,…)
Các hình thức sử dụng EF

23


- Database first: là phương pháp chỉ nên dùng khi ta đã có sẵn CSDL
(không phải tạo), EF Wizard sẽ tạo Model và Code cho ta.
- Models first: nên dùng khi ta bắt đầu thiết kế CSDL từ đầu (từ chưa có gì).
Ta sẽ thiết kế mô hình CSDL (Model) EF sẽ tự tạo code cho ta, sau đó nhờ EF
Wizard tạo CSDL.
- Code first: nên dùng khi đã có mô hình CSDL, ta sẽ chỉ viết code từ đó tạo

Database.
Môi trường phát triển
 Visual studio 2013
Link: )
Cài đặt VS trên Windows 8.1/ Win 10
Tập tin sau khi tải về có định dạng .iso, đây là định dạng của tập tin ghi trên
đĩa CD/DVD.
Từ phiên bản Windows 8 trở đi, ta đã có thể Mount trực tiếp tập tin .iso vào
ổ đĩa ảo để cài đặt mà không cần phần mềm hỗ trợ, nếu đang sử dụng những phiên
24


bản Windows cũ hơn, độc giả có thể sử dụng Winrar để giải nén như bình thường
hoặc sử dụng Ultra ISO để mount vào ổ đĩa ảo và cài đặt.
Click phải chuột lên tập tin vừa tải về, chọn Mount hoặc Extract (Winrar).

Về cơ bản, tập tin .iso vừa được đọc có nội dung như sau (Mount và Extract
đều có nội dung như nhau):

25


×