C++ học viện bưu chính viễn thông

  • Published on
    28-Dec-2015

  • View
    11

  • Download
    2

Embed Size (px)

Transcript

  • HC VIN CNG NGH BU CHNH VIN THNG

    NGN NG LP TRNH C++

    (Dng cho sinh vin h o to i hc t xa)

    Lu hnh ni b

    H NI - 2006

  • NGN NG LP TRNH C++

    PGS.TS. Trn nh Qu KS. Nguyn Mnh Hng

    Lp trnh nng cao vi C++ Lp trnh hng i tng vi C++

  • 2

  • 3

    GII THIU

    C++ l ngn ng lp trnh hng i tng c m rng t ngn ng C. Do vy, C++ c u im l k tha c cc im mnh truyn thng ca ngn ng C nh uyn chuyn, tng thch vi cc thit b phn cng. Hin nay, C++ l mt ngn ng lp trnh ph bin, c ging dy ti cc trng i hc trong nc v trn th gii v c bit c s dng rng ri cho nhu cu pht trin ca cng nghip phn mm hin nay. Ti liu ny khng nhng nhm gii thiu cho sinh vin ngn ng lp trnh C++, m cn mong mun qua sinh vin c th hiu c t tng ca phng php lp trnh hng i tng ni chung. Ni dung ca ti liu bao gm hai phn chnh:

    Phn th nht l lp trnh nng cao vi C++, bao gm lp trnh C++ vi con tr v mng, cc kiu d liu c cu trc cng cc thao tc vo ra trn tp.

    Phn th hai l lp trnh hng i tng vi C++, bao gm cc nh ngha v cc thao tc trn lp i tng, tnh k tha v tng ng bi trong C++, cch s dng mt s lp c bn trong th vin C++.

    Ni dung ti liu c t chc thnh 7 chng:

    Chng 1: Gii thiu tng quan v cc phng php lp trnh Trnh by cc phng php lp trnh tuyn tnh, lp trnh cu trc v c bit, lm quen vi cc khi nim trong lp trnh hng i tng.

    Chng 2: Con tr v mng Trnh by cch khai bo v s dng cc kiu con tr v mng trong ngn ng C++.

    Chng 3: Kiu d liu c cu trc Trnh by cch biu din v ci t mt s kiu cu trc d liu tru tng trong C++. Sau , trnh by cch p dng cc kiu d liu ny trong cc ng dng c th.

    Chng 4: Vo ra trn tp Trnh by cc thao tc c, ghi d liu trn cc tp tin khc nhau: tp tin vn bn v tp tin nh phn. Trnh by cc cch truy nhp tp tin trc tip.

    Chng 5: Lp i tng Trnh by cc khi nim m u cho lp trnh hng i tng trong C++, bao gm cch khai bo v s dng lp, cc thuc tnh ca lp; cch khi to v hu b i tng, cc quy tc truy nhp n cc thnh phn ca lp.

    Chng 6: Tnh k tha v tng ng bi Trnh by cch thc k tha gia cc lp trong C++, cc nguyn tc truy nhp trong k tha, nh ngha np chng cc phng thc v tnh a hnh trong lp trnh hng i tng vi C++.

    Chng 7: Mt s lp quan trng Trnh by cch s dng mt s lp c sn trong th vin chun ca C++, bao gm cc lp: lp tp hp, lp chui, lp ngn xp, lp hng i v lp danh sch lin kt.

    c c cun sch ny, sinh vin phi quen bit cc khi nim c bn v lp trnh, c mt s k nng lp trnh vi ngn ng C hoc C++. Cun sch ny cng c th dng ti liu tham kho cho nhng sinh vin mun tm hiu cc k thut lp trnh nng cao v lp trnh hng i tng

  • 4

    vi C++. Cun sch ny c km theo mt a chng trnh cha ton b cc chng trnh c ly lm minh ho v cc bi tp trong cun sch. Mc d cc tc gi c nhiu c gng trong vic bin son ti liu ny, song khng th trnh khi nhng thiu st. Rt mong nhn c nhng kin ng gp qu bu t cc sinh vin v cc bn ng nghip.

  • Chng 1: Gii thiu v cc phng php lp trnh

    5

    CHNG 1

    GII THIU V CC PHNG PHP LP TRNH Ni dung ca chng ny tp trung trnh by cc phng php lp trnh:

    Phng php lp trnh tuyn tnh Phng php lp trnh hng cu trc Phng php lp trnh hng i tng.

    1.1 LP TRNH TUYN TNH c trng c bn ca lp trnh tuyn tnh l t duy theo li tun t. Chng trnh s c thc hin theo th t t u n cui, lnh ny k tip lnh kia cho n khi kt thc chng trnh.

    c trng

    Lp trnh tuyn tnh c hai c trng:

    n gin: chng trnh c tin hnh n gin theo li tun t, khng phc tp. n lung: ch c mt lung cng vic duy nht, v cc cng vic c thc hin tun t

    trong lung .

    Tnh cht

    u im: Do tnh n gin, lp trnh tuyn tnh c ng dng cho cc chng trnh n gin v c u im d hiu.

    Nhc im: Vi cc ng dng phc tp, ngi ta khng th dng lp trnh tuyn tnh gii quyt.

    Ngy nay, lp trnh tuyn tnh ch tn ti trong phm vi cc modul nh nht ca cc phng php lp trnh khc. V d trong mt chng trnh con ca lp trnh cu trc, cc lnh cng c thc hin theo tun t t u n cui chng trnh con.

    1.2 LP TRNH HNG CU TRC

    1.2.1 c trng ca lp trnh hng cu trc

    Trong lp trnh hng cu trc, chng trnh chnh c chia nh thnh cc chng trnh con v mi chng trnh con thc hin mt cng vic xc nh. Chng trnh chnh s gi n chng trnh con theo mt gii thut, hoc mt cu trc c xc nh trong chng trnh chnh. Cc ngn ng lp trnh cu trc ph bin l Pascal, C v C++. Ring C++ ngoi vic c c trng ca lp trnh cu trc do k tha t C, cn c c trng ca lp trnh hng i tng. Cho nn C++ cn c gi l ngn ng lp trnh na cu trc, na hng i tng.

    c trng

    c trng c bn nht ca lp trnh cu trc th hin mi quan h:

  • Chng 1: Gii thiu v cc phng php lp trnh

    6

    Chng trnh = Cu trc d liu + Gii thut Trong :

    Cu trc d liu l cch t chc d liu cho vic x l bi mt hay nhiu chng trnh no .

    Gii thut l mt quy trnh thc hin mt cng vic xc nh Trong chng trnh, gii thut c quan h ph thuc vo cu trc d liu:

    Mt cu trc d liu ch ph hp vi mt s hn ch cc gii thut. Nu thay i cu trc d liu th phi thay i gii thut cho ph hp. Mt gii thut thng phi i km vi mt cu trc d liu nht nh.

    Tnh cht

    Mi chng trnh con c th c gi thc hin nhiu ln trong mt chng trnh chnh. Cc chng trnh con c th c gi n thc hin theo mt th t bt k, tu thuc

    vo gii thut trong chng trnh chnh m khng ph thuc vo th t khai bo ca cc chng trnh con.

    Cc ngn ng lp trnh cu trc cung cp mt s cu trc lnh iu khin chng trnh. u im

    Chng trnh sng sa, d hiu, d theo di. T duy gii thut r rng.

    Nhc im

    Lp trnh cu trc khng h tr mnh vic s dng li m ngun: Gii thut lun ph thuc cht ch vo cu trc d liu, do , khi thay i cu trc d liu, phi thay i gii thut, ngha l phi vit li chng trnh.

    Khng ph hp vi cc phn mm ln: t duy cu trc vi cc gii thut ch ph hp vi cc bi ton nh, nm trong phm vi mt modul ca chng trnh. Vi d n phn mm ln, lp trnh cu trc t ra khng hiu qu trong vic gii quyt mi quan h v m gia cc modul ca phn mm.

    Vn

    Vn c bn ca lp trnh cu trc l bng cch no phn chia chng trnh chnh thnh cc chng trnh con cho ph hp vi yu cu, chc nng v mc ch ca mi bi ton. Thng thng, phn r bi ton trong lp trnh cu trc, ngi ta s dng phng php thit k trn xung (top-down).

    1.2.2 Phng php thit k trn xung (top-down)

    Phng php thit k top-down tip cn bi ton theo hng t trn xung di, t tng qat n chi tit. Theo , mt bi ton c chia thnh cc bi ton con nh hn. Mi bi ton con li c chia nh tip, nu c th, thnh cc bi ton con nh hn na. Qu trnh ny cn c gi l qu trnh lm mn dn. Qu trnh ny s dng li khi cc bi ton con khng cn chia nh thm

  • Chng 1: Gii thiu v cc phng php lp trnh

    7

    na. Ngha l khi mi bi ton con u c th gii quyt bng mt chng trnh con vi mt gii thut n gin. V d, s dng phng php top-down gii quyt bi ton xy mt cn nh mi. Chng ta c th phn r bi ton theo cc bc nh sau:

    mc th nht, chia bi ton xy nh thnh cc bi ton nh hn nh lm mng, ct, trn, xy tng, lp mi.

    mc th hai, phn r cc cng vic mc th nht nh vic lm mng nh c th phn r tip thnh cc cng vic o mng, gia c nn, lm khung st, b tong; cng vic ct c phn r thnh

    mc th ba, phn r cc cng vic ca mc th hai nh vic o mng c th phn chia tip thnh cc cng vic nh o c, cm mc, chng dy, o v kim tra mng. Vic gia c nn c phn r thnh

    Qu trnh phn r c th dng mc ny, bi v cc cng vic con thu c nh o c, cm mc, chng dy, o c th thc hin c ngay, khng cn chia nh thm na. Lu :

    Cng s dng phng php top-down vi cng mt bi ton, nhng c th cho ra nhiu kt qu khc nhau. Nguyn nhn l do s khc nhau trong tiu ch phn r mt bi ton thnh cc bi ton con.

    V d, vn p dng phng php top-down gii quyt bi ton xy nh, nhng nu s dng mt cch khc phn chia bi ton, ta c th thu c kt qu khc bit so vi phng php ban u:

    mc th nht, chia bi ton xy nh thnh cc bi ton nh hn nh lm phn g, lm phn st, lm phn b tng v lm phn gch.

    mc th hai, phn r cc cng vic mc th nht l lm phn g c th chia thnh cc cng vic nh x g, gia cng g, to khung, lp vo nh. Vic lm st c th chia nh thnh

    R rng, vi cch lm mn th ny, ta s thu c mt kt qu khc hn vi cch thc thc hin phn trn.

    1.3 LP TRNH HNG I TNG

    1.3.1 Lp trnh hng i tng

    Trong lp trnh hng i tng:

    Ngi ta coi cc thc th trong chng trnh l cc i tng v sau tru tng ho i tng thnh lp i tng.

    D liu c t chc thnh cc thuc tnh ca lp. Ngui ta ngn chn vic thay i tu tin d liu trong chng trnh bng cc cch gii hn truy nhp nh ch cho php truy nhp d liu thng qua i tng, thng qua cc phng thc m i tng c cung cp

    Quan h gia cc i tng l quan h ngang hng hoc quan h k tha: Nu lp B k tha t lp A th A c gi l lp c s v B c gi l lp dn xut.

  • Chng 1: Gii thiu v cc phng php lp trnh

    8

    Ngn ng lp trnh hng i tng ph bin hin nay l Java, C++, C#...Mc d C++ cng c nhng c trng c bn ca lp trnh hng i tng nhng vn khng phi l ngn ng lp trnh thun hng i tng.

    c trng

    Lp trnh hng i tng c hai c trng c bn:

    ng gi d liu: d liu lun c t chc thnh cc thuc tnh ca lp i tng. Vic truy nhp n d liu phi thng qua cc phng thc ca i tng lp.

    S dng li m ngun: vic s dng li m ngun c th hin thng qua c ch k tha. C ch ny cho php cc lp i tng c th k tha t cc lp i tng khc. Khi , trong cc lp dn xut, c th s dng cc phng thc (m ngun) ca cc lp c s m khng cn phi nh ngha li.

    u im

    Lp trnh hng i tng c mt s u im ni bt:

    Khng cn nguy c d liu b thay i t do trong chng trnh. V d liu c ng gi vo cc i tng. Nu mun truy nhp vo d liu phi thng qua cc phng thc c cho php ca i tng.

    Khi thay i cu trc d liu ca mt i tng, khng cn thay i m ngun ca cc i tng khc, m ch cn thay i mt s thnh phn ca i tng dn xut. iu ny hn ch s nh hng xu ca vic thay i d liu n cc i tng khc trong chng trnh.

    C th s dng li m ngun, tit kim ti nguyn, chi ph thi gian. V nguyn tc k tha cho php cc lp dn xut s dng cc phng thc t lp c s nh nhng phng thc ca chnh n, m khng cn thit phi nh ngha li.

    Ph hp vi cc d n phn mm ln, phc tp.

    1.3.2 Mt s khi nim c bn

    Trong mc ny, chng ta s lm quen vi mt s khi nim c bn trong lp trnh hng i tng. Bao gm:

    Khi nim i tng (object) Khi nim ng gi d liu (encapsulation) Khi nim k tha (inheritance) Khi nim a hnh (polymorphism)

    i tng (Object)

Recommended

View more >