You are on page 1of 71

Lp trnh Windows Cn Bn GV: Nguyn B Phc

BI GING
LP TRINH WINDOWS CN BAN
Gio vin: Nguyn Ba Phuc

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Mc lc

Chng 1: GII THIU V C# ................................................................................................... 4


1.1. Lm quen vi chng trnh Visual Studio 2005 ............................................................... 4
1.1.1. Khi ng Visual Studio 2005 .................................................................................... 4
1.1.2. Thot khi Visual Studio 2005 ................................................................................... 5
1.1.3. To mi Project ........................................................................................................... 6
1.1.4. Lu Project/Solution ................................................................................................... 9
1.1.5. M Project/Solution .................................................................................................... 9
1.1.6. Chy chng trnh ..................................................................................................... 11
1.2. Lm quen vi ngn ng C# ............................................................................................. 11
1.2.1. Gii thi u ................................................................................................................... 11
1.2.2. Cc lnh c bn trong C# .......................................................................................... 11
1.2.3 Cc php ton ............................................................................................................. 12
1.2.4. Cc kiu d liu......................................................................................................... 13
1.2.5. Cu trc r nhnh ...................................................................................................... 13
1.2.6. Cu trc lp ............................................................................................................... 14
1.2.7. Cc v d mu ............................................................................................................ 15
1.3. Cc bi tp p dng ......................................................................................................... 17
Chng 2: CAC CONTROL C BAN ...................................................................................... 18
2.1. Gii thi u v l p trin h trn Windows Form .................................................................... 18
2.1.1. Gii thi u ................................................................................................................... 18
2.1.2. To Project Windows Application ............................................................................ 18
2.1.3. Solution Explorer ...................................................................................................... 19
2.1.4. Properties (thu c tin h) ............................................................................................... 20
2.1.5. Xem ma ngu n cua Form .......................................................................................... 20
2.2. Cc control c bn ........................................................................................................... 22
2.2.1. Thanh cng cu Toolbox ............................................................................................ 22
2.2.2. Label .......................................................................................................................... 23
2.2.3. TextBox ..................................................................................................................... 24
2.2.4. Button ........................................................................................................................ 26
2.2.5. GroupBox .................................................................................................................. 29
2.2.6. DateTimePicker ......................................................................................................... 30
2.2.7. MonthCalendar .......................................................................................................... 32
2.3. Hi n thi thng i p MessageBox .................................................................................... 33
2.4. V d ................................................................................................................................ 34
2.5. Bi tp.............................................................................................................................. 41
Chng 3: CU TRC IU KHIN R NHANH ................................................................ 42
3.1. Cc cu trc iu khin r nhnh .................................................................................... 42
3.1.1. Cu trc if .................................................................................................................. 42
3.1.2. Cu trc ifelse ................................................................................................... 46
3.1.3. Cu trc switchcase ............................................................................................... 50
3.2. Bi tp.............................................................................................................................. 52
Chng 4: CU TRC IU KHIN LP ............................................................................. 53
4.1. Cc cu trc iu khin lp ............................................................................................. 53
4.1.1. Cu trc for................................................................................................................ 53
4.1.2. Cu trc while ........................................................................................................... 54
4.1.3. Cu trc dowhile ................................................................................................... 54
4.2. Bi tp.............................................................................................................................. 57
2

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 5: HM ........................................................................................................................... 58
5.1. Hm ................................................................................................................................. 58
5.1.1. Gii thiu ................................................................................................................... 58
5.1.2. V d .......................................................................................................................... 58
5.2. Bi tp.............................................................................................................................. 61
Chng 6: MANG MT CHIU ............................................................................................... 62
6.1. Mng mt chiu ............................................................................................................... 62
6.1.1. Khai bo .................................................................................................................... 62
6.1.2. Nhp mng trong Console ......................................................................................... 62
6.1.3. Xut mng trong Console.......................................................................................... 62
6.1.4. Tnh tng cc phn t dng .................................................................................... 63
6.1.5. Hm Main .................................................................................................................. 63
6.2. Bi tp.............................................................................................................................. 63
Chng 7: CAC CONTROL NNG CAO ................................................................................ 64
7.1. Cc control nng cao ....................................................................................................... 64
7.1.1. MenuStrip .................................................................................................................. 64
7.1.2. ComboBox ................................................................................................................ 65
7.1.3. TreeView ................................................................................................................... 67
7.1.4. ListView .................................................................................................................... 69
7.2. Bi tp.............................................................................................................................. 70

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 1: GII THIU V C#


1.1. Lm quen vi chng trnh Visual Studio 2005
1.1.1. Khi ng Visual Studio 2005
- Vo menu Start -> Programs -> Microsoft Visual Studio 2005 -> Microsoft Visual Studio 2005
- Giao din Visual Studio 2005 c dng nh sau:

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.2. Thot khi Visual Studio 2005


Trn menu bar, Click chut chn File -> Exit. Hoc nhn t hp phm Alt+F4

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.3. To mi Project
Trn menu bar, click chut chn File -> New->Project ho c nh n t h p phim Ctrl+Shift+N

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.3.1. To Project vi kiu ng dng Console

Sau khi to xong project s c giao din nh sau:

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.3.2. To Project vi kiu ng dng Windows Application

Sau khi ta o Project Application giao di n se nh sau:

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.4. Lu Project/Solution
Trn menu bar, click chut chn File -> Save All. Hoc nhn t h p phm Ctrl+Shift+S.

1.1.5. M Project/Solution
Trn menu bar, click chut chn File -> Open -> Project/Solution. Hoc nhn t h p phm
Ctrl+Shift+O.

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Hp thoi (dialog) Open Project xut hin. Chn tn tp tin Project cn m. Sau click chut
vo nt Open m Project.

10

Lp trnh Windows Cn Bn GV: Nguyn B Phc

1.1.6. Chy chng trnh


chy chng ta thc hin nh sau:
Trn menu bar, click chut chn Debug -> Start Debugging. Hoc nhn phm F5

N u chng trinh co li thi Visual Studio 2005 s xut hin thng bo v li


Ng c la i, chng trin h se c bin dich
va thc thi.
1.2. Lm quen vi ngn ng C#
1.2.1. Gii thiu
- C# l ngn ng l p trin h do Microsoft cng b vao thang 7 nm 2000
- Lm vic trn nn tng .NET
- C# c cc c trng ging C/C++, Java
1.2.2. Cc lnh c bn trong C#
- Trong chng trnh trong C# l mt tp gm nhiu lnh.
* K hiu bt u
{

* K hiu kt thc
}

* Lnh nhp trong mi trng Console


Console.ReadLine()
11

Lp trnh Windows Cn Bn GV: Nguyn B Phc

* Lnh xut trong mi trng Console


Console.WriteLine()

* Lnh gn
=

Lu :
+ Ngn ng C# phn bit ch hoa thng
+ Tt c cc lnh trong ngn ng C# u kt thc bng du chm phy (;)
+ Cu trc ca mt chng trnh da ng ng
using ....
namespace ...
{
class ...
{
static void Main(string[] args)
{
...
...
}
}
}

1.2.3 Cc php ton


STT

PHP TOAN

Cng

Tr

Nhn

12

DIN GIAI

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chia

Ly phn d (mod)

1.2.4. Cc kiu d liu


STT

TN KIU D LIU

T KHA

S nguyn

S thc

float

Chui

String

S nguyn di

int

long

V D
int n;
n = 5
float d;
d = 8.5;
string s;
s = abc;
long t;
t = 52;
bool a;

Lun l (ng/sai)

bool

a = true;
bool b;
b = false;

1.2.5. Cu trc r nhnh


* Dng 1:
if (biu_thc_iu_kin)
{
lnh_1;

lnh_N;
}

* Dng 2:
if (biu_thc_iu_kin)

13

Lp trnh Windows Cn Bn GV: Nguyn B Phc

{
khi_lnh_1;
}
else
{
khi_lnh_2;
}

* Dng 3:
switch (biu_thc_chn)
{
case
Gi_tr_1:
Lnh_1;
Lnh_2;
...
break;
case
Gi_tr_2:
Lnh_1;
Lnh_2;
...
break;
............
default:
Lnh_1;
Lnh_2;
...
break;
}

1.2.6. Cu trc lp
* Dng 1:
for (biu thc 1; biu thc 2; biu thc 3)
{
Lnh_1;
Lnh_2;

14

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Lnh_n;
}

* Dng 2:
while (<iu_kin_lp>)
{
Lnh_1;
Lnh_2;

Lnh_n;
}

* Dng 3:
do
{
Lnh_1;
Lnh_2;

Lnh_n;
} while (<iu_kin_lp>);

1.2.7. Cc v d mu
V d 1: Vit chng trnh xut ln mn hnh dng ch:
Chao mung ban den voi C#

15

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng trnh:
using System;
using System.Collections.Generic;
using System.Text;
namespace Vidu1
{
class Program
{
static void Main(string[] args)
{
//xuat thong bao
Console.WriteLine("Chao mung ban den voi C#");
//dung man hinh xem ket qua
Console.ReadLine();
}
}
}

V d 2: Vit chng trnh nhp vo s nguyn n. Sau xut s nguyn n ln mn hnh.


Chng trnh:
using System;
using System.Collections.Generic;
using System.Text;
namespace Vidu1
{
class Program
{
static void Main(string[] args)
{
//khai bao bien
int n;
string s;
//Nhap chuoi s
Console.WriteLine("Nhap so nguyen n:");
s = Console.ReadLine();
//chuyen tu chuoi s sang so nguyen n
n = int.Parse(s);
//xuat ket qua so nguyen n
Console.WriteLine("Ket qua: {0}", n);
//dung man hinh xem ket qua
Console.ReadLine();
}
}
}

16

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d 3: Vit chng trnh nhp vo 2 s nguyn a v b. Hy tnh tng a + b, sau xut


kt qu ln mn hnh.
Chng trnh
using System;
using System.Collections.Generic;
using System.Text;
namespace Vidu1
{
class Program
{
static void Main(string[] args)
{
//khai bao bien
int a;
int b;
int tong;
string s;
//Nhap so nguyen a
Console.WriteLine("Nhap so nguyen a:");
s = Console.ReadLine();
a = int.Parse(s);
//Nhap so nguyen b
Console.WriteLine("Nhap so nguyen b:");
s = Console.ReadLine();
b = int.Parse(s);
//tinh tong
tong = a + b;
//xuat tong
Console.WriteLine("Tong: {0}", tong);
//dung man hinh xem ket qua
Console.ReadLine();
}
}
}

1.3. Cc bi tp p dng
Lm cc bi tp t 1.1 -> 1.31 trong ti liu bi tp Lp trnh Windows Cn Bn

17

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 2: CAC CONTROL C BAN


2.1. Gii thi u v l p trin
h trn Windows Form
2.1.1. Gii thiu
- ng dng trn Windows Form:
+ Ph bi n, thng du ng
+ C tnh chuyn nghi p cao
+ Ngi dung tng tac vi giao di n cua ng du ng thng qua cac Control (i u
khi n).
2.1.2. To Project Windows Application
- Trong Microsoft Visual Studio 2005, vo menu File->New->Project
- Sau o, chn loi ng dng mu la Windows Application

18

Lp trnh Windows Cn Bn GV: Nguyn B Phc

- Sau khi ta o Project Application giao di n se nh sau:

Form
2.1.3. Solution Explorer
- Solution Explorer cho bi t t t ca cac project ang c m va cac t p tin trong Project . T
Solution Explorer ta c th d dng truy xut n bt c thnh phn trong Project .
- m Solution Explorer trong Visual Studio 2005 ta vao menu View->Solution
Explorer

19

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.1.4. Properties (thu c tinh)


- Cho phep xem thu c tin h cua cac Control (i u khi n) trn Windows Form.
V d: Label, TextBox, Button,
- m thanh Properties, trn Windows Form cho n Control c n xem thu c tinh va click
phi chut chn Propeties.

2.1.5. Xem ma ngu n cua Form


- xem ma ngu n cua Form, trn Solution Explorer, chn Form cn xem ma ngun v
click phai chu t cho n View Code.

20

Lp trnh Windows Cn Bn GV: Nguyn B Phc

- Ma ngun ca Form nh sau:

21

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2. Cc control c ban


2.2.1. Thanh cng cu Toolbox
- Thanh cng cu Toolbox hi n thi danh sach t t ca cac Control (i u khi n) dung gn ln
Windows Form.
- Trong Visual Studio 2005, hin thi Toolbox vo menu View->Toolbox

22

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.2. Label
- Control (i u khi n) Label cho phep hi n thi m t vn ban ho c hin
h anh ma khng cho
php chinh sa. Label thng dung nh n di n cac i t ng trn Form.
- S du ng: trn Toolbox cho n control co tn la Label. Sau o nh p va keo tha chu t vao
Window Form.
- Thu c tin h (Properties) quan tro ng:
+ Text: n i dung vn ban c n hi n thi ln Label

23

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.3. TextBox
- Control (i u khi n) TextBox thng dung nh p ho c hi n thi m t chui vn ban (text).
- S du ng: trn Toolbox cho n control co tn la TextBox . Sau o nh p va keo tha chu t vao
Window Form.
- Thu c tin h (Properties) quan tro ng:
+ Name: dung inh danh cho TextBox, c dung lam tn bi n .
+ Text: n i dung vn ban c n hi n thi ln TextBox.

24

Lp trnh Windows Cn Bn GV: Nguyn B Phc

25

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.4. Button
- Control (i u khi n ) Button cho phep ngi dung nh p chu t thc hi n m t m nh l nh.
Button thng hi n thi chu
i vn ban hay hin

h anh.
- S du ng: trn Toolbox cho n control co tn la Button. Sau o nh p va keo tha chu t vao
Window Form.
- Thu c tinh (Properties) quan tro ng:
+ Name: dung inh danh cho Button, c dung lam tn bi n .
+ Text: n i dung vn ban c n hi n thi ln Button.

26

Lp trnh Windows Cn Bn GV: Nguyn B Phc

27

Lp trnh Windows Cn Bn GV: Nguyn B Phc

* S kin khi click chu t trai vao Button


- Khi click chu t trai vao nut Button thi se thc thi m t mnh lnh no .
- b t s ki n khi click chu t trai thi trong Properties chn the Events v nhp tn hm
trong mu c Click

Ma ngun chng trnh nh sau:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Vidu2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Click(object sender, EventArgs e)
{
//vi
t ca
c l
nh xlykhi th
c hi
n click chu
t tra
i va
o Button

}
}
}

28

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.5. GroupBox
- GroupBox thng dung chia Windows Form thanh nhom cac chc nng .
- S du ng: trn Toolbox cho n control co tn la GroupBox. Sau o nh p va keo tha chu t
vo Window Form.
- Thu c tinh (Properties) quan tro ng:
+ Text: n i dung vn ban c n hi n thi ln GroupBox

29

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.6. DateTimePicker
- DateTimePicker cho phep ngi dung cho n ngay gi t danh sach co s n.
- S du ng: trn Toolbox cho n control co tn la DateTimePicker. Sau o nh p va keo tha
chu t vao Window Form.
- Thu c tin h (Properties) quan tro ng:
+ Name: dung inh danh cho DateTimePicker, c dung lam tn bi n .

30

Lp trnh Windows Cn Bn GV: Nguyn B Phc

31

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.2.7. MonthCalendar
- MonthCalendar cho phep ngi dung xem va cai t thng tin v ngay .
- S du ng: trn Toolbox cho n control co tn la MonthCalendar. Sau o nh p va keo tha
chu t vao Window Form.
- Thu c tin h (Properties) quan trng:
+ Name: dung inh danh cho MonthCalendar, c dung lam tn bi n .

32

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.3. Hi n thi thng i p MessageBox


hi n thi thng i p (thng bao) ln man hin
h, s du ng ham sau:
MessageBox.Show

V d:
Hi n thi thng bao Chao mung ban den voi C#
MessageBox.Show ("Chao mung ban den voi C#");

Hi n thi thng bao Chao mung ban den voi C# co tiu THONG BAO
MessageBox.Show ("Chao mung ban den voi C#", "THONG BAO");

33

Lp trnh Windows Cn Bn GV: Nguyn B Phc

2.4. Vi d
V d 1: Vi t chng trin h da ng Windows Application hi n thi trn
Form dong ch nh sau :

Hello world

Ti n hanh thi t k Form, s du ng control Label.


t thuc tnh (Properties):
+ Text: Hello world

34

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Sau o bin dich


va cha y chng trin h, vo menu Debug-> Start Debugging HOC nh n phim

F5.
V d 2: Vi t chng trinh da ng Windows Application, khi click chu t vao nut Hien Thi xu t
hi n thng bao:
Nhap mon Lap trinh Windows Can Ban

35

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Ti n hanh thi t k Form, s du ng control Button.


t thuc tnh (Properties):
+ Text: Hien Thi
+ Name: btnHienThi

B t s ki n click chu t trai vao nut Hien Thi. Trong Properties chn the Events v nhp
tn ham trong mu c Click l btnHienThi_Click

36

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Ma ngun chng trnh:


using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Text;
System.Windows.Forms;

namespace Chuong2_VD2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnHienThi_Click(object sender, EventArgs e)
{
MessageBox.Show("Nhap mon Lap trinh Windows Can Ban");
}
}
}

37

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Sau o bin dich


va cha y chng trinh, vo menu Debug-> Start Debugging HOC nh n phim
F5.
V d 3: Vi t chng trinh nh p vo 2 s nguyn a , b. Sau o , nh p chu t trai vao nut Tong
xu t hi n thng bao k t qua t ng.

Ti n hanh thi t k Form g m cac control: Label, TextBox, GroupBox, Button.

38

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Name: txt_a
Name: txt_b

Name: btnTong
Text: Tong
Click:btnTong_Click

S ki n click chu t vao nut Tong


private void btnTong_Click(object sender, EventArgs e)
{
int a;
int b;
a = int.Parse(txt_a.Text);
b = int.Parse(txt_b.Text);
int tong = a + b;
//hien thi thong bao ket qua
MessageBox.Show(tong.ToString());
}

Sau o bin dich


va cha y chng trin h, vo menu Debug-> Start Debugging HOC nh n phim

F5.

39

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d 4: Vi t chng trin h nh p vo 2 s nguyn a, b. Sau o, nh p chu t trai vao nut Tong thi
gi tri tng c t TextBox kt qu.

Tng t nh Vi du 3, ti n hanh thi t k Form:

Name: txt_a
Name: txt_b

Name: txt_kq

Name: btnTong
Text: Tong
Click:btnTong_Click

40

Lp trnh Windows Cn Bn GV: Nguyn B Phc

S ki n click chu t vao nut Tong


private void btnTong_Click(object sender, EventArgs e)
{
int a;
int b;
a = int.Parse(txt_a.Text);
b = int.Parse(txt_b.Text);
int tong = a + b;
//hien thi ket qua len TextBox ketqua
txt_kq.Text = tong.ToString();
}

2.5. Bi tp
Lm cc bi tp t 2.1 -> 2.13 trong tai li u bai t p L p trin
h Windows Cn Ban

41

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 3: CU TRC IU KHIN R NHANH


3.1. Cc cu trc iu khin r nhnh
3.1.1. Cu trc if
C php tng t nh trong ngn ng lp trnh C
C php:
if (biu_thc_iu_kin)
{
lnh_1;

lnh_N;
}

Nu biu_thc_iu_kin ng (khc 0) th chng trnh s thc hin khi lnh


(lnh_1;;lnh_N).
Nu biu_thc_iu_kin

sai (bng 0) th chng trnh s b qua

(lnh_1;;lnh_N).

* Ton t so snh
Ton T

Ngha

<

Nh hn

>

Ln hn

==

Bng

<=

Nh hn hoc bng

>=

Ln hn hoc bng

!=

Khc nhau

* Ton t logic
42

khi lnh

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Ton T

Ngha

Php ph inh

&&

||

Hoc

V d 1: Vit chng trnh nhp vo s nguyn n (khc 0). Hay cho bit n l s nguyn m hay
nguyn dng.
Console Application:
using System;
using System.Collections.Generic;
using System.Text;
namespace CauTrucIf
{
class Program
{
static void Main(string[] args)
{
int n;
string s;
//nhap so nguyen n
Console.WriteLine ("Nhap so nguyen n (khac 0):");
s = Console.ReadLine();
n = int.Parse(s);
//kiem tra n la nguyen duong hay nguyen am
if (n > 0)
Console.WriteLine("n la so nguyen duong");
if (n < 0)
Console.WriteLine("n la so nguyen am");
//dung man hinh va xem ket qua
Console.ReadLine();
}
}
}

43

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Windows Application:
Name: txt_n

Name: btn_KiemTra
Text: Kiem Tra
Click: btn_KiemTra_Click

private void btn_KiemTra_Click(object sender, EventArgs e)


{
int n;
string s;
//lay gia tri so nguyen n
s = txt_n.Text;
n = int.Parse(s);
//kiem tra n la nguyen duong hay nguyen am
if (n > 0)
MessageBox.Show("n la so nguyen duong");
if (n < 0)
MessageBox.Show("n la so nguyen am");
}

V d 2: Vit chng trnh nhp vo s nguyn dng n. Hay cho bit n chn hay le.
44

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Console Application:
using System;
using System.Collections.Generic;
using System.Text;
namespace ViDu2
{
class Program
{
static void Main(string[] args)
{
int n;
string s;
//nhap so nguyen duong n
Console.WriteLine("Nhap so nguyen duong n:");
s = Console.ReadLine();
n = int.Parse(s);
if (n % 2 == 0) //n chan
Console.WriteLine("n la so chan");
if (n % 2 == 1) //n le
Console.WriteLine("n la so le");
//dung man hinh va xem ket qua
Console.ReadLine();
}
}
}

45

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d 3: Vit chng trnh gii phng trnh bc nht ax+b = 0

Thut gii:
- Nhp a, b
- Nu a = 0 th
+ Nu b = 0 th phng trnh v s nghim
+ Nu b 0 th phng trnh v nghim
- Nu a 0 th phng trnh c nghim duy nht: x = -b/a

3.1.2. Cu trc ifelse


C php tng t nh trong ngn ng lp trnh C
C php:
if (biu_thc_iu_kin)
{
khi_lnh_1;
}
else
{
khi_lnh_2;
}

Nu biu_thc_iu_kin ng (khc 0) th chng trnh s thc hin


khi_lnh_1.

Nu biu_thc_iu_kin sai
khi_lnh_2.

46

(bng 0) th chng trnh s thc hin

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d 4: Vit chng trnh nhp vo s nguyn n (khc 0). Hay cho bit n l s nguyn m hay
nguyn dng.

Console Application:

using System;
using System.Collections.Generic;
using System.Text;
namespace CauTrucIf
{
class Program
{
static void Main(string[] args)
{
int n;
string s;
//nhap so nguyen n
Console.WriteLine ("Nhap so nguyen n (khac 0):");
s = Console.ReadLine();
n = int.Parse(s);
//kiem tra n la nguyen duong hay nguyen am
if (n > 0)
Console.WriteLine("n la so nguyen duong");

else
Console.WriteLine("n la so nguyen am");
//dung man hinh va xem ket qua
Console.ReadLine();
}
}
}

47

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Windows Application:
Name: txt_n

Name: btn_KiemTra
Text: Kiem Tra
Click: btn_KiemTra_Click

private void btn_KiemTra_Click(object sender, EventArgs e)


{
int n;
string s;
//lay gia tri so nguyen n
s = txt_n.Text;
n = int.Parse(s);
//kiem tra n la nguyen duong hay nguyen am
if (n > 0)
MessageBox.Show("n la so nguyen duong");

else
MessageBox.Show("n la so nguyen am");
}

V d 5: Vit chng trnh nhp vo s nguyn dng n. Hay cho bit n chn hay le.
48

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Console Application:
using System;
using System.Collections.Generic;
using System.Text;
namespace ViDu2
{
class Program
{
static void Main(string[] args)
{
int n;
string s;
//nhap so nguyen duong n
Console.WriteLine("Nhap so nguyen duong n:");
s = Console.ReadLine();
n = int.Parse(s);
if (n % 2 == 0) //n chan
Console.WriteLine("n la so chan");

else

//n le

Console.WriteLine("n la so le");
//dung man hinh va xem ket qua
Console.ReadLine();
}
}
}

49

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d 6: Vit chng trnh gii phng trnh bc nht ax+b = 0

Thut gii:

- Nhp a, b
- Nu a = 0 th
+ Nu b = 0 th phng trnh v s nghim
+ Ngc li th phng trnh v nghim
- Ngc li th phng trnh c nghim duy nht: x = -b/a

3.1.3. Cu trc switchcase


C php tng t nh trong ngn ng lp trnh C
C php:
switch (biu_thc_chn)
{
case
Gi_tr_1:
Lnh_1;
Lnh_2;
...
break;
case
Gi_tr_2:
Lnh_1;
Lnh_2;
...
break;
............
default:
Lnh_1;
Lnh_2;
...
break;
}

Biu_thc_chn trong cu trc iu khin switch s c tnh ton, c lng v so


snh vi cc gi tri tng ng vi cc mnh case.
50

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Nu gi tri ca biu thc bng Gi_Tr_i th khi lnh ca mnh case i c thc
hin.
Nu gi tri ca biu thc khng bng vi bt k Gi_Tr_i no trong cc mnh case
th khi lnh tng ng vi t kho default c thc hin.
Mi khi lnh ca mi mnh case thng c kt thc bi mt cu lnh break.
Vic thc hin khi lnh sau khi so snh gi tri ca biu thc bng Gi_Tr_i nh sau:
thc hin tt c nhng lnh ngay sau mnh case ca Gi_Tr_i trn cho n khi gp
t kho break.

V d 7: Nhp vo thng ca mt nm. Cho bit thng thuc mua no trong nm.
Console Application:
using System;
using System.Collections.Generic;
using System.Text;
namespace CauTrucSwitchCase
{
class Program
{
static void Main(string[] args)
{
int thang;
string s;
//nhap thang
Console.WriteLine("Nhap thang: ");
s = Console.ReadLine();
thang = int.Parse(s);
switch (thang)
{
case 1:
case 2:
case 3:
Console.WriteLine("Mua xuan");
break;
case 4:
case 5:
case 6:
Console.WriteLine("Mua ha");
break;
case 7:
case 8:
case 9:

51

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Console.WriteLine("Mua thu");
break;
case 10:
case 11:
case 12:
Console.WriteLine("Mua dong");
break;
}
//dung man hinh va xem ket qua
Console.ReadLine();
}
}
}

3.2. Bi tp
Lm v d 2, 3, 5, 6, 7 trn Windows Application
Lm cc bi tp t 3.1 -> 3.8 trong tai li u bai t p L p trinh Windows Cn Ban

52

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 4: CU TRC IU KHIN LP


4.1. Cc cu trc iu khin lp
4.1.1. Cu trc for
C php ca for tng t nh trong ngn ng lp trnh C
C php:
for (biu thc 1; biu thc 2; biu thc 3)
{
Lnh_1;
Lnh_2;

Lnh_n;
}

Cu trc iu kin lp for gm 3 biu thc v phn lnh ca cu trc iu khin ny.
ngha thng thng ca cc biu thc trn:
Biu thc 1: thng dung khi to bin m ca vng lp. Biu thc ny c th c
hoc khng c cng c.
Biu thc 2: c dung kim tra iu kin ca vng lp. Biu thc ny bt buc phi
c (nu b qua biu thc ny ta phi dung n vi t kha break)
Biu thc 3: thng dung iu khin bin m ca vng lp. Biu thc ny c th c
hoc khng c cng c.
Hot ng ca cu trc iu khin lp for:
Bc 1: Tnh gi tri ca biu thc 1.
Bc 2: Tnh gi tri ca biu thc 2.
Bc 3: Tuy thuc vo gi tri ca biu thc 2, chng trnh s thc thi mt trong hai nhnh:
Bc 3.1: Nu biu thc 2 c gi tri 0 (sai), chng trnh s thot khi lnh for v chuyn
ti cu lnh sau khi lnh ca for.
Bc 3.2: Nu biu thc 2 c gi tri khc 0 (ng) chng trnh s thc hin cc cu lnh
trong khi lnh for.
Bc 4: Tnh gi tri biu thc 3 ri quay li bc 2 bt u mt vng lp mi.
53

Lp trnh Windows Cn Bn GV: Nguyn B Phc

4.1.2. Cu trc while


C php ca while tng t nh trong ngn ng lp trnh C
C php:
while (<iu_kin_lp>)
{
Lnh_1;
Lnh_2;

Lnh_n;
}

- Cc lnh bn trong khi lnh ca vng lp while s c thc hin t nht mt ln


- iu kin lp ca vng lp while thng c cp nht sau mi ln thc hin khi lnh hay c
mt bin c no thun li xy ra.
4.1.3. Cu trc dowhile
C php ca dowhile tng t nh trong ngn ng lp trnh C
C php:
do
{
Lnh_1;
Lnh_2;

Lnh_n;
} while (<iu_kin_lp>);

Hot ng ca cu trc iu khin lp do..while:


Bc 1: Thc hin cc cu lnh trong khi lnh lp dowhile
Bc 2: Khi gp n cui lnh lp dowhile, chng trnh s xc inh gi tri ca
<iu_kin_lp> sau t kho while.

Bc 3: Chng trnh s thc thi mt trong 2 nhnh sau tu theo gi tri ca biu thc va nhn
c.
Bc 3.1: Nu biu thc c gi tri ng (khc 0), chng trnh s quay tr li Bc 1
tip tc thc hin vng lp mi.
54

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Bc 3.2: Nu biu thc c gi tri sai (bng 0), chng trnh s ra khi chu trnh v chuyn
ti cu lnh ng sau du chm phy t cui ton t dowhile.
Lu :
+ im khc bit ca cu trc lp while v dowhile:
- Trong cu trc lp while iu kin lp c kim tra trc khi thc hin khi lnh trong vng
lp.
- Trong cu trc lp dowhile iu kin lp c kim tra sau khi khi lnh trong vng lp c
thc hin xong. Nh vy trong cu trc lp dowhile khi lnh trong vng lp s c thc hin
t nht mt ln.

V d: Vit chng trnh nhp vo s nguyn dng n. Hay tnh


S=1+2+3++n
a) S dng cu trc for
b) S dng cu trc while
c) S dng cu trc dowhile
Name: txt_n
Name: txt_S

Name: btn_Tinh
Text: Tinh
Click: btn_Tinh_Click

55

Lp trnh Windows Cn Bn GV: Nguyn B Phc

a)
private void btn_Tinh_Click(object sender, EventArgs e)
{
int n;
float S;
n = int.Parse(txt_n.Text);
S = 0;
for (int i = 1; i <= n; i = i + 1)
{
S = S + i;
}
txt_S.Text = S.ToString();
}
b)
private void btn_Tinh_Click(object sender, EventArgs e)
{
int n;
float S;
n = int.Parse(txt_n.Text);
S = 0;
i = 1;
while (i <= n)
{
S = S + i;
i = i + 1;
}
txt_S.Text = S.ToString();
}
c)
private void btn_Tinh_Click(object sender, EventArgs e)
{
int n;
float S;
n = int.Parse(txt_n.Text);
if (n > 0)
{
S = 0;
i = 1;

56

Lp trnh Windows Cn Bn GV: Nguyn B Phc

do
{
S = S + i;
i = i + 1;
} while (i <= n);
txt_S.Text = S.ToString();
}
}
}

4.2. Bi tp
Lm cc bi tp t 4.1 -> 4.14 trong tai li u bai t p L p trinh Windows Cn Ban

57

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 5: HM
5.1. Hm
5.1.1. Gii thiu
Tt c cc thao tc ny u nm trong duy nht mt hm. Do chng ta gp kh khn
trong vic qun l, sa li v nng cp ma ngun chng trnh khi s lng dng lnh trong mt
hm ln. Vy c cch no c th gii quyt c vn trn khng?
S dng k thut hm gii quyt vn ny. Hn na, khi s dng k thut hm c th
n gin ha vic vit chng trnh v trnh lp i lp li cc cng vic ging nhau.
Khi nim n gin nht ca hm l: hm l mt s chia nh ca chng trnh.
5.1.2. V d
Vit chng trnh nhp vo 2 s nguyn a v b. Hay tnh tng 2 s .
a) Xy dng ng trn Console
b) Xy dng ng dng trn Windows Form.
Gii
a) Xy dng ng trn Console

using System;
using System.Collections.Generic;
using System.Text;
namespace VD_HamConsole
{
class Program
{
//ref: giong & trong C
//gia tri bien a va b se thay doi sau khi goi ham Nhap
static void Nhap(ref int a, ref int b)
{
string s;
Console.Write("Nhap a: ");
s = Console.ReadLine();
a = int.Parse(s);
Console.Write("Nhap b: ");
s = Console.ReadLine();
b = int.Parse(s);
}

58

Lp trnh Windows Cn Bn GV: Nguyn B Phc

static int TinhGiaTriTong(int a, int b)


{
int tong;
tong = a + b;
return tong;
}
static void XuatKetQua(int tong)
{
Console.WriteLine(tong.ToString());
}
static void Main(string[] args)
{
int a, b;
int tong;
a = 0;
b = 0;
Nhap(ref a, ref b);
tong = TinhGiaTriTong(a, b);
XuatKetQua(tong);
}
}
}

b) Xy dng ng dng trn Windows Form


Name: txt_n
Name: txt_S

Name: btn_TinhTong
Text: Tinh Tong
Click: btn_TinhTong_Click

59

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Ma ngun:
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Text;
System.Windows.Forms;

namespace ViDu_Ham
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//ref: giong & trong C
//gia tri bien a va b se thay doi sau khi goi ham Nhap
void Nhap(ref int a, ref int b)
{
a = int.Parse(txt_a.Text);
b = int.Parse(txt_b.Text);
}
int TinhGiaTriTong(int a, int b)
{
int tong;
tong = a + b;
return tong;
}
void XuatKetQua(int tong)
{
MessageBox.Show(tong.ToString());
}
private void btn_TinhTong_Click(object sender, EventArgs e)
{
int a, b;
int tong;
a = 0;
b = 0;
Nhap(ref a, ref b);
tong = TinhGiaTriTong(a, b);
XuatKetQua(tong);
}
}
}

60

Lp trnh Windows Cn Bn GV: Nguyn B Phc

5.2. Bi tp
Lm cc bi tp t 5.1 -> 5.4 trong tai li u bai t p L p trin
h Windows Cn Ban

61

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 6: MANG MT CHIU


6.1. Mang mt chiu
6.1.1. Khai bo
Mng mt chiu cc s nguyn a c ti a 50 phn t
int []a = new int[50];

Mng mt chiu cc s thc b c ti a 100 phn t


float []b = new float[100];

6.1.2. Nhp mng trong Console


static public void NhapMang(int []a, ref int n)
{
string s;
Console.WriteLine("Nhap so nguyen n:");
s = Console.ReadLine();
n = int.Parse(s);
for (int i = 0; i < n; i++)
{
Console.WriteLine("Nhap a[{0}]:",i.ToString());
s = Console.ReadLine();
a[i] = int.Parse(s);
}
}

6.1.3. Xut mng trong Console

static public void XuatMang(int []a, int n)


{
string s;
for (int i = 0; i < n; i++)
{
s = a[i].ToString();
Console.WriteLine(s);
}
}

62

Lp trnh Windows Cn Bn GV: Nguyn B Phc

6.1.4. Tnh tng cc phn t dng


static public int TinhTong(int []a, int n)
{
int S;
S = 0;
for (int i = 0; i < n; i++)
{
if (a[i] > 0)
S = S + a[i];
}
return S;
}

6.1.5. Hm Main

static void Main(string[] args)


{
//khai bao bien
int[] a = new int[50];
int n;
string s;
int tongduong;
n = 0;
NhapMang(a, ref n);
XuatMang(a, n);
//tinh tong
tongduong = TinhTong(a, n);
//xuat ket qua tong
s = tongduong.ToString();
Console.Write(s);
//dung man hinh va xem ket qua
Console.ReadLine();
}

6.2. Bi tp
Lm cc bi tp t 6.1 -> 6.17 trong tai li u bai t p Lp trnh Windows Cn Bn
63

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Chng 7: CAC CONTROL NNG CAO


7.1. Cc control nng cao
7.1.1. MenuStrip
MenuStrip control dung hin thi cc lnh cng nh gom nhm cc chc nng.
Thuc tnh quan trng:
+ Text
+ Name
S kin: Click
V d:

64

Lp trnh Windows Cn Bn GV: Nguyn B Phc

7.1.2. ComboBox

65

Lp trnh Windows Cn Bn GV: Nguyn B Phc

V d:

Ma ngun:
66

Lp trnh Windows Cn Bn GV: Nguyn B Phc

private void btn_ThemDSSV_Click(object sender, EventArgs e)


{
cb_DanhSachSV.Items.Add("Nguyen van A");
cb_DanhSachSV.Items.Add("Ly thi C");
cb_DanhSachSV.Items.Add("Duong Van D");
}
private void btn_XoaDSSV_Click(object sender, EventArgs e)
{
//xoa toan bo danh sach
cb_DanhSachSV.Items.Clear();
}
private void btn_HienThiDS_Click(object sender, EventArgs e)
{
string s;
s = cb_DanhSachSV.SelectedItem.ToString();
MessageBox.Show(s);
}

7.1.3. TreeView

V d:

67

Lp trnh Windows Cn Bn GV: Nguyn B Phc

M ngun:
private void btn_ThemDSSV_Click(object sender, EventArgs e)
{
tv_DanhSachSV.Nodes.Add("Nguyen van A");
tv_DanhSachSV.Nodes[0].Nodes.Add("Ngay sinh: 01/01/1990");
tv_DanhSachSV.Nodes[0].Nodes.Add("Noi sinh: TP HCM");
tv_DanhSachSV.Nodes.Add("Ly thi C");
tv_DanhSachSV.Nodes[1].Nodes.Add("Ngay sinh: 02/03/1989");
tv_DanhSachSV.Nodes[1].Nodes.Add("Noi sinh: Ben tre");
tv_DanhSachSV.Nodes.Add("Duong Van D");
}
private void btn_XoaDSSV_Click(object sender, EventArgs e)
{
//xoa danh sach
tv_DanhSachSV.Nodes.Clear();
}

68

Lp trnh Windows Cn Bn GV: Nguyn B Phc

7.1.4. ListView

V d:

69

Lp trnh Windows Cn Bn GV: Nguyn B Phc

Ma ngun:
private void btn_TaoDSSV_Click(object sender, EventArgs e)
{
//thay doi cach xem ListView
lv_DanhSachSV.View = View.List;
//tao checkbox
lv_DanhSachSV.CheckBoxes = true;
//them danh sach
lv_DanhSachSV.Items.Add("Nguyen Van A");
lv_DanhSachSV.Items.Add("Ly thi C");
lv_DanhSachSV.Items.Add("Duong van D");
}
private void btn_XoaDSSV_Click(object sender, EventArgs e)
{
//xoa toan bo danh sach tren ListView
lv_DanhSachSV.Items.Clear();
}
private void btn_HienThiDS_Click(object sender, EventArgs e)
{
foreach (ListViewItem lvItem in lv_DanhSachSV.Items)
{
MessageBox.Show(lvItem.Text);
}
}

7.2. Bi tp
Lm cc bi tp chng 7 trong tai li u bai t p L p trin
h Windows Cn Ban

70

Lp trnh Windows Cn Bn GV: Nguyn B Phc

TI LIU THAM KHAO


1. Bi tp K thut lp trnh (t p 1) - Nguyn T n Tr n Minh Khang
2. Professional C# 2005 - byChristian Nagelet al.
3. Microsoft Visual CS 2005 Step by Step - MS Press
4. Programming Microsoft Windows with C# - Charles Petzold

71

You might also like