際際滷

際際滷Share a Scribd company logo
L畉p tr狸nh h動畛ng 畛i t動畛ng
   L畉p tr狸nh h動畛ng 畛i t動畛ng v畛i C++


     H Vn Sang
     Khoa HTTT,
     Academy Of Finance, Hanoi




                                 sanghv@hvtc.edu.vn
Ch動董ng I




Object Oriented Programing Information Systems Department   2
Gi畛i thi畛u
   T畛ng quan
       L畉p tr狸nh h動畛ng 畛i t動畛ng
           L畉p tr狸nh 畛nh h動畛ng 畛i t動畛ng
           Object Oriented Programming (OOP)
       動畛c xem l:
           C叩ch ti畉p c畉n m畛i, hi畛u qu畉 h董n
           Gi炭p tng nng su畉t
           D畛 dng b畉o tr狸, s畛a 畛i, n但ng c畉p
       M畛c 鱈ch:
           Gi畉m b畛t thao t叩c vi畉t tr狸nh
           M担 t畉 ch但n th畛c th畉 gi畛i th畛c
                               V畉y OOP kh坦 h畛c hay d畛 h畛c ?


Object Oriented Programing Information Systems Department    3
1. T畛ng quan v畛 c叩c k畛 thu畉t l畉p tr狸nh

       1.1 L畉p tr狸nh tuy畉n t鱈nh
       1.2 L畉p tr狸nh c畉u tr炭c
       1.3 L畉p tr狸nh m担un
       1.4 Nh動畛c i畛m c畛a l畉p tr狸nh c畉u tr炭c
       1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng




Object Oriented Programing Information Systems Department   4
1.1 L畉p tr狸nh tuy畉n t鱈nh
   L畉p       tr狸nh tuy畉n t鱈nh :
            C嘆n g畛i l l畉p tr狸nh phi c畉u tr炭c
            Gi畉i quy畉t c叩c bi to叩n t動董ng nh畛, 畛i 董n gi畉n
   畉c        i畛m:
            Ch畛 g畛m m畛t ch動董ng tr狸nh ch鱈nh
            G畛m m畛t d達y tu畉n t畛 c叩c c但u l畛nh
            Ch動董ng tr狸nh ng畉n, 鱈t h董n 100 d嘆ng




Object Oriented Programing Information Systems Department     5
1.1 L畉p tr狸nh tuy畉n t鱈nh (ti畉p)
           Nh動畛c i畛m:
                Kh担ng s畛 d畛ng l畉i 動畛c c叩c o畉n m達
                Kh担ng c坦 kh畉 nng ki畛m so叩t ph畉m vi truy xu畉t d畛 li畛u
                M畛i d畛 li畛u trong ch動董ng tr狸nh l ton c畛c
                D畛 li畛u c坦 th畛 b畛 s畛a 畛i 畛 b畉t c畛 v畛 tr鱈 no trong
                 ch動董ng tr狸nh
           Kh担ng 叩p 畛ng 動畛c vi畛c tri畛n khai ph畉n m畛m




Object Oriented Programing Information Systems Department               6
1.2 L畉p tr狸nh c畉u tr炭c
           Ra 畛i vo nh畛ng nm 70:
           Ch動董ng tr狸nh 動畛c chia nh畛 thnh ch動董ng
            tr狸nh con:
                Th畛 t畛c (Procedure)
                Hm (Function)
           C叩c ch動董ng tr狸nh con:
                畛c l畉p v畛i nhau v c坦 d畛 li畛u ri棚ng
                Trao 畛i qua: tham s畛 v bi畉n ton c畛c



Object Oriented Programing Information Systems Department   7
1.2 L畉p tr狸nh c畉u tr炭c (ti畉p)
           Xu畉t hi畛n kh叩i ni畛m tr畛u t動畛ng ho叩
                L kh畉 nng quan s叩t s畛 v畉t m:
                     Kh担ng quan t但m t畛i c叩c chi ti畉t kh担ng quan tr畛ng
                      b棚n trong
                     Kh担ng quan t但m t畛i vi畛c th畛c hi畛n nh動 th畉 no
                Tr畛u t動畛ng ho叩 d畛 li畛u
                Tr畛u t動畛ng ho叩 thao t叩c
           Ng担n ng畛 l畉p tr狸nh c畉u tr炭c:
                C, Pascal
                Foxpro 

Object Oriented Programing Information Systems Department               8
1.3 L畉p tr狸nh m担un
           V畛i l畉p tr狸nh m担un:
                C叩c th畛 t畛c c坦 chung m畛t ch畛c nng 動畛c nh坦m l畉i
                 v畛i nhau
                Ch動董ng tr狸nh 動畛c chia thnh nhi畛u ph畉n nh畛
                C叩c ph畉n t動董ng t叩c th担ng qua vi畛c g畛i th畛 t畛c
                M畛i m担 un c坦 d畛 li畛u c畛a ri棚ng n坦




Object Oriented Programing Information Systems Department          9
1.4 Nh動畛c i畛m c畛a l畉p tr狸nh truy畛n th畛ng

           Nh動畛c i畛m:
                Ch動董ng tr狸nh kh坦 ki畛m so叩t
                Kh坦 khn trong vi畛c b畛 sung, n但ng c畉p
                 ch動董ng tr狸nh
                Khi thay 畛i, b畛 sung d畛 li畛u d湛ng chung th狸
                 ph畉i thay 畛i g畉n nh動 t畉t c畉 th畛 t畛c/hm li棚n
                 quan
                Kh畉 nng s畛 d畛ng l畉i c叩c o畉n m達 ch動a nhi畛u
                Kh担ng m担 t畉 畉y 畛, trung th畛c h畛 th畛ng trong
                 th畛c t畉

Object Oriented Programing Information Systems Department       10
1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng
           L ph動董ng ph叩p l畉p tr狸nh:
            M担 t畉 ch鱈nh x叩c c叩c 畛i t動畛ng trong th畉 gi畛i
            L畉y 畛i t動畛ng lm n畛n t畉ng x但y d畛ng thu畉t to叩n
            Thi畉t k畉 xoay quanh d畛 li畛u c畛a h畛 th畛ng
            Ch動董ng tr狸nh 動畛c chia thnh c叩c l畛p 畛i t動畛ng
            D畛 li畛u 動畛c 坦ng g坦i, che d畉u v b畉o v畛
            畛i t動畛ng lm vi畛c v畛i nhau qua th担ng b叩o
            Ch動董ng tr狸nh 動畛c thi畉t k畉t theo c叩ch t畛 d動畛i
             l棚n (bottom-up)


Object Oriented Programing Information Systems Department    11
1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng




Object Oriented Programing Information Systems Department   12
2. M畛t s畛 kh叩i ni畛m c董 b畉n
          2.1 H畛 th畛ng h動畛ng 畛i t動畛ng
          2.2 畛i t動畛ng
          2.3 Thu畛c t鱈nh & Ph動董ng th畛c
          2.4 L畛p & L畛p con
          2.5 L畛p tr畛u t動畛ng
          2.6 Truy畛n th担ng i畛p
          2.7 S畛 tr畛u t動畛ng ho叩
          2.8 S畛 坦ng g坦i
          2.9 S畛 k畉 th畛a
          2.10 S畛 a h狸nh
Object Oriented Programing Information Systems Department   13
2.1 H畛 th畛ng h動畛ng 畛i t動畛ng
           L h畛 th畛ng c坦 畉c i畛m sau:
            G畛m t畉p h畛p c叩c 畛i t動畛ng
                           S畛 坦ng g坦i c畛a 2 thnh ph畉n:
                                       D畛 li畛u (thu畛c t鱈nh c畛a 畛i t動畛ng)
                                       C叩c thao t叩c tr棚n d畛 li畛u
            C叩c 畛i t動畛ng c坦 th畛 k畉 th畛a c叩c 畉c t鱈nh c畛a
             畛i t動畛ng kh叩c
            Ho畉t 畛ng th担ng qua s畛 t動董ng t叩c gi畛a c叩c 畛i
             t動畛ng nh畛 c董 ch畉 truy畛n th担ng i畛p
                           Th担ng b叩o
                           G畛i & nh畉n th担ng b叩o

Object Oriented Programing Information Systems Department                   14
2.2 畛i t動畛ng (Object)
           L kh叩i ni畛m tr畛u t動畛ng ph畉n 叩nh c叩c th畛c
            th畛 trong th畉 gi畛i th畛c
            C坦 th畛 l m畛t th畛c th畛 v畉t l箪
            C坦 th畛 l m畛t kh叩i ni畛m tr畛u t動畛ng
           動畛c 畛nh ngh挑a l s畛 th畛 hi畛n c畛a m畛t
            l畛p
           Ch鱈nh l c叩c th畛c th畛 trong h畛 th畛ng
            h動畛ng 畛i t動畛ng
           M畛t 畛i t動畛ng l s畛 坦ng g坦i 2 thnh ph畉n:
            Tr畉ng th叩i (state) hay d畛 li畛u
            C叩c 畛ng x畛 (behavior) hay hnh vi, thao t叩c
Object Oriented Programing Information Systems Department   15
2.3 Thu畛c t鱈nh & ph動董ng th畛c
           Thu畛c t鱈nh bao g畛m:
            H畉ng, bi畉n
            Tham s畛 n畛i t畉i
           Thu畛c t鱈nh 動畛c x叩c 畛nh ki畛u, g畛m:
            Ki畛u c畛 i畛n
            Ki畛u do ng動畛i d湛ng 畛nh ngh挑a
           Ph動董ng th畛c l:
            C叩c hm n畛i t畉i c畛a 畛i t動畛ng
            C坦 ki畛u tr畉 v畛
            T棚n g畛i kh叩c: hm thnh vi棚n
Object Oriented Programing Information Systems Department   16
2.4 L畛p (Class) & L畛p con (SubClass)
           L畛p: l t畉p h畛p c叩c 畛i t動畛ng c坦 c湛ng
            thu畛c t鱈nh v hnh vi
           L b畉n thi畉t k畉 ho畉c b畉n m畉u m担 t畉 m畛t
            c畉u tr炭c d畛 li畛u g畛m:
            C叩c thnh ph畉n d畛 li畛u
            C叩c ph動董ng th畛c
           L畛p 動畛c s畛 d畛ng nh動 ki畛u d畛 li畛u ng動畛i
            d湛ng 畛nh ngh挑a
           L畛p con:
            L l畛p th担ng th動畛ng
            C坦 th棚m t鱈nh ch畉t k畉 th畛a 畉c t鱈nh c畛a l畛p kh叩c
Object Oriented Programing Information Systems Department     17
2.5 L畛p tr畛u t動畛ng
           L l畛p m n坦 kh担ng th畛 tr畛 thnh m畛t l畛p
            th畛c t畉 no
           動畛c thi畉t k畉 nh畉m t畉o ra l畛p c坦 畉c t鱈nh
            t畛ng qu叩t
           B畉n th但n n坦 ch動a c坦 箪 ngh挑a n棚n ch動a th畛
            vi畉t m達 cho 畛i t動畛ng
           V鱈 d畛:
            L畛p h狸nh ph畉ng
            L畛p 畛ng v畉t


Object Oriented Programing Information Systems Department   18
2.6 Truy畛n th担ng i畛p
           Th担ng i畛p:
            L ph動董ng ti畛n 畛 畛i t動畛ng ny chuy畛n y棚u c畉u t畛i 畛i
             t動畛ng kh叩c.
           M畛t th担ng i畛p bao g畛m:
            Handle c畛a 畛i t動畛ng 鱈ch (畛i t動畛ng ch畛)
            T棚n ph動董ng th畛c c畉n th畛c hi畛n
            C叩c th担ng tin c畉n thi畉t kh叩c (tham s畛)
           H畛 th畛ng y棚u c畉u 畛i t動畛ng th畛c hi畛n ph動董ng
            th畛c nh動 sau:
            G畛i th担ng b叩o v tham s畛 cho 畛i t動畛ng
            Ki畛m tra t鱈nh h畛p l畛 c畛a th担ng b叩o
            G畛i th畛c hi畛n hm t動董ng 畛ng ph動董ng th畛c
Object Oriented Programing Information Systems Department            19
2.7 S畛 tr畛u t動畛ng ho叩
           Kh叩i ni畛m:
            L kh畉 nng b畛 qua hay kh担ng 畛 箪 t畛i c叩c
             thnh ph畉n kh担ng quan tr畛ng.
           C叩c lo畉i tr畛u t動畛ng ho叩:
            Tr畛u t動畛ng ho叩 d畛 li畛u: kh担ng quan t但m c叩c chi
             ti畉t kh担ng quan tr畛ng b棚n trong
            Tr畛u t動畛ng ho叩 ch畛c nng: kh担ng quan t但m lm
             th畉 no 畛 th畛c hi畛n c担ng vi畛c
           T坦m l畉i:
            Ch畛 quan t但m t畛i 畉c i畛m quan tr畛ng
            B畛 qua c叩c chi ti畉t kh担ng li棚n quan

Object Oriented Programing Information Systems Department    20
2.8 S畛 坦ng g坦i
           Kh叩i ni畛m:
            L c董 ch畉 rng bu畛c d畛 li畛u v c叩c thao t叩c tr棚n
             d畛 li畛u thnh th畛 th畛ng nh畉t.
           坦ng g坦i g畛m:
            Bao g坦i: ng動畛i d湛ng giao ti畉p v畛i h畛 th畛ng qua
             giao di畛n
            Che d畉u: ngn ch畉n c叩c thao t叩c kh担ng 動畛c
             ph辿p t畛 b棚n ngoi
           働u i畛m:
            Qu畉n l箪 s畛 thay 畛i
            B畉o v畛 d畛 li畛u

Object Oriented Programing Information Systems Department      21
2.9 S畛 k畉 th畛a
           Kh叩i ni畛m:
            Kh畉 nng cho ph辿p x但y d畛ng l畛p m畛i 動畛c th畛a
             h動畛ng c叩c thu畛c t鱈nh c畛a l畛p 達 c坦
           畉c i畛m:
            L畛p nh畉n 動畛c c坦 th畛 b畛 sung c叩c thnh ph畉n
            Ho畉c 畛nh ngh挑a l c叩c thu畛c t鱈nh c畛a l畛p cha
           C叩c lo畉i k畉 th畛a:
            董n k畉 th畛a
            a k畉 th畛a


Object Oriented Programing Information Systems Department   22
2.10 S畛 a h狸nh
           Kh叩i ni畛m:
            Kh畉 nng 動a m畛t ph動董ng th畛c c坦 c湛ng t棚n
             trong c叩c l畛p con
           Th畛c hi畛n b畛i:
            畛nh ngh挑a l畉i
            N畉p ch畛ng
           C董 ch畉 d畛a tr棚n s畛 k畉t g叩n:
            K畉t g叩n s畛m
            K畉t g叩n mu畛n


Object Oriented Programing Information Systems Department   23
3. C叩c b動畛c thi畉t k畉 ch動董ng tr狸nh OOP

           C叩c b動畛c ch鱈nh:
            X叩c 畛nh c叩c d畉ng 畛i t動畛ng (l畛p)
            T狸m d畛 li畛u d湛ng chung, chia x畉
            X叩c 畛nh l畛p c董 s畛 d畛a vo d畛 li畛u d湛ng
             chung
            X但y d畛ng l畛p d畉n xu畉t t畛 l畛p c董 s畛




Object Oriented Programing Information Systems Department   24
4. 働u i畛m c畛a OOP
           働u i畛m ch鱈nh:
            Lo畉i b畛 c叩c o畉n m達 l畉p l畉i
            T畉o ra c叩c ch動董ng tr狸nh an ton, b畉o m畉t
            D畛 dng m畛 r畛ng v n但ng c畉p
            R炭t ng畉n th畛i gian x但y d畛ng h畛 th畛ng
            Tng nng xu畉t v hi畛u qu畉 h董n
            Ch動董ng tr狸nh 動畛c thi畉t k畉 theo 炭ng qui
             tr狸nh


Object Oriented Programing Information Systems Department   25
5. M畛t s畛 ng担n ng畛 OOP
           H畉u h畉t c叩c ng担n ng畛 l畉p tr狸nh 畛u h畛
            tr畛 OOP, c坦 th畛 chia thnh 2 lo畉i:
            Ng担n ng畛 h畛 tr畛 h動畛ng 畛i t動畛ng:
                           Object C, Pascal, C++, Delphi
            Ng担n ng畛 h動畛ng 畛i t動畛ng:
                           SmallTalk, JAVA
           M畛t s畛 ng担n ng畛 OOPhi畛n nay:
            Visual C++
            VB.NET, C#...
Object Oriented Programing Information Systems Department   26
6. 畛ng d畛ng c畛a OOP
           D湛ng 畛 ph叩t tri畛n ph畉n m畛m trong
            nhi畛u l挑nh v畛c kh叩c nhau:
            V鱈 d畛: h畛 i畛u hnh Windows
           L挑nh v畛c ch鱈nh:
            H畛 th畛ng th畛i gian th畛c
            C董 s畛 d畛 li畛u h動畛ng 畛i t動畛ng
            H畛 si棚u vn b畉n, a ph動董ng ti畛n
            Tr鱈 tu畛 nh但n t畉o
            L畉p tr狸nh song song, m畉ng n董ron 
Object Oriented Programing Information Systems Department   27
Bi t畉p
   S畛 d畛ng TC++ 畛 l畉p tr狸nh:
   1. T狸m Min, Max c畛a d達y n s畛 nguy棚n, th畛c
   2. T鱈nh t畛ng S=1+1/2++1/n
   3. S畉p x畉p d達y n s畛 nguy棚n, th畛c b畉ng c叩c ph動董ng ph叩p:
       Selection, Insert, Bubble, Quick sort, merge sort
   4. Qu畉n l箪 danh s叩ch n sinh vi棚n th担ng tin g畛m: h畛 t棚n, ngy
       sinh, gt, to叩n, l箪, h坦a, tb.
   Vi畉t c叩c hm/th畛 t畛c nh畉p danh s叩ch, in danh s叩ch, s畉p x畉p
       theo h畛 t棚n, tb




Object Oriented Programing Information Systems Department        28
Qui c叩ch n畛p bi
   G畛i Email t畛i 畛a ch畛: sanghv@gmail.com
   Ti棚u 畛 (Subject):
   [L畛p][BT1][Ho_va_Ten][Ngy sinh]
   V鱈 d畛:
   [K44/41.01][BT1][Nguyen_Van_A][xx/xx/xxxx]
   鱈nh k竪m bi lm (n棚n zip l畉i thnh 1 th動 m畛c)




Object Oriented Programing Information Systems Department   29

More Related Content

Chapter 1

  • 1. L畉p tr狸nh h動畛ng 畛i t動畛ng L畉p tr狸nh h動畛ng 畛i t動畛ng v畛i C++ H Vn Sang Khoa HTTT, Academy Of Finance, Hanoi sanghv@hvtc.edu.vn
  • 2. Ch動董ng I Object Oriented Programing Information Systems Department 2
  • 3. Gi畛i thi畛u T畛ng quan L畉p tr狸nh h動畛ng 畛i t動畛ng L畉p tr狸nh 畛nh h動畛ng 畛i t動畛ng Object Oriented Programming (OOP) 動畛c xem l: C叩ch ti畉p c畉n m畛i, hi畛u qu畉 h董n Gi炭p tng nng su畉t D畛 dng b畉o tr狸, s畛a 畛i, n但ng c畉p M畛c 鱈ch: Gi畉m b畛t thao t叩c vi畉t tr狸nh M担 t畉 ch但n th畛c th畉 gi畛i th畛c V畉y OOP kh坦 h畛c hay d畛 h畛c ? Object Oriented Programing Information Systems Department 3
  • 4. 1. T畛ng quan v畛 c叩c k畛 thu畉t l畉p tr狸nh 1.1 L畉p tr狸nh tuy畉n t鱈nh 1.2 L畉p tr狸nh c畉u tr炭c 1.3 L畉p tr狸nh m担un 1.4 Nh動畛c i畛m c畛a l畉p tr狸nh c畉u tr炭c 1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng Object Oriented Programing Information Systems Department 4
  • 5. 1.1 L畉p tr狸nh tuy畉n t鱈nh L畉p tr狸nh tuy畉n t鱈nh : C嘆n g畛i l l畉p tr狸nh phi c畉u tr炭c Gi畉i quy畉t c叩c bi to叩n t動董ng nh畛, 畛i 董n gi畉n 畉c i畛m: Ch畛 g畛m m畛t ch動董ng tr狸nh ch鱈nh G畛m m畛t d達y tu畉n t畛 c叩c c但u l畛nh Ch動董ng tr狸nh ng畉n, 鱈t h董n 100 d嘆ng Object Oriented Programing Information Systems Department 5
  • 6. 1.1 L畉p tr狸nh tuy畉n t鱈nh (ti畉p) Nh動畛c i畛m: Kh担ng s畛 d畛ng l畉i 動畛c c叩c o畉n m達 Kh担ng c坦 kh畉 nng ki畛m so叩t ph畉m vi truy xu畉t d畛 li畛u M畛i d畛 li畛u trong ch動董ng tr狸nh l ton c畛c D畛 li畛u c坦 th畛 b畛 s畛a 畛i 畛 b畉t c畛 v畛 tr鱈 no trong ch動董ng tr狸nh Kh担ng 叩p 畛ng 動畛c vi畛c tri畛n khai ph畉n m畛m Object Oriented Programing Information Systems Department 6
  • 7. 1.2 L畉p tr狸nh c畉u tr炭c Ra 畛i vo nh畛ng nm 70: Ch動董ng tr狸nh 動畛c chia nh畛 thnh ch動董ng tr狸nh con: Th畛 t畛c (Procedure) Hm (Function) C叩c ch動董ng tr狸nh con: 畛c l畉p v畛i nhau v c坦 d畛 li畛u ri棚ng Trao 畛i qua: tham s畛 v bi畉n ton c畛c Object Oriented Programing Information Systems Department 7
  • 8. 1.2 L畉p tr狸nh c畉u tr炭c (ti畉p) Xu畉t hi畛n kh叩i ni畛m tr畛u t動畛ng ho叩 L kh畉 nng quan s叩t s畛 v畉t m: Kh担ng quan t但m t畛i c叩c chi ti畉t kh担ng quan tr畛ng b棚n trong Kh担ng quan t但m t畛i vi畛c th畛c hi畛n nh動 th畉 no Tr畛u t動畛ng ho叩 d畛 li畛u Tr畛u t動畛ng ho叩 thao t叩c Ng担n ng畛 l畉p tr狸nh c畉u tr炭c: C, Pascal Foxpro Object Oriented Programing Information Systems Department 8
  • 9. 1.3 L畉p tr狸nh m担un V畛i l畉p tr狸nh m担un: C叩c th畛 t畛c c坦 chung m畛t ch畛c nng 動畛c nh坦m l畉i v畛i nhau Ch動董ng tr狸nh 動畛c chia thnh nhi畛u ph畉n nh畛 C叩c ph畉n t動董ng t叩c th担ng qua vi畛c g畛i th畛 t畛c M畛i m担 un c坦 d畛 li畛u c畛a ri棚ng n坦 Object Oriented Programing Information Systems Department 9
  • 10. 1.4 Nh動畛c i畛m c畛a l畉p tr狸nh truy畛n th畛ng Nh動畛c i畛m: Ch動董ng tr狸nh kh坦 ki畛m so叩t Kh坦 khn trong vi畛c b畛 sung, n但ng c畉p ch動董ng tr狸nh Khi thay 畛i, b畛 sung d畛 li畛u d湛ng chung th狸 ph畉i thay 畛i g畉n nh動 t畉t c畉 th畛 t畛c/hm li棚n quan Kh畉 nng s畛 d畛ng l畉i c叩c o畉n m達 ch動a nhi畛u Kh担ng m担 t畉 畉y 畛, trung th畛c h畛 th畛ng trong th畛c t畉 Object Oriented Programing Information Systems Department 10
  • 11. 1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng L ph動董ng ph叩p l畉p tr狸nh: M担 t畉 ch鱈nh x叩c c叩c 畛i t動畛ng trong th畉 gi畛i L畉y 畛i t動畛ng lm n畛n t畉ng x但y d畛ng thu畉t to叩n Thi畉t k畉 xoay quanh d畛 li畛u c畛a h畛 th畛ng Ch動董ng tr狸nh 動畛c chia thnh c叩c l畛p 畛i t動畛ng D畛 li畛u 動畛c 坦ng g坦i, che d畉u v b畉o v畛 畛i t動畛ng lm vi畛c v畛i nhau qua th担ng b叩o Ch動董ng tr狸nh 動畛c thi畉t k畉t theo c叩ch t畛 d動畛i l棚n (bottom-up) Object Oriented Programing Information Systems Department 11
  • 12. 1.5 L畉p tr狸nh h動畛ng 畛i t動畛ng Object Oriented Programing Information Systems Department 12
  • 13. 2. M畛t s畛 kh叩i ni畛m c董 b畉n 2.1 H畛 th畛ng h動畛ng 畛i t動畛ng 2.2 畛i t動畛ng 2.3 Thu畛c t鱈nh & Ph動董ng th畛c 2.4 L畛p & L畛p con 2.5 L畛p tr畛u t動畛ng 2.6 Truy畛n th担ng i畛p 2.7 S畛 tr畛u t動畛ng ho叩 2.8 S畛 坦ng g坦i 2.9 S畛 k畉 th畛a 2.10 S畛 a h狸nh Object Oriented Programing Information Systems Department 13
  • 14. 2.1 H畛 th畛ng h動畛ng 畛i t動畛ng L h畛 th畛ng c坦 畉c i畛m sau: G畛m t畉p h畛p c叩c 畛i t動畛ng S畛 坦ng g坦i c畛a 2 thnh ph畉n: D畛 li畛u (thu畛c t鱈nh c畛a 畛i t動畛ng) C叩c thao t叩c tr棚n d畛 li畛u C叩c 畛i t動畛ng c坦 th畛 k畉 th畛a c叩c 畉c t鱈nh c畛a 畛i t動畛ng kh叩c Ho畉t 畛ng th担ng qua s畛 t動董ng t叩c gi畛a c叩c 畛i t動畛ng nh畛 c董 ch畉 truy畛n th担ng i畛p Th担ng b叩o G畛i & nh畉n th担ng b叩o Object Oriented Programing Information Systems Department 14
  • 15. 2.2 畛i t動畛ng (Object) L kh叩i ni畛m tr畛u t動畛ng ph畉n 叩nh c叩c th畛c th畛 trong th畉 gi畛i th畛c C坦 th畛 l m畛t th畛c th畛 v畉t l箪 C坦 th畛 l m畛t kh叩i ni畛m tr畛u t動畛ng 動畛c 畛nh ngh挑a l s畛 th畛 hi畛n c畛a m畛t l畛p Ch鱈nh l c叩c th畛c th畛 trong h畛 th畛ng h動畛ng 畛i t動畛ng M畛t 畛i t動畛ng l s畛 坦ng g坦i 2 thnh ph畉n: Tr畉ng th叩i (state) hay d畛 li畛u C叩c 畛ng x畛 (behavior) hay hnh vi, thao t叩c Object Oriented Programing Information Systems Department 15
  • 16. 2.3 Thu畛c t鱈nh & ph動董ng th畛c Thu畛c t鱈nh bao g畛m: H畉ng, bi畉n Tham s畛 n畛i t畉i Thu畛c t鱈nh 動畛c x叩c 畛nh ki畛u, g畛m: Ki畛u c畛 i畛n Ki畛u do ng動畛i d湛ng 畛nh ngh挑a Ph動董ng th畛c l: C叩c hm n畛i t畉i c畛a 畛i t動畛ng C坦 ki畛u tr畉 v畛 T棚n g畛i kh叩c: hm thnh vi棚n Object Oriented Programing Information Systems Department 16
  • 17. 2.4 L畛p (Class) & L畛p con (SubClass) L畛p: l t畉p h畛p c叩c 畛i t動畛ng c坦 c湛ng thu畛c t鱈nh v hnh vi L b畉n thi畉t k畉 ho畉c b畉n m畉u m担 t畉 m畛t c畉u tr炭c d畛 li畛u g畛m: C叩c thnh ph畉n d畛 li畛u C叩c ph動董ng th畛c L畛p 動畛c s畛 d畛ng nh動 ki畛u d畛 li畛u ng動畛i d湛ng 畛nh ngh挑a L畛p con: L l畛p th担ng th動畛ng C坦 th棚m t鱈nh ch畉t k畉 th畛a 畉c t鱈nh c畛a l畛p kh叩c Object Oriented Programing Information Systems Department 17
  • 18. 2.5 L畛p tr畛u t動畛ng L l畛p m n坦 kh担ng th畛 tr畛 thnh m畛t l畛p th畛c t畉 no 動畛c thi畉t k畉 nh畉m t畉o ra l畛p c坦 畉c t鱈nh t畛ng qu叩t B畉n th但n n坦 ch動a c坦 箪 ngh挑a n棚n ch動a th畛 vi畉t m達 cho 畛i t動畛ng V鱈 d畛: L畛p h狸nh ph畉ng L畛p 畛ng v畉t Object Oriented Programing Information Systems Department 18
  • 19. 2.6 Truy畛n th担ng i畛p Th担ng i畛p: L ph動董ng ti畛n 畛 畛i t動畛ng ny chuy畛n y棚u c畉u t畛i 畛i t動畛ng kh叩c. M畛t th担ng i畛p bao g畛m: Handle c畛a 畛i t動畛ng 鱈ch (畛i t動畛ng ch畛) T棚n ph動董ng th畛c c畉n th畛c hi畛n C叩c th担ng tin c畉n thi畉t kh叩c (tham s畛) H畛 th畛ng y棚u c畉u 畛i t動畛ng th畛c hi畛n ph動董ng th畛c nh動 sau: G畛i th担ng b叩o v tham s畛 cho 畛i t動畛ng Ki畛m tra t鱈nh h畛p l畛 c畛a th担ng b叩o G畛i th畛c hi畛n hm t動董ng 畛ng ph動董ng th畛c Object Oriented Programing Information Systems Department 19
  • 20. 2.7 S畛 tr畛u t動畛ng ho叩 Kh叩i ni畛m: L kh畉 nng b畛 qua hay kh担ng 畛 箪 t畛i c叩c thnh ph畉n kh担ng quan tr畛ng. C叩c lo畉i tr畛u t動畛ng ho叩: Tr畛u t動畛ng ho叩 d畛 li畛u: kh担ng quan t但m c叩c chi ti畉t kh担ng quan tr畛ng b棚n trong Tr畛u t動畛ng ho叩 ch畛c nng: kh担ng quan t但m lm th畉 no 畛 th畛c hi畛n c担ng vi畛c T坦m l畉i: Ch畛 quan t但m t畛i 畉c i畛m quan tr畛ng B畛 qua c叩c chi ti畉t kh担ng li棚n quan Object Oriented Programing Information Systems Department 20
  • 21. 2.8 S畛 坦ng g坦i Kh叩i ni畛m: L c董 ch畉 rng bu畛c d畛 li畛u v c叩c thao t叩c tr棚n d畛 li畛u thnh th畛 th畛ng nh畉t. 坦ng g坦i g畛m: Bao g坦i: ng動畛i d湛ng giao ti畉p v畛i h畛 th畛ng qua giao di畛n Che d畉u: ngn ch畉n c叩c thao t叩c kh担ng 動畛c ph辿p t畛 b棚n ngoi 働u i畛m: Qu畉n l箪 s畛 thay 畛i B畉o v畛 d畛 li畛u Object Oriented Programing Information Systems Department 21
  • 22. 2.9 S畛 k畉 th畛a Kh叩i ni畛m: Kh畉 nng cho ph辿p x但y d畛ng l畛p m畛i 動畛c th畛a h動畛ng c叩c thu畛c t鱈nh c畛a l畛p 達 c坦 畉c i畛m: L畛p nh畉n 動畛c c坦 th畛 b畛 sung c叩c thnh ph畉n Ho畉c 畛nh ngh挑a l c叩c thu畛c t鱈nh c畛a l畛p cha C叩c lo畉i k畉 th畛a: 董n k畉 th畛a a k畉 th畛a Object Oriented Programing Information Systems Department 22
  • 23. 2.10 S畛 a h狸nh Kh叩i ni畛m: Kh畉 nng 動a m畛t ph動董ng th畛c c坦 c湛ng t棚n trong c叩c l畛p con Th畛c hi畛n b畛i: 畛nh ngh挑a l畉i N畉p ch畛ng C董 ch畉 d畛a tr棚n s畛 k畉t g叩n: K畉t g叩n s畛m K畉t g叩n mu畛n Object Oriented Programing Information Systems Department 23
  • 24. 3. C叩c b動畛c thi畉t k畉 ch動董ng tr狸nh OOP C叩c b動畛c ch鱈nh: X叩c 畛nh c叩c d畉ng 畛i t動畛ng (l畛p) T狸m d畛 li畛u d湛ng chung, chia x畉 X叩c 畛nh l畛p c董 s畛 d畛a vo d畛 li畛u d湛ng chung X但y d畛ng l畛p d畉n xu畉t t畛 l畛p c董 s畛 Object Oriented Programing Information Systems Department 24
  • 25. 4. 働u i畛m c畛a OOP 働u i畛m ch鱈nh: Lo畉i b畛 c叩c o畉n m達 l畉p l畉i T畉o ra c叩c ch動董ng tr狸nh an ton, b畉o m畉t D畛 dng m畛 r畛ng v n但ng c畉p R炭t ng畉n th畛i gian x但y d畛ng h畛 th畛ng Tng nng xu畉t v hi畛u qu畉 h董n Ch動董ng tr狸nh 動畛c thi畉t k畉 theo 炭ng qui tr狸nh Object Oriented Programing Information Systems Department 25
  • 26. 5. M畛t s畛 ng担n ng畛 OOP H畉u h畉t c叩c ng担n ng畛 l畉p tr狸nh 畛u h畛 tr畛 OOP, c坦 th畛 chia thnh 2 lo畉i: Ng担n ng畛 h畛 tr畛 h動畛ng 畛i t動畛ng: Object C, Pascal, C++, Delphi Ng担n ng畛 h動畛ng 畛i t動畛ng: SmallTalk, JAVA M畛t s畛 ng担n ng畛 OOPhi畛n nay: Visual C++ VB.NET, C#... Object Oriented Programing Information Systems Department 26
  • 27. 6. 畛ng d畛ng c畛a OOP D湛ng 畛 ph叩t tri畛n ph畉n m畛m trong nhi畛u l挑nh v畛c kh叩c nhau: V鱈 d畛: h畛 i畛u hnh Windows L挑nh v畛c ch鱈nh: H畛 th畛ng th畛i gian th畛c C董 s畛 d畛 li畛u h動畛ng 畛i t動畛ng H畛 si棚u vn b畉n, a ph動董ng ti畛n Tr鱈 tu畛 nh但n t畉o L畉p tr狸nh song song, m畉ng n董ron Object Oriented Programing Information Systems Department 27
  • 28. Bi t畉p S畛 d畛ng TC++ 畛 l畉p tr狸nh: 1. T狸m Min, Max c畛a d達y n s畛 nguy棚n, th畛c 2. T鱈nh t畛ng S=1+1/2++1/n 3. S畉p x畉p d達y n s畛 nguy棚n, th畛c b畉ng c叩c ph動董ng ph叩p: Selection, Insert, Bubble, Quick sort, merge sort 4. Qu畉n l箪 danh s叩ch n sinh vi棚n th担ng tin g畛m: h畛 t棚n, ngy sinh, gt, to叩n, l箪, h坦a, tb. Vi畉t c叩c hm/th畛 t畛c nh畉p danh s叩ch, in danh s叩ch, s畉p x畉p theo h畛 t棚n, tb Object Oriented Programing Information Systems Department 28
  • 29. Qui c叩ch n畛p bi G畛i Email t畛i 畛a ch畛: sanghv@gmail.com Ti棚u 畛 (Subject): [L畛p][BT1][Ho_va_Ten][Ngy sinh] V鱈 d畛: [K44/41.01][BT1][Nguyen_Van_A][xx/xx/xxxx] 鱈nh k竪m bi lm (n棚n zip l畉i thnh 1 th動 m畛c) Object Oriented Programing Information Systems Department 29