Bài Tập C#

download Bài Tập C#

of 64

description

bài tập C#

Transcript of Bài Tập C#

  • TRUNG TM TIN HC I HC KHOA HC T NHIN TP.HCM

    227 Nguyn Vn C - Qun 5- Tp.H Ch Minh Tel: 8351056 Fax 8324466 Email: [email protected]

    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 , 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: TNH CHU VI, DIN 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

  • Bi tp

    Nn tng v lp trnh hng i tng vi C# 4.0

    xep_loai=Trung bnh;

    else if (dtb

  • Bi tp

    Nn tng v lp trnh hng i tng vi C# 4.0

    0 < KW

  • 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. In 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

  • 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

  • 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_TRINH_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 / Trong :

    dbcbda

    dc

    ba

    ***

    dbcbda

    dc

    ba

    ***

    dbca

    dc

    ba

    ***

    cbda

    dc

    ba

    **:

    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(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(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(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

    Hng dn: th hin ct Phi l Nam/N

    CASE WHEN GioiTinh='true' THEN 'Nam' ELSE N'N' END

    b. Lit k danh sch sinh vin gm cc ct M, H, Tn, Ngy sinh, Gii tnh, Hc bng. Ch lit k cc sinh vin hc khoa Cng ngh thng tin v c hc bng >3,000,000

    c. Lit k danh sch sinh vin gm cc ct M, H, Tn, Ngy sinh, Gii tnh, Hc bng. Ch lit k cc sinh vin c tn bt u l T

    d. Lit k danh sch sinh vin gm cc ct M, H, Tn, Ngy sinh, Gii tnh, Hc bng. Ch lit k cc sinh vin c hc bng t 100000 n 120000

    e. Lit k danh sch sinh vin gm cc ct M, H, Tn, Ngy sinh, Hc bng. Ch lit k cc sinh vin c hc bng v ngy sinh nm trong khong [1/6/1990, 30/6/1991]

    f. Hin th danh sch 10 sinh vin u tin c hc bng t cao n thp (Hng dn: dng TOP 10 v ORDER BY DESC)

    Truy vn trn nhiu bng

    a. Lit k danh sch sinh vin gm cc ct m, h, tn, ngy sinh, gii tnh, m khoa, tn khoa

    b. Lit k kt qu hc tp gm cc ct m sinh vin, h v tn, m mn hc, im

    c. Lit k danh sch cc sinh vin (gm cc ct m, h tn, ngy sinh) c hc mn C s d liu

    d. Lit k danh sch cc sinh vin (gm cc ct m, h tn, ngy sinh) t im 10 trong bi thi

    e. Lit k danh sch cc sinh vin (gm cc ct m, h tn, ngy sinh) c im thi mn Ton cao cp nh hn 5 (*)

    f. Cho bit danh sch cc mn hc cha c sinh vin ng k (*)

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 51/64

    g. Cho bit danh sch cc sinh vin (gm cc ct m, h tn, ngy sinh) cha ng k hc mn hc no (*)

    Truy vn c nhm

    a. Thng k tng s sinh vin theo khoa. C sp tng theo tng s sinh vin

    Mu:

    M khoa Tng s sinh vin

    TO 30

    CN 40

    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

    c. Hin th danh sch sinh vin gm m, h tn v im trung bnh cc mn hc m sinh vin c ng k hc

    d. Hin th danh sch khoa gm m khoa, tn khoa v im trung bnh ca tt c cc sinh vin trong khoa

    e. Hin th danh sch sinh vin gm m, h tn, im trung bnh v kt qu xp loi hc tp ca sinh vin, trong kt qu xp loi hc tp c xt da trn im trung bnh theo quy tc sau: (*)

    iu kin Xp loi

    im trung bnh < 5 Yu

    5

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 52/64

    Tn khoa: Khoa Ho

    b. Thm mt sinh vin mi vo bng SinhVien vi cc thng tin sau:

    M sinh vin: H01

    H v tn: L Thanh Tng

    Ngy sinh: 23/1/1992

    Gii tnh: Nam

    a ch: 122 L Chnh Thng

    Hc bng: 100,000

    M khoa: HO

    c. Thm cc im thi ca sinh vin c m H01 vo bng KetQua vi cc thng tin sau:

    Mi im thi s tng ng vi mt m mn hc trong bng MonHoc

    Mc nh im thi l 6

    Sa mu tin

    a. Cp nht ngy sinh ca sinh vin H Tun thnh 05/07/1980

    b. Tng hc bng ln 5% cho cc sinh vin hc khoa Cng ngh thng tin v c hc bng >0

    c. Cp nht hc bng l 50,000 cho cc sinh vin n hc khoa Cng ngh thng tin v cha c hc bng

    d. Cng thm 5 im mn Tr Tu Nhn To cho cc sinh vin thuc khoa Anh vn. im ti a ca mn l 10

    Xa mu tin

    a. Xo cc kt qu hc tp ca sinh vin c m H01

    b. Xo sinh vin c m H01

    c. Xa tt c nam sinh vin ca khoa Tin hc trong bng SinhVien (nhn xt: c xa c khng?)

    d. Xa cc kt qu hc tp ca nhng sinh vin no c im cc mn < 5

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 53/64

    Ph lc Bi lm thm

    1. Bi 2: Kiu d liu v bin

    1. M ha v gii m

    Mc tiu: ng dng vo bi ton thc t

    M t:

    Mt cng ty mun truyn d liu qua ng mng tuy nhin h s rng d liu s b nh cp.

    Cng ty thu mt lp trnh vin gii quyt vn ny. Sau khi xem xt lp trnh vin quyt nh

    la chn chin lc s m ha (encrypt) d liu trc khi truyn trn mng bi v nu d liu

    c m ha th nu c b nh cp th cng khng bit n c ngha g. D liu c gi i c

    chia thnh nhm gm 4 ch s.

    ng dng ca lp trnh vin s c mt s nguyn c 4 ch s. Sau s ny c m ha

    theo cc bc nh sau:

    (1) thay th mi k s bi tng ca n vi 7 v ly phn d cho 10

    (2) o v tr ca k s th 1 vi k s th 3, k s th 2 v k s th 4.

    V d: s ban u l 1093 s c m ha thnh 6087. Kt qu m ha sau c in ra mn

    hnh

    Yu cu: Xy dng chng trnh m ha v gii m mt s nguyn, gm 2 chc nng:

    - Chc nng 1: m ha mt s c nhp vo chng trnh - Chc nng 2: gii m (decryption) s c m ha xut ra gi tr ban u

    2. Bi 3: Cu trc iu khin

    1. Tnh thu thu nhp c nhn

    Mc tiu: S dng cu trc if else

    Yu cu:

    - Nhp vo mc lng v s ngi ph thuc

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 54/64

    - Tnh v xut ra mc thu thu nhp c nhn cn phi ng theo cc bc: o Bc 1: tnh thu nhp chu thu, bit rng:

    Thu nhp chu thu = Mc lng 4,000,000 - S ngi ph thuc * 1,600,000

    o Bc 2: tnh thu thu nhp c nhn theo quy tc sau: Thu nhp chu thu (TNCT) Thu thu nhp c nhn

    TNCT

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 55/64

    3. Craps Game

    Mc tiu: S dng kt hp cc cu trc iu khin v const

    M t:

    - Craps Game l mt tr chi ph bin lin quan n cc con sc sc c chi ti cc Casino. Craps c chi ch vi hai vin sc sc. Mt cch trng hp l ngi thua trong tr chi c gi l Craps

    - Quy tc chi: Ngi chi c hai con sc sc, mi con sc sc c 6 mt, mi mt mang s chm tng ng l 1, 2, 3, 4, 5, 6. Ngi chi s gieo hai con sc sc, sau tng s im ca hai mt nga c tnh:

    o Trong ln gieo u tin, nu tng l 7 hoc 11 th ngi chi thng o Trong ln gieo u tin, nu tng l 2, 3 hoc 12 (gi l "Craps") th ngi chi thua o Trong ln gieo u tin, nu tng l 4, 5, 6, 8, 9 hoc 10 th s im ny c lu li v

    gi l "Point", ginh chin thng, ngi chi phi gieo li hai con sc sc cho n khi t c gi tr point ln na. Tuy nhin, t ln gieo th hai tr i, nu tng im t c 7 th ngi chi b thua

    - Cc thut ng ca tr chi ny nh sau: o Point: cc gi tr t c trong ln u tin m khng thng hay thua gm c: 4, 5,

    6, 8, 9 hoc 10

    o Snake Eyes: s 2 o Trey: s 3 o Box Cars: s 12 o Seven: s 7 o Yo Leven: s 11

    Yu cu: Vit chng trnh thc hin tr chi Craps c m t nh trn

    Hng dn:

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 56/64

    - S dng const khai bo cc gi tr lu tr cc thut ng trn - Giao din Form gi nh sau:

    3. Bi 5: Tng quan v lp trnh hng i tng

    1. Xp loi hc tp hc sinh

    Mc tiu: p dng class vo bi ton thc t

    Yu cu: Trng trung hc ANZ mun ghi nhn thng tin kt qu hc tp ca hc sinh vo cui

    mi hc k. Bn hy xy dng ng dng nhp thng tin hc sinh v kt qu cc im kim tra

    trong k v im thi cui hc k. Sau xut thng tin kt qu hc tp

    - Thng tin kt qu hc tp ca hc sinh cn ghi nhn gm c: H tn hc sinh, Lp, Hc k v nm hc

    - Kt qu hc tp cc mn hc gm: Tn mn, im 15 pht, im 1 tit, im thi cui hc k

    - im trung bnh hc k vi im trung bnh c tnh theo cng thc sau: im trung bnh hc k=Tng im trung bnh cc mn / s mn hc

    Trung bnh mn hc=(im 15 pht + im 1 tit x 2 + im hc k x 2)/5

    - Xp loi hc lc ca hc sinh theo quy tc sau: o im trung bnh hc k

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 57/64

    2. Tr chi u gi sn phm

    Mc tiu: p dng class vo bi ton thc t

    Yu cu: Xy dng chng trnh Tr chi u gi sn phm vi lut u gi sau:

    - Ngi thng cuc s l ngi c Gi u nh nht - Nu c nhiu ngi chi u cng gi: ngi thng cuc l ngi c S d on cng

    gi thp nht trong s nhng ngi chi u cng gi.

    - Nu c nhiu ngi chi u cng gi v cng s d on: kt qu l Khng c ngi thng cuc

    - Lu : Mi s in thoi c th thc hin nhn tin u gi nhiu ln Hng dn:

    - Mn hnh gi :

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 58/64

    - Cc x l:

    o Form load: To Danh sch ngi chi mc nh v hin th ln TextBox

    Hin th thng tin ca ngi chi u tin ln Thng tin ngi u gi

    o Button : hin th thng tin ngi chi pha sau ngi chi hin ti trong danh sch o Ngi chi mi: xa rng cc TextBox chun b nhp thng tin ngi chi mi o Thm vo danh sch: thm ngi chi mi vo Danh sch ngi chi o Tm ngi thng cuc: tm ngi thng cuc da vo lut ca tr chi u gi sn

    phm v xut thng tin ngi thng cuc ln mn hnh

    3. Thi trc nghim

    Mc tiu: xy dng v s dng class, phi hp cc class, kt hp kin thc mng,

    Yu cu: xy dng ng dng h tr thi trc nghim theo m t sau

    - Trc khi bt u thi, th sinh nhp H tn, Ngy sinh v Ni sinh - Sau bt u lm bi. Th sinh c ni dung cu hi v chn 1 trong 4 cu tr li bn di

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 59/64

    - Nhn nt di chuyn sang mt cu hi mi hoc li v cu trc - Sau khi lm bi xong, th sinh nhn nt Np bi v s nhn c kt qu (Hnh 4.5b)

    Hnh 1: Mn hnh ang thi

    Hnh 2: Mn hnh kt qu

    Hng dn:

    - To lp Cauhoi, gm cc thng tin: Ni dung cu hi, chn la 1, chn la 2, chn la 3, chn la 4, p n, chn p n. C mt phng thc Chm im

    - To lp Thisinh, gm cc thng tin: H tn, ngy sinh, ni sinh v mt phng thc Xut thng tin

    - To lp Baithi, gm cc thng tin: Thng tin ca th sinh v mng cc cu hi. Phng thc Chm bi v Xut thng tin

    - Khai bo cc bin dng chung trn Form: 1 bin mng kiu Cauhoi, 1 bin kiu int (dng lu tr s th t cu hi)

    - S kin load form: Khi to cc cu hi (s cu ty vo ngi lp trnh) 4. Bi 8: Lp tru tng, lp giao tip

    1. X l phn s

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 60/64

    Mc tiu: Xy dng v s dng lp giao tip t nh ngha

    Yu cu: Xy dng chng trnh nhp cc phn s v xut ra danh sch cc phn s, c sp xp

    Hng dn:

    - To interface IXuat, khai bo hm hm xut phn s tr v 1 chui interface IXuat

    { string Xuat(); }

    - Xy dng lp PhanSo (tng t bi 5.2) v ci t Interface Ixuat v IComparable cho lp ny nh sau:

    public class PhanSo: Ixuat, IComparable

    {

    public int TUSO { get; set; }

    public int MAUSO { get; set; }

    public PhanSo() { }

    public PhanSo(int tu, int mau) { TUSO = tu; MAUSO = mau; }

    public string Xuat()

    {

    return string.Format("{0}/{1}", TUSO, MAUSO);

    }

    public int CompareTo(object obj)

    {

    PhanSo p = (PhanSo)obj;

    double giatri1 = 1.0 * TUSO / MAUSO;

    double giatri2 = 1.0 * p.TUSO / p.MAUSO;

    if (giatri1 > giatri2)

    return 1;

    else if (giatri1 < giatri2)

    return -1;

    else

    return 0;

    }

    }

    - Xy dng mn hnh c dng sau:

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 61/64

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 62/64

    MC LC BI 1: Tng quan .................................................................................................. 2 1.1. Lm quen mi trng pht trin ng dng .............................................................................2 1.2. Xy dng mn hnh xut cu cho .........................................................................................2

    BI 2: Kiu d liu v bin .................................................................................... 4 2.1. Tnh chu vi v din tch hnh trn...........................................................................................4 2.2. Tnh chu vi v din tch hnh ch nht (Bi v nh) .................................................................5 2.3. Tnh chu vi v din tch tam gic............................................................................................6 2.4. Tnh s nt ca 1 s nguyn (Bi v nh)...............................................................................6 2.5. Tch chui h tn.................................................................................................................7 2.6. S dng kiu tham chiu.......................................................................................................7

    BI 3: Cu trc iu khin................................................................................... 10

    3.1. Xp loi hc tp .................................................................................................................10 3.2. Tm ngy trc, ngy sau ca mt ngy ...............................................................................11 3.3. Tnh tin in (bi v nh) ..................................................................................................11 3.4. Tnh nm m lnh ...............................................................................................................12 3.5. Tnh s ngy trong thng ....................................................................................................13 3.6. Tnh ngy ca m, ngy ca cha (Bi v nh) .......................................................................13 3.7. In bng cu chng ca mt s ..........................................................................................13 3.8. In bng cu chng t s n s ........................................................................................14 3.9. Tnh li sut ngn hng (Bi v nh) ....................................................................................15 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)..16

    BI 4: Kiu struct v kiu Array .......................................................................... 17 4.1. To v s dng kiu Nhan_vien ...........................................................................................17 4.2. Lm vic vi mng..............................................................................................................19

    BI 5: Tng quan Lp trnh hng i tng ...................................................... 21 5.1. Gii phng trnh bc nht Ax + B = 0.................................................................................21 5.2. X l phn s .....................................................................................................................23 5.3. X l phn s nng cao.......................................................................................................25 5.4. Nhp xut thng tin ha n (Bi v nh) ............................................................................26

    BI 6: Tnh Tha k v a hnh........................................................................... 28

    6.1. Qun l thng tin nhn vin ................................................................................................28 6.2. Qun l danh sch my tnh (Bi v nh)..............................................................................33

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 63/64

    BI 7: Delegate v Event..................................................................................... 35 7.1. Qun l thng tin nhn vin ................................................................................................35

    BI 8: Lp tru tng, lp giao tip.................................................................... 37 8.1. Qun l cc lp hnh hc .....................................................................................................37 8.2. Qun l i tng hnh hc .................................................................................................39

    BI 9: Collections v Generic .............................................................................. 42 9.1. Qun l danh sch hc vin.................................................................................................42 9.2. Qun l danh sch hc vin.................................................................................................44 9.3. Chuyn s thnh ch ..........................................................................................................46 9.4. c 3 s (Bi v nh) .........................................................................................................46 9.5. Bi v nh..........................................................................................................................47

    BI 10: Cc kin thc c bn v SQL Server........................................................ 48 10.1. To c s d liu QLSV (bng tin ch SSMS) ......................................................................48 10.2. Truy vn d liu (bng cu lnh) .......................................................................................50 Truy vn trn nhiu bng ....................................................................................................50 Truy vn c nhm ..............................................................................................................51 10.3. Truy vn cp nht d liu ..................................................................................................51 Thm mu tin ....................................................................................................................51 Sa mu tin .......................................................................................................................52 Xa mu tin .......................................................................................................................52

    Ph lc ................................................................................................................ 53

    Bi lm thm ....................................................................................................... 53

    1. Bi 2: Kiu d liu v bin ......................................................................... 53

    1. M ha v gii m ..............................................................................................................53

    2. Bi 3: Cu trc iu khin .......................................................................... 53 1. Tnh thu thu nhp c nhn ................................................................................................53 2. Kim tra s nguyn t.........................................................................................................54 3. Craps Game .......................................................................................................................55

    3. Bi 5: Tng quan v lp trnh hng i tng .......................................... 56

    1. Xp loi hc tp hc sinh ....................................................................................................56 2. Tr chi u gi sn phm ..................................................................................................57 3. Thi trc nghim ..................................................................................................................58

    4. Bi 8: Lp tru tng, lp giao tip ........................................................... 59 1. X l phn s .....................................................................................................................59

  • Bi tp

    Nn tng v Lp Trnh Hng i Tng vi C# Trang 64/64

    MC LC ............................................................................................................. 62