Professional Documents
Culture Documents
HCM
227 Nguyn Vn C - Qun 5- Tp.H Ch Minh
Tel: 8351056 Fax 8324466 Email: ttth@hcmuns.edu.vn
M ti liu: DT_NCM_HP2_BT_LTHDTC#
Phin bn 4.1 Thng 07/ 2013
BI TP
CHNG TRNH
K THUT VIN
NGNH LP TRNH
Hc phn 2
---
NN TNG V LP
TRNH HNG I
TNG VI C# 4.0
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
BI 1: Tng quan
Thc hnh mt s thao tc c bn trong mi trng C# v ng dng dng Windows
Application.
S dng cc iu khin c bn trn Form
1.1. Lm quen mi trng pht trin ng dng
Mc tiu:
To Project, t chc cy th mc
S dng cc i tng trong ng dng Windows Application
Thc hin cc thao tc: to, thm, xo cc i tng
Thc thi mt ng dng
Yu cu:
To mt ng dng dng Windows Forms Application c tn Bai_ Tap lu ti th mc lm vic
Ln lt to cc th mc dng lu tr bi tp (hnh 1)
Thc hin thm v xa mt i tng trong ng dng (Trn ca s Solution Explorer, nhn chut
phi trn Project chn Add thm mt i tng, nhn chut phi trn i tng cn xa v
chn Delete)
Thc thi ng dng (nhn phm F5 hoc nhn nt Start Debugging)
Hnh 1: T chc th mc trong Project
1.2. Xy dng mn hnh xut cu cho
Mc tiu:
S dng ba thnh phn chnh ca mt chng trnh (Input, Process, Output)
Yu cu:
Xy dng Form c tn MH_Cau_chao lu ti th mc Bai_01 (hnh 2)
Nhp vo h tn ca bn
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
Xut ra mn hnh cu cho Cho bn <H tn> , chc mng bn n vi Ngn ng lp
trnh C# 4.0
Hnh 2: mn hnh in cu cho
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
BI 2: Kiu d liu v bin
S dng kiu d liu trong C#, ng dng cc kiu d liu khai bo bin.
p dng cc k thut chuyn kiu d liu trong C#
S dng cc ton t trong C#
S dng kiu gi tr
Mc tiu:
S dng cc kiu d liu loi gi tr, k thut chuyn i kiu d liu v s dng cc ton t
2.1. Tnh chu vi v din tch hnh trn
Mc tiu: S dng cc phng thc v thuc tnh ca lp Math
Yu cu: Xy dng chng trnh tnh din tch v chu vi hnh trn, gm cc chc nng:
Nhp vo bn knh ca hnh trn: kiu s thc double
Xut ra din tch v chu vi ca hnh trn: kiu s thc double
Hng dn
Xy dng mn hnh c giao din nh sau:
iu khin Thuc tnh S kin X l
Label Text: T NH CHU VI, DI N TCH HNH TRN
Label Text: Bn knh
Label Text: Chu vi
Label Text: Din tch
TextBox Name: txtban_kinh
TextBox Name: txtchu_vi
ReadOnly: true
TextBox Name: txtdien_tich
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
ReadOnly: true
Button Name: btntinh
Text: Tnh
Click
Button Name: btnlam_lai
Text: Lm li
Click
X l s kin Click ca Button Tnh
private void btntinh_Click(object sender, EventArgs e)
{
double ban_kinh=double.Parse(txtban_kinh.Text);
double chu_vi=Math.PI*2*ban_kinh;
double dien_tich=Math.PI*ban_kinh*ban_kinh;
txtchu_vi.Text = Math.Round(chu_vi,2).ToString();
txtdien_tich.Text = Math.Round(dien_tich,2).ToString();
}
X l s kin Click ca Button Lm li
private void btnlam_lai_Click(object sender, EventArgs e)
{
txtban_kinh.Text=;
txtchu_vi.Text=;
txtdien_tich.Text=;
}
2.2. Tnh chu vi v din tch hnh ch nht (Bi v nh)
Yu cu: Xy dng chng trnh tnh chu vi v din tch hnh ch nht, gm cc chc nng:
Nhp vo chiu di vo chiu rng ca hnh ch nht: kiu s thc double
Xut ra din tch v chu vi ca hnh ch nht: kiu s thc double
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
2.3. Tnh chu vi v din tch tam gic
Yu cu 1
Nhp vo chiu di 3 cnh ca hnh tam gic: kiu s thc double
Tnh v xut chu vi, din tch ca hnh tam gic: kiu s thc double
Yu cu 2
Nhp vo chiu di 3 cnh ca hnh tam gic: kiu s nguyn int
Tnh v xut chu vi, din tch ca hnh tam gic: kiu s thc double
Yu cu 3
Nhp vo chiu di 3 cnh ca hnh tam gic: kiu s nguyn int
Tnh v xut chu vi, din tch ca hnh tam gic: kiu s thc float
2.4. Tnh s nt ca 1 s nguyn (Bi v nh)
Mc tiu: S dng ton t %
Yu cu:
Nhp vo 1 s nguyn n c 4 ch s
Tnh v xut ra s nt ca s nguyn n
V d: n = 1234 s nt = 0
n = 2023 s nt = 7
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
S dng kiu tham chiu
Mc tiu: S dng cc kiu d liu loi tham chiu
2.5. Tch chui h tn
Mc tiu:
- S dng kiu string vi cc phng thc v thuc tnh ca kiu ny
- ng dng vo bi ton thc t
Yu cu:
- Nhp vo 1 chui h tn
- Tch chui v xut ra phn h, phn lt, phn tn ca chui h tn.
2.6. S dng kiu tham chiu
Mc tiu: S dng kiu tham chiu StringBuilder
Yu cu:
- Nhp vo 2 gi tr t 2 TextBox, sau cp nht 2 gi tr ny vo 2 bin c kiu
StringBuilder
- Tip theo, gn bin 1 bng bin 2, sau cp nht gi tr ca mt trong 2 bin, xut kt qu
ca bin cn li ra mn hnh
- Giao din Form nh sau:
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
Hng dn:
- Khai bo 2 bin kiu StringBuilder dng chung trong Form
StringBuilder strb1;
StringBuilder strb2;
- X l s kin Load ca Form
strb1 = new StringBuilder("Hoa Lan");
strb2 = new StringBuilder("Hoa Hng");
txtMot.Text = strb1.ToString();
txtHai.Text = strb2.ToString();
- X l s kin Click ca Button Gn bng
strb1 = strb2;
txtMot.Text = strb1.ToString();
txtHai.Text = strb2.ToString();
- X l s kin Click ca Button Cp nht vo bin 1
strb1.Remove(0, strb1.Length);
strb1.Append(txtMot.Text);
//xut xem bin 2
txtHai.Text = strb2.ToString();
// Quan st gi tr ca 2 bin v nhn xt
- X l s kin Click ca Button Cp nht vo bin 2
strb2.Remove(0, strb2.Length);
strb2.Append(txtHai.Text);
//xut xem bin 1
txtMot.Text = strb1.ToString();
// Quan st gi tr ca 2 bin v nhn xt
- X l s kin Click ca Button Lm li
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
strb1 = new StringBuilder("Hoa Lan");
strb2 = new StringBuilder("Hoa Hng");
txtMot.Text = strb1.ToString();
txtHai.Text = strb2.ToString();
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
BI 3: Cu trc iu khin
S dng cc cu trc iu khin, cch by li v x l li trong C#.
3.1. Xp loi hc tp
Mc tiu: S dng cu trc IF
Yu cu:
- Nhp vo im hc k I, im hc k 2
- Tnh im trung bnh, theo cng thc: im trung bnh = (im HKI + im HKII*2)/3
- Tnh Xp loi hc tp, theo quy tc sau:
o im trung bnh <5: yu
o 5 <= im trung bnh <6.5: trung bnh
o 6.5 <= im trung bnh < 8: kh
o im trung bnh >=8: gii
Hng dn:
- Xy dng mn hnh c giao din sau:
- X l s kin Click ca Button ng
private void btndong_y_Click(object sender, EventArgs e){
float diem_hki=float.Parse(txtdiem_hki.Text);
float diem_hk2=float.Parse(txtdiem_hki.Text);
float dtb=(diem_hki+diem_hkii*2)/3;
dtb=(float)Math.Round(dtb,2);
string xep_loai=;
if (dtb<5)
xep_loai=Yu;
else if (dtb<6.5)
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
xep_loai=Trung bnh;
else if (dtb<8)
xep_loai=Kh;
else
xep_loai=Gii;
txtxep_loai.Text=xep_loai;
}
- X l s kin Click ca Button Lm li
private void btndong_y_Click(object sender, EventArgs e){
txtdiem_hki.Text=;
txtdiem_hkii.Text=;
txtxep_loai.Text=;
}
3.2. Tm ngy trc, ngy sau ca mt ngy
Mc tiu: S dng cu trc if v cc phng thc ca lp DateTime
Yu cu:
- Nhp vo ngy thng (DateTime) cn tm ngy trc v ngy sau
- Tnh v xut ra ngy trc, ngy sau ca ngy va nhp vi giao din sau:
- V d: Ngy hin ti: 01/01/2009 Ngy trc = 31/12/2008, ngy sau= 02/01/2009
3.3. Tnh tin in (bi v nh)
Mc tiu: S dng cu trc IF
Yu cu:
- Nhp vo ch s u, ch s cui ca in k
- Tnh v xut tin in phi tr da vo lng in nng tiu th (tnh bng KW) theo quy tc sau
(c tnh ly tin):
KW Gi tin
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
0 < KW <=100 500
100 < KW <=250 600
250 < KW <=300 800
KW > 300 1.000
3.4. Tnh nm m lnh
Mc tiu: S dng cu trc switch
Yu cu:
- Nhp vo nm dng lch (Nam_duong)
- Tnh v xut ra nm m lch ng vi nm dng lch c nhp vo vi quy c tnh nm m lch:
Nm m lch c tnh d vo CAN + CHI trong CAN v CHI c tnh theo quy tc sau:
Nam_duong % 10 0 1 2 3 4 5 6 7 8 9
CAN Canh Tn Nhm Qu Gip t Bnh inh Mu K
Nam_duong % 12 0 1 2 3 4 5 6 7 8 9 10 11
CHI Thn Du Tut Hi T S Dn Mo Thn T Ng Mi
- V d: nm dng lch: 2009 nm m lch: K su
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
3.5. Tnh s ngy trong thng
Mc tiu: S dng cu trc switch
Yu cu:
- Nhp vo thng v nm dng lch cn tm s ngy
- Tnh v xut ra s ngy ca thng nm
3.6. Tnh ngy ca m, ngy ca cha (Bi v nh)
Mc tiu: S dng cu trc switch v cc thuc tnh, phng thc ca kiu DateTime
Yu cu:
- Nhp vo nm dng lch
- Xut ra mn hnh ngy ca m v ngy ca cha trong nm, bit rng:
o Ngy ca m l ngy ch nht th 2 ca thng 5
o Ngy ca cha l ngy ch nht th 3 ca thng 6 hng nm.
- Mn hnh gi :
3.7. I n bng cu chng ca mt s
Mc tiu: S dng cu trc for
Yu cu:
- Nhp vo mt s nguyn
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
- In bng ca chng ca s nguyn
- Giao din Form nh sau:
Hng dn:
- X l s kin Click ca nt In bng cu chng:
int cc = int.Parse(txtSo.Text);
StringBuilder strb = new StringBuilder();
for (int i = 1; i <= 10; i++)
{
strb.AppendLine(cc.ToString("00") + " x " + i.ToString("00") + " = " + ((int)(cc *
i)).ToString("00") );
}
lblBang.Text = strb.ToString();
3.8. I n bng cu chng t s n s
Mc tiu: S dng cu trc for
Yu cu:
- Nhp vo T s v n s
- X l v xut Bng cu chng c dng sau:
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
3.9. Tnh li sut ngn hng (Bi v nh)
Mc tiu: s dng cu trc for
Yu cu:
- Nhp vo s tin gi, li sut ngn hng (tnh theo nm) v s thng gi
- Tnh v xut S d cui k v tin li cui k, bit rng:
o Li sut thng = (Li sut nm / 12) /100
o Tin li thng = Tin gc * Li sut thng
o Tin li mi thng s c gp chung vo tin gc
o Tin li cui k s c tnh ly tin t tin li mi thng + tin gc
V d: Nu bn gi 10 triu vi li sut 12%/nm v gi trong 6 thng, th tin li cui k c tnh
nh sau:
o Li sut thng = (12/12)/100 0.01
Thng Tin gc + Li Tin li thng
1 10,000,000 100,000
2 10,100,000 101,000
3 10,201,000 102,010
4 10,303,010 103,030.1
5 10,406,040.1 104,060.401
6 10,510,100.5 105,101.005
S d cui k = 10,615,201.51
Tin li cui k = 615,201.51
- Mn hnh gi :
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
3.10. Thc hin li cc bi 3.8, 3.9 v 3.10 bng cch dng vng lp while,
do..while (Bi v nh)
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
BI 4: Kiu struct v kiu Array
Xy dng v s dng kiu d liu do ngi dng nh ngha (struct).
Khai bo v s dng mng trong C#
4.1. To v s dng kiu Nhan_vien
Mc tiu: To v s dng kiu cu trc (struct)
Yu cu:
- To kiu Nhan_vien, vi cc thnh phn: h tn, Ngy sinh, h s lng, lng c bn v s
con
o Xy dng hm khi to cc thnh phn trn
o Xy dng phng thc tnh tin lng, vi:
Tin lng = Lng c bn + ( S con * 100000)
o Xy dng phng thc xut thng tin nhn vin ra mn hnh c dng:
Nguyn Thanh Thy 32 tui S con: 2 Tin lng: 2500000
- Nhp thng tin nhn vin v xut ra mn hnh
Hng dn:
- To cu trc Nhan_vien vi cc thnh phn c khai bo Public
+ H tn nhn vin: string
+ Ngy sinh: DateTime
+ Lng c bn: double
+ H s lng: double
+ S con: int (cho php cha gi tr NULL)
struct Nhan_vien
{
public string ho_ten;
public DateTime ngay_sinh;
public double he_so_luong;
public double luong_co_ban;
public int? so_con;
}
- Xy dng phng thc khi to cho cu trc Nhan_vien
public Nhan_vien(string pHo_ten, DateTime pNgay_sinh, double
pLuong_co_ban, double pHe_so_luong, int? pSo_con)
{
ho_ten = pHo_ten;
ngay_sinh = pNgay_sinh;
he_so_luong = pHe_so_luong;
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
luong_co_ban = pLuong_co_ban;
so_con = pSo_con;
}
- Xy dng phng thc tnh tin lng cho nhn vin:
public double Tinh_luong()
{
double tienluong = luong_co_ban * he_so_luong;
tienluong += so_con.HasValue ? so_con.Value * 100000 : 0;
return tienluong;
}
- Xy dng phng thc ToString hin th thng tin ca nhn vin:
public new string ToString()
{
int tuoi = DateTime.Now.Year - ngay_sinh.Year;
return string.Format("{0} - {1} tui S con: {2} Tin lng: {3}",
ho_ten, tuoi, so_con.HasValue ? so_con.Value : 0, Tinh_luong());
}
- Xy dng mn hnh c giao din sau:
- X l s kin Click ca Button ng
private void btndong_y_Click(object sender, EventArgs e) {
Nhan_vien nv;
nv.ho_ten = txtho_ten.Text;
nv.ngay_sinh = DateTime.Parse(txtngay_sinh.Text);
nv.luong_co_ban = double.Parse(txtluong_co_ban.Text);
nv.he_so_luong = double.Parse(txthe_so_luong.Text);
nv.so_con = txtso_con.Text != "" ? (int?)int.Parse(txtso_con.Text) : null;
MessageBox.Show(nv.ToString());
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
}
- X l s kin Click ca Button Lm li
private void btnlamlai_Click(object sender, EventArgs e){
txtho_ten.Text = "";
txtngay_sinh.Text = "";
txthe_so_luong.Text = "";
txtluong_co_ban.Text = "";
txtso_con.Text = "";
}
4.2. Lm vic vi mng
Mc tiu:
- S dng mng v cc thao tc x l thng dng trn mng
- S dng lp Random v cc phng thc ca lp ny
- S dng cc phng thc ca lp Array
Yu cu:
- Nhp vo s phn t
- To mt Mng s nguyn c s phn t c nhp vo. Sau pht sinh gi tr cho tng
phn t, bit rng gi tr c pht sinh ngu nhin nm trong khong [-50, 100]
- Thc hin cc x l sau trn Mng s nguyn, xut kt qu ra MessageBox:
1. Tm phn t ln nht, phn t nh nht trong mng
2. Sp xp mng tng dn/ gim dn
3. Tnh tng cc phn t trong mng
4. Nhp vo 1 s nguyn X, tm gi tr X trong mng
Hng dn:
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
- Khai bo bin mng s nguyn a ton cc
int[] a;
- X l s kin Click ca Button To mng
// To mng s nguyn a vi kch thc bng s phn t va nhp
int n = int.Parse(txtso_phan_tu.Text);a = new int[n];
// Khi to mng s nguyn a vi cc phn t c gi tr ngu nhin t
50 n 100
Random ngau_nhien=new Random();
for (int i=0;i<a.Length;i++)
a[i]=ngau_nhien.Next(-50,101);
// Xut mng s nguyn a ln mn hnh
string chuoi_a=a[0].ToString();
for (int i=1;i<a.Length;i++)
chuoi_a=string.Format("{0} {1}",chuoi_a,a[i]);
txtmang_so_nguyen_a.Text=chuoi_a;
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
BI 5: Tng quan Lp trnh hng i
tng
Xy dng v s dng cc class cng nh cc thnh phn ca class trong mi trng C#
5.1. Gii phng trnh bc nht Ax + B = 0
Mc tiu: Xy dng class n gin vi 1 phng thc
Yu cu:
- To class Phng trnh bc 1, gm cc thnh phn sau:
o Cc thuc tnh: H s a, h s b
o Phng thc Gii phng trnh.
- To form, trong :
o Nhp H s a v b
o Gii phng trnh v xut ra nghim
Hng dn:
- Nhn chut phi ln project v chn Add Class
- Trong ca s Add New Item, nhp tn cho class l PHUONG_TRINH_BAC_I.CS
- Khai bo cc thnh phn trong class:
o Bin thnh vin (Field): lu tr thng tin v h s a v h s b
private float mHe_so_a;
private float mHe_so_b;
o Thuc tnh (Property): Truy xut n gi tr ca cc bin thnh vin trong class
public float He_so_a
{
get { return mHe_so_a; }
set { mHe_so_a=value; }
}
public float He_so_b
{
get { return mHe_so_b; }
set { mHe_so_b=value; }
}
o Phng thc khi to (Constructor): Khi to cc gi tr ban u cho h s A v B
public PHUONG_TRINH_BAC_I()
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
{ }
public PHUONG_TRI NH_BAC_I(float pHe_so_a, float pHe_so_b)
{
He_so_a=pHe_so_a;
He_so_b=pHe_so_b;
}
o Phng thc gii phng trnh tm nghim
public string Giaipt() {
string kq; //lu kt qu nghim ca pt
//Xt nghim ca phng trnh theo h s a
if (mHe_so_a == 0)
if (mHe_so_b == 0)
kq ="PT c v s nghim";
else
kq = "PT v nghim";
else
kq = string.Format("Phng trnh c nghim: x = {0}", -
He_so_b / He_so_a);
//tr v gi tr cho hm
return kq;
}
- Xy dng mn hnh c giao din sau:
o X l s kin Click ca Button Gii PT
private void btngiai_pt_Click(object sender, EventArgs e){
float a=float.Parse(txthe_so_a.Text);
float b=float.Parse(txthe_so_b.Text);
PHUONG_TRINH_BAC_I pt_bac_1=new PHUONG_TRINH_BAC_I(a,b);
txtnghiem.Text=pt_bac_1.Giaipt();
}
o X l s kin Click ca Button Lm li
Bi tp
Nn tng v lp trnh hng i tng vi C# 4.0
private void btnlam_lai_Click(object sender, EventArgs e){
txthe_so_a.Text=;
txthe_so_b.Text=;
txtnghiem.Text=;
}
5.2. X l phn s
Mc tiu: xy dng class v cc phng thc tnh ton khc nhau
M t: xy dng chng trnh h tr ngi dng thc hin cc php ton cng, tr, nhn, chia trn
cc phn s
Yu cu:
- Xy dng class Phn s vi cc thnh phn sau:
o Thuc tnh: T s v Mu s
o Phng thc khi to khng c tham s: gn gi tr mc nh cho T s v mu s l 1
o Phng thc khi to c 2 tham s l T s v Mu s
Cc phng thc tnh ton:
o Phng thc Ti gin phn s: dng ti gin phn s (v d: 2/4 ti gin thnh 1/2)
o Phng thc Cng: tnh tng ca 2 phn s v tr v phn s kt qu sau khi c ti
gin
o Phng thc Tr: tnh hiu ca 2 phn s v tr v phn s kt qu sau khi c ti
gin
o Phng thc Nhn: tnh tch ca 2 phn s v tr v phn s kt qu sau khi c ti
gin
o Phng thc Chia: tnh thng ca 2 phn s v tr v phn s kt qu sau khi c
ti gin
o Phng thc Xut: xut phn s kt qu ra mn hnh c dng <T s>/<Mu s>
Trong :
d b
c b d a
d
c
b
a
*
* *
d b
c b d a
d
c
b
a
*
* *
d b
c a
d
c
b
a
*
*
*
c b
d a
d
c
b
a
*
*
:
Hng dn:
- To class PhanSo, gm cc thnh phn yu cu trn
o Xy dng phng thc Ti gin nh sau:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 24/64
private PhanSo Toigian(PhanSo pso)
{
PhanSo ps = new PhanSo();
int us = uscln(pso.Tuso, pso.Mauso);
ps.Tuso = pso.Tuso / us;
ps.Mauso = pso.Mauso / us;
return ps;
}
private int uscln(int so_1, int so_2)
{
int a = Math.Abs(so_1), b = Math.Abs(so_2);
while (a != b)
{
if (a > b)
a -= b;
else
b -= a;
}
return a;
}
//Lu : Hc vin phi kim tra tnh hp l ca t s v mu s trc
khi gi hm ny
- Xy dng phng thc Cng nh sau:
public PhanSo Cong(PhanSo p)
{
PhanSo kq = new PhanSo();
kq.Tuso = Tuso * p.Mauso + Mauso * p.Tuso;
kq.Mauso = Mauso * p.Mauso;
return Toigian(kq);
}
//Tng t, hc vin xy dng 3 phng thc cn li
- Xy dng mn hnh c giao din sau:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 25/64
o Xy dng phng thc To phn s: x l chui nhp ca Phn s v tr v Phn s
//Phng thc ny c xy dng trong class Form
private PhanSo Tao_phan_so(string chuoi)
{
string[] s = chuoi.Split('/');
int tu = int.Parse(s[0]);
int mau = int.Parse(s[1]);
return new PhanSo(tu, mau);
}
o X l s kin Click ca Button Cng
PhanSo p1 = Tao_phan_so(txtphan_so_1.Text);
PhanSo p2 = Tao_phan_so(txtphan_so_2.Text);
PhanSo kq = p1.Cong(p2);
txtket_qua.Text = kq.Xuat();
//Tng t, x l cc nt cn li
5.3. X l phn s nng cao
Mc tiu: xy dng class v cc phng thc np chng ton t
Yu cu:
- Ging yu cu ca bi 4.2, nhng vit li (hoc b sung) cc phng thc np chng ton t +, -,
*, /, ==, !=
- B sung nt So snh 2 phn s trn Form, dng so snh hai phn s nhp vo c bng nhau
khng
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 26/64
- M rng: Hc vin c th b sung cc nt So snh ln hn, So snh nh hn
5.4. Nhp xut thng tin ha n (Bi v nh)
Mc tiu:
- Xy dng class v tng hp cc kin thc hc (Array, Class, string, StringBuilder )
- ng dng bi ton thc t
Yu cu: xy dng ng dng h tr nhp xut thng tin Ha n bn hng theo m t sau:
- Thng tin ha n gm c: S ha n, Ngy lp ha n, Khch hng v Danh sch cc sn
phm c mua
- Thng tin sn phm gm c: Tn sn phm, n gi sn phm, S lng mua v Thnh tin.
- Sau khi nhp y Thng tin ha n v Chi tit ha n, ngi dng c php xem thng
tin ca Ha n bn hng
Hng dn:
- Xy dng hai class: HoaDon v SanPham
- Khai bo cc bin dng chung trn Form: 1 bin kiu HoaDon, 1 bin mng kiu SanPham, 1 bin
kiu int (dng lu tr s sn phm, cng l s phn t ca mng)
- Gi giao din ca Form:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 27/64
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 28/64
BI 6: Tnh Tha k v a hnh
Xy dng v s dng cc class k tha t class khc
S dng tnh a hnh ca class
6.1. Qun l thng tin nhn vin
Mc tiu: Xy dng class k tha v p dng k thut Late Binding
M t: Xy dng ng dng qun l lng ca cng ty Z.
- Thng tin ca nhn vin gm: H tn nhn vin, Gii tnh, Ngy sinh, Ngy vo lm, H s lng,
Lng c bn, Thm nin v nh mc s ngy vng (mc nh l 3 ngy). Trong :
o Lng c bn: dng chung cho tt c cc nhn vin trong cng ty
o Thm nin = Nm hin hnh Nm vo lm
- Nhn vin ca cng ty c chia lm 2 loi:
o Nhn vin vn phng: c thm thng tin v S ngy vng v n gi pht cho tng ngy
vng (mc nh l 100.000/ngy). Cc khon pht, thng v lng nh sau:
Tin pht: Tin pht = n gi pht x S ngy vng vt qu nh mc.
Tin thng: 10% ca (Lng c bn * H s lng)
Lng: (Lng c bn * H s lng) + Tin thng Tin pht
o Nhn vin sn xut: c thm thng tin v S ngy vng , S lng sn phm, nh mc sn
phm (mc nh l 1,000), v n gi sn phm (mc nh l 10,000/sn phm). Ring nh
mc s ngy vng s tng ln 2 ngy. Cc khon thng v lng nh sau:
Tin thng: S sn phm vt nh mc x n gi sn phm x 0.05
Tuy nhin, nu S ngy vng > nh mc vng th:
Tin thng = Tin thng - S ngy vng vt qu nh mc * (Tin thng *0.01)
Lng: (Lng c bn * H s lng) + Tin thng
Yu cu: xy dng chng trnh h tr nhp thng tin nhn vin, tnh cc khon pht, thng, lng
v xut kt qu ra mn hnh
Hng dn:
- Xy dng lp Nhan_vien
class Nhan_vien
{
private string mHo_ten;
private DateTime mNgay_sinh;
private DateTime mNgay_vao_lam;
private double mHe_so_luong;
private Gioi_tinh mGioi_tinh;
public static double mLuong_co_ban = 830000;
protected int Dinh_muc_vang = 3;
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 29/64
public string Ho_ten
{ get { return mHo_ten; } set { mHo_ten = value; } }
public DateTime Ngay_sinh
{ get { return mNgay_sinh; } set { mNgay_sinh = value; } }
public DateTime Ngay_vao_lam
{ get { return mNgay_vao_lam; } set { mNgay_vao_lam = value; } }
public double He_so_luong
{
get { return mHe_so_luong; }
set { mHe_so_luong = value; }
}
public Gioi_tinh Gioi_tinh
{ get { return mGioi_tinh; } set { mGioi_tinh = value; } }
public Nhan_vien() { }
public Nhan_vien(string _ho_ten, DateTime _ngay_sinh, DateTime _ngay_vao_lam, Gioi_tinh
_gioi_tinh, double _he_so_luong)
{
Ho_ten = _ho_ten;
Ngay_sinh = _ngay_sinh;
Ngay_vao_lam = _ngay_vao_lam;
Gioi_tinh = _gioi_tinh;
He_so_luong = _he_so_luong;
}
public virtual double Tinh_luong()
{
double tienluong = mLuong_co_ban * He_so_luong;
return tienluong;
}
public int Tham_nien
{
get { return DateTime.Today.Year - Ngay_vao_lam.Year; }
}
public virtual double Tinh_thuong()
{
return Tham_nien * 500000;
}
public override string ToString()
{
return string.Format("Thng tin lng ca {0}", Ho_ten);
}
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 30/64
}
- Xy dng class NVVP k tha t class Nhan_vien:
class NVVP : Nhan_vien
{
int mSo_ngay_vang;
private static double mDon_gia_phat = 100000;
public int So_ngay_vang
{
get { return mSo_ngay_vang; }
set { mSo_ngay_vang = value; }
}
public static double Don_gia_phat
{
get { return mDon_gia_phat; }
set { mDon_gia_phat = value; }
}
public NVVP(string _ho_ten, DateTime _ngay_sinh, DateTime, ngay_vao_lam,
Gioi_tinh _gioi_tinh, double _he_so_luong)
: base(_ho_ten, _ngay_sinh, _ngay_vao_lam, _gioi_tinh, _he_so_luong)
{ }
public NVVP(string _ho_ten, DateTime _ngay_sinh, DateTime _ngay_vao_lam,
Gioi_tinh _gioi_tinh, double _he_so_luong,int _so_ngay_vang)
: base(_ho_ten, _ngay_sinh, _ngay_vao_lam, _gioi_tinh, _he_so_luong)
{
So_ngay_vang = _so_ngay_vang;
}
public double Tinh_phat()
{
double tien = 0;
if (So_ngay_vang > base.Dinh_muc_vang)
tien = (So_ngay_vang - base.Dinh_muc_vang) * Don_gia_phat;
return tien;
}
public override double Tinh_thuong()
{
return base.Tinh_luong() * 0.1;
}
public override double Tinh_luong()
{
retun base.Tinh_luong() + (base.Tinh_luong() * 0.1) - Tinh_phat();
}
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 31/64
public override string ToString()
{
return string.Format("{0}\nLoi nhn vin: Nhn vin vn phng\nTin thng:
{1}\n"+ "Tin pht: {2} \n"+ "Tin lng: {3} \n" +"Cn lnh: {4}"
,base.ToString(), Tinh_thuong().ToString("#,##0.00"),Tinh_phat().ToString("#,##0.00"),
base.Tinh_luong().ToString("#,##0.00"), this.Tinh_luong().ToString("#,##0.00"));
}
}
- Tng t, xy dng lp NVSX theo m t trn
class NVSX : Nhan_vien
{
int mSo_san_pham;
int mSo_ngay_vang;
static int mDinh_muc_san_pham = 1000;
static double mDon_gia_san_pham = 10000;
public static int Dinh_muc_san_pham
{
get { return mDinh_muc_san_pham; }
set { mDinh_muc_san_pham = value; }
}
public static double Don_gia_san_pham
{
get { return mDon_gia_san_pham; }
set { mDon_gia_san_pham = value; }
}
//Tip tc cho cc khai bo cn li
}
- Xy dng mn hnh c giao din sau:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 32/64
- X l s kin Load ca Form
txtluong_co_ban.Text = Nhan_vien.luong_co_ban.ToString();
- X l s kin Click ca Button ng
string ho_ten = txtho_ten.Text;
DateTime ngay_sinh = DateTime.Parse(txtngay_sinh.Text);
DateTime ngay_vao_lam = DateTime.Parse(txtngay_vao_lam.Text);
Gioi_tinh gioi_tinh = cbgioi_tinh.Checked == true ? Gioi_tinh.N : Gioi_tinh.Nam;
double he_so_luong = double.Parse(txthe_so_luong.Text);
int so_ngay_vang = int.Parse(txtgia_tri.Text);
Nhan_vien nv;
if (rbnvvp.Checked == true)
nv = new NVVP(ho_ten, ngay_sinh, ngay_vao_lam, gioi_tinh, he_so_luong,
so_ngay_vang);
else
{
int so_san_pham = int.Parse(txtSosp.Text);
nv = new NVSX(ho_ten, ngay_sinh, ngay_vao_lam, gioi_tinh, he_so_luong,
so_ngay_vang, so_san_pham);
}
MessageBox.Show(nv.ToString());
Kt qu kt xut
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 33/64
6.2. Qun l danh sch my tnh (Bi v nh)
Mc tiu: Xy dng class k tha v p dng tnh cht a hnh
Yu cu: Xy dng chng trnh nhp v xut danh sch My tnh. Trong my tnh c 2 loi l My
tnh bn v My tnh xch tay
- My tnh bn gm cc thng tin: S hiu, n gi v Hng sn xut, CPU v RAM
- My tnh xch tay gm cc thng tin: S hiu, n gi v Hng sn xut, Trng lng, Thi gian
PIN v Kch thc mn hnh
Hng dn:
- Xy dng class MAY_TINH vi cc thng tin: S hiu, n gi v Hng sn xut
o Xy dng phng thc Hin th thng tin: cho php ghi (virtual) v tr v chui gm cc
thng tin: S hiu, n gi v Hng sn xut
- Xy dng class MAY_TINH_DE_BAN c dn xut t lp MAY_TINH gm 2 thng tin: CPU, RAM
o Phng thc khi to (khng c cng c)
o Xy dng phng thc Hin th thng tin: ci t li phng thc tnh Hin th thng tin ca
class MAY_TINH, cng thm vo chui tr v thng tin: CPU v RAM
- Xy dng class MAY_TINH_XACH_TAY c dn xut t lp MAY_TINH cc thng tin: Trng
lng, Thi gian PIN, Kch thc mn hnh
o Phng thc khi to (khng c cng c)
o Xy dng phng thc Hin th thng tin: ci t li phng thc tnh Hin th thng tin ca
class MAY_TINH, cng thm vo chui tr v thng tin: Trng lng, Thi gian PIN v Kch
thc mn hnh.
- Giao din gi :
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 34/64
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 35/64
BI 7: Delegate v Event
Khai bo v s dng Delegate
Khai bo v pht sinh Event
7.1. Qun l thng tin nhn vin
Mc tiu:
- Xy dng class v s dng t kha public static. S dng thuc tnh Read-only
- Xy dng v s dng s kin
M t: Xy dng chng trnh qun l thng tin nhn vin cho cng ty X
Yu cu:
- Xy dng class Nhn vin bao gm cc thng tin: H tn nhn vin, Gii tnh, Ngy sinh, Ngy
vo lm, H s lng, Lng c bn v Thm nin. Trong :
o Lng c bn dng chung cho tt c cc nhn vin trong cng ty
o Thm nin c tnh bng cng thc: Nm hin hnh Nm vo lm
- Xy dng phng thc tnh tin lng, bit rng: Tin lng = Lng c bn * H s lng
- Xy dng phng thc tnh tin thng, bit rng: Tin thng = Thm nin * 500000
- Pht ra thng bo nu H s lng c thay i
Hng dn:
- S dng li class Nhanvien xy dng trong Bi 6.1, b sung thm:
Khai bo s kin:
public delegate void Xuly(string chuoi);
public event Xuly Tang_luong;
//Hc vin c th dng delegate ca h thng
Pht sinh s kin
public double He_so_luong
{
get { return mHe_so_luong; }
set {
mHe_so_luong = value;
if (Tang_luong != null)
Tang_luong("Bn c tng lng");
}
}
- Mn hnh gi :
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 36/64
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 37/64
BI 8: Lp tru tng, lp giao tip
Xy dng v s dng cc class tru tng, lp giao tip
S dng cc lp giao tip c xy dng sn trong C#
8.1. Qun l cc lp hnh hc
Mc tiu: Xy dng v sng dng class tru tng (Abstract)
Yu cu: Xy dng chng trnh nhp, tnh ton v xut Chu vi, Din tnh ca Hnh trn, hnh ch
nht v hnh tam gic
o Thng tin ca hnh trn: Bn knh
o Thng tin ca ch nht: Chiu di v chiu rng
o Thng tin ca hnh tam gic: Cnh A, cnh B v cnh C
Hng dn
- Xy dng class tru tng HinhHoc vi hai phng thc tru tng tnh din tch v chu vi nh
sau:
abstract class HinhHoc
{
public abstract double Dien_tich();
public abstract double Chu_vi();
public virtual string Xuat_thong_tin()
{
return "Thng tin ca hnh ";
}
}
- Xy dng lp HinhTron c dn xut t lp HinhHoc:
class HinhTron : HinhHoc
{
public double Bankinh { get; set; }
public override double Chu_vi()
{
return Math.PI * 2 * Bankinh;
}
public override double Dien_tich()
{
return Math.PI * Bankinh * Bankinh;
}
public override string Xuat_thong_tin()
{
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 38/64
return base.Xuat_thong_tin() + "Trn";
}
}
- Tng t, hc vin xy dng lp HinhChuNhat, HinhTamGiac c dn xut t lp HinhHoc
- Xy dng mn hnh c giao din sau:
- X l s kin click ca nt Tnh:
HinhHoc h;
if (rbhinh_tron.Checked == true)
{
double bankinh = double.Parse(txtBk.Text);
h = new HinhTron { Bankinh = bankinh };
}
else if (rbhinh_chu_nhat.Checked == true)
{
double dai = double.Parse(txtCd.Text);
double rong = double.Parse(txtCr.Text);
h = new HinhChuNhat { Chieudai = dai, Chieurong = rong };
}
else
{
double a = double.Parse(txtCa.Text);
double b = double.Parse(txtCb.Text);
double c = double.Parse(txtCc.Text);
h = new HinhTamGiac { CanhA = a, CanhB = b, CanhC = c };
}
lblThongtin.Text = h.Xuat_thong_tin();
txtCv.Text = h.Chu_vi().ToString("#,##0.00");
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 39/64
txtDt.Text = h.Dien_tich().ToString("#,##0.00");
8.2. Qun l i tng hnh hc
Mc tiu: S dng lp giao tip c xy dng sn trong C#
Yu cu:
- Xy dng chng trnh nhp, tnh ton v xut Chu vi, Din tnh ca Hnh trn, hnh ch nht v
hnh tam gic
o Thng tin ca hnh trn: Bn knh
o Thng tin ca ch nht: Chiu di v chiu rng
o Thng tin ca hnh tam gic: Cnh A, cnh B v cnh C
o Xut cc thng tin hnh ra mn hnh, c sp xp theo Chu vi hoc Din tch
Hng dn:
- Xy dng lp cc lp HinhHoc, HinhTron, HinhChuNhat, HinhTamGiac: ging bi 8.1
- Sau , b sung vo lp HinhHoc nh sau:
abstract class HinhHoc : IComparable
{
public int CompareTo(object obj)
{
HinhHoc hh = (HinhHoc)obj;
//if (ChuVi() > hh.ChuVi())
// return 1;
//else if (ChuVi() < hh.ChuVi())
// return -1;
if (DienTich() > hh.DienTich())
return 1;
else if (DienTich() < hh.DienTich())
return -1;
return 0;
}
}
- Xy dng mn hnh c dng sau:
So snh theo din tch
So snh theo chu vi
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 40/64
o Khai bo cc bin ton cc trong mn hnh
HinhHoc[] h;
int sopt=0;
o X l Form_Load
h=new HinhHoc[sopt];
o X l xut danh sch hnh hc
public void Xuat()
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < h.Length; i++)
sb.AppendLine(h[i].Xuat_thong_tin());
txtkq.Text = sb.ToString();
}
o X l Button Thm hnh trn
Array.Resize<HinhHoc>(ref h, sopt + 1);
double bankinh = double.Parse(txtbankinh.Text);
h[sopt] = new HinhTron { Bankinh = bankinh };
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 41/64
sopt++;
Xuat();
o X l Button Thm hnh ch nht
Array.Resize<HinhHoc>(ref h, sopt + 1);
double dai = double.Parse(txtdai.Text);
double rong = double.Parse(txtrong.Text);
h[sopt] = new HinhChuNhat { Chieudai= dai, Chieurong= rong };
sopt++;
Xuat();
o X l Button Thm hnh tam gic
Array.Resize<HinhHoc>(ref h, sopt + 1);
double a = double.Parse(txta.Text);
double b = double.Parse(txtb.Text);
double c = double.Parse(txtc.Text);
h[sopt] = new HinhTamGiac { CanhA=a, CanhB=b, CanhC=c };
sopt++;
Xuat();
o X l Button Sp xp
Array.Sort(h);
Xuat();
Lu : Hc vin sa li phng thc Xuat_thong_tin cho ph hp vi bi tp ny
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 42/64
BI 9: Collections v Generic
S dng cc lp Collection v Generic Collection trong C#
9.1. Qun l danh sch hc vin
Mc tiu: To v s dng i tng kiu ArrayList
Yu cu:
- Xy dng chng trnh thm danh sch hc vin (DSHV) mi vo danh sch c. Cch thm nh
sau: Thm DSHV mi vo cui DSHV c, sau sp xp li (Hnh 2)
- Thit k mn hnh vi giao din nh sau:
Hnh 1: Lc mi m mn hnh
Hng dn:
- Khai bo 2 bin ton cc lu danh sch hc vin
ArrayList hocvien = new ArrayList();
ArrayList hocvienmoi = new ArrayList();
- X l s kin Form Load:
//Khi to ArrayList cha danh sch tn cc hc vin trong lp
hocvien.Add("Nguyn Bo Anh");
hocvien.Add("Phm Chi Bo");
hocvien.Add("Phm Lan Chi");
hocvien.Add("Trn Vn Hng");
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 43/64
hocvien.Add("Nguyn Dung");
hocvien.Add("Hong Ngc Linh");
hocvien.Add("Trn Anh Ti");
// hin th danh sch hc vin c
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hocvien.Count; i++)
sb.AppendLine(hocvien[i].ToString());
txtdanhsachcu.Text = sb.ToString();
// Khi to ArrayList cha danh sch tn ca cc hc vin mi
hocvienmoi.Add(" Thin Nga");
hocvienmoi.Add("Phm Qunh Anh");
hocvienmoi.Add("L Qunh Hoa");
hocvienmoi.Add("L Thin Thanh");
hocvienmoi.Add("Nguyn Dung");
// hin th danh sch hc vin mi
sb = new StringBuilder();
for (int i = 0; i < hocvienmoi.Count; i++)
sb.AppendLine(hocvienmoi[i].ToString());
txtdanhsachmoi.Text = sb.ToString()
- Nt Thm HV mi:
//thm mi v sp xp
for (int i = 0; i < hocvienmoi.Count; i++)
hocvien.Add(hocvienmoi[i]);
hocvien.Sort();
//Xut ra mn hnh
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hocvien.Count; i++)
sb.AppendLine(hocvien[i].ToString());
txtdanhsachcu.Text = sb.ToString();
- Kt qu sau khi chn danh sch hc vin mi:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 44/64
Hnh 2: Kt qu sau khi chn
9.2. Qun l danh sch hc vin
Mc tiu: To v s dng i tng kiu SortedList
Yu cu:
- Xy dng chng trnh thm danh sch hc vin (DSHV) mi vo danh sch c. Thng tin hc vin
gm c: M hc vin v H tn hc vin
- Xy dng mn hnh nh sau:
- Sau khi thm DSHV mi vo:
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 45/64
Hng dn:
- Khai bo 2 bin SortedList ton cc lu 2 danh sch hc vin
SortedList hocvien = new SortedList();
SortedList hocvienmoi = new SortedList();
- X l s kin Form Load:
// To danh sch hc vin c
hocvien.Add("001","Nguyn Bo Anh");
hocvien.Add("003","Phm Chi Bo");
// To danh sch hc vin mi
hocvienmoi.Add("002"," Thin Nga");
hocvienmoi.Add("005","Phm Qunh Anh");
..
// Xut danh sch hc vin ra mn hnh
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hocvien.Count; i++)
sb.AppendLine(hocvien.GetKey(i).ToString()+"
"+hocvien.GetByIndex(i).ToString());
txtdanhsachcu.Text = sb.ToString();
//Tng t xut danh sch hc vin mi
..
- X l nt Thm HV mi:
for (int i=0; i < hocvienmoi.Count; i++)
hocvien.Add(hocvienmoi.GetKey(i).ToString(), hocvienmoi.GetByIndex(i).ToString());
StringBuilder sb = new StringBuilder();
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 46/64
for (int i = 0; i < hocvien.Count; i++)
sb.AppendLine(hocvien.GetKey(i).ToString()+" " + hocvien.GetByIndex(i).ToString());
txtdanhsachcu.Text = sb.ToString();
9.3. Chuyn s thnh ch
Mc tiu: To v s dng i tng kiu HashTable
Yu cu:
- Xy dng chng trnh chuyn i s thnh chui (V d: 3541 Ba nm bn mt)
- Xy dng mn hnh nh sau:
Hng dn:
- X l nt ng
//Khai bo mng chui cc k s:
string[] kyso ={"0","1","2","3","4","5","6","7","8","9" };
//Khai bo mng chui cc chui k t tng ng vi cc k s
string[] kytu = { "Khng", "Mt", "Hai", "Ba", "Bn", "Nm", "Su", "By", "Tm", "Chn" };
//To HashTable vi mng chui k s l key v chui k t l value
Hashtable h = new Hashtable();
for (int i = 0; i < kyso.Length; i++)
h.Add(kyso[i], kytu[i]);
string chuoiso = txtso.Text;
string chuoi = "";
for (int i = 0; i < chuoiso.Length; i++)
chuoi += h[chuoiso[i].ToString()]+" ";
txtchuoi.Text = chuoi;
9.4. c 3 s (Bi v nh)
Mc tiu: To v s dng i tng HashTable kt hp vi cu trc iu khin
Yu cu:
- Xy dng chng trnh c 1 s (ti a l 3 k s) thnh chui (V d: 341 Ba trm bn mi
mt)
- Mn hnh gi :
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 47/64
9.5. Bi v nh
Mc tiu: S dng i tng kiu Generic Colections
Yu cu: Thc hin li cc bi tp trn, s dng Generic Collections.
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 48/64
BI 10: Cc kin thc c bn v SQL Server
S dng tin ch SQL Server Management Studio (SSMS)
To c s d liu, to cc bng v cc quan h rng buc kha ngoi
Vit cc cu lnh truy vn d liu trn cc bng
Vit cc cu lnh cp nht d liu trn cc bng
10.1. To c s d liu QLSV (bng tin ch SSMS)
M t
C s d liu Qun l Sinh vin cho php lu tr thng tin cc sinh vin trong cc khoa v kt qu
hc tp ca cc sinh vin theo mn hc
To cu trc cc bng
Cc Field c gch di v in m l kha chnh ca bng
Khoa Danh mc khoa
Field Name Field Type Field Size Format Description
KhoaID Char 2 M khoa
TenKhoa NVarchar 50 Tn khoa
MonHoc Danh mc mn hc
Field Name Field Type Field Size Format Description
MonHocID Char 2 M mn
TenMonHoc NVarchar 50 Tn mn
SinhVien Danh mc sinh vin
Field Name Field Type Field Size Format Description
SinhVienID Char 3 M sinh vin
HoSinhVien NVarchar 30 H
TenSinhVien NVarchar 20 Tn
NgaySinh DateTime Ngy sinh
GioiTinh Bit True: Nam; False: N
DiaChi NVarchar 50 a ch
HocBong Int Hc bng
KhoaID Char 2 M khoa
KetQua Kt qu hc tp
Field Name Field Type Field Size Format Description
SinhVienID Char 3 M sinh vin
MonHocID Char 2 M mn
Diem Real im
To Database Diagram vi cc quan h theo m t sau:
Bng cha Khoa v bng con SinhVien quan h theo ct KhoaID
Bng cha SinhVien v bng con KetQua quan h theo ct SinhVienID
Bng cha MonHoc v bng con KetQua quan h theo ct MonHocID
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 49/64
Nhp d liu mu
Khoa
M khoa Tn khoa
CN Khoa Cng ngh thng tin
TO Khoa Ton
VL Khoa L
MonHoc
M mn Tn mn
CO C l thuyt
CS C s d liu
CT Cu trc d liu
LT Lng t
RR Ton ri rc
TC Ton cao cp
TT Tr tu nhn to
SinhVien
M H Tn Ngy sinh Gii tnh Hc bng M khoa
C00 Nguyn Th Trang 13/8/1991 False 100000 CN
C01 H Tun 24/2/1991 True 0 CN
C02 Trn Ngc Ho 11/6/1990 False 120000 CN
C03 Bi Th Tho 26/2/1990 False 100000 CN
C04 Nguyn Hong Hng 19/3/1990 True 150000 CN
T00 L Tun 15/2/1991 True 0 TO
T01 Bi Minh Khnh 9/4/1990 True 120000 TO
T02 Trn Th Lan 4/3/1990 False 100000 TO
T03 L Thin 18/5/1990 True 0 TO
T04 L Th Tho 27/3/1990 False 120000 TO
KetQua
M sinh vin M mn hc im
C00 CS 10
C00 CT 9
C00 TT 7
C00 RR 8.5
C01 CS 7
Bi tp
Nn tng v Lp Trnh Hng i Tng vi C# Trang 50/64
C01 CT 6
C01 TT 7
C01 RR 9
C02 CS 7.5
C02 CT 4
C02 TT 5
C02 RR 3
C03 CS 9
C03 CT 1
C03 TT 8.5
C03 RR 9
C04 CS 2
C04 CT 1
10.2. Truy vn d liu (bng cu lnh)
Ghi ch: cc bi c nh du (*) l bi v nh
Truy vn n gin
a. Lit k danh sch sinh vin gm cc ct M, H v Tn, Ngy sinh, Gii tnh, Hc bng. C sp
tng theo ct hc bng
Mu:
M H tn Ngy sinh Phi Hc bng
C00 Nguyn Th Trang 8/13/1991 N 100000
C04 Nguyn Hong Hng 3/19/1990 Nam 150000
b. Thng k tng hc bng theo khoa. Ch hin th nhng khoa c tng hc bng >=3,000,000
Mu:
M khoa Tn khoa Tng hc bng
CN Khoa Cng ngh thng tin 3,500,000