Ngon ngu lap trinh c++ full pdf

186 662 0
Ngon ngu lap trinh c++ full pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sách Ngôn ngữ lập trình c++ full pdf

H C VI N CƠNG NGH B U CHÍNH VI N THƠNG NGƠN NG L P TRÌNH C++ (Dùng cho sinh viên h đào t o đ i h c t xa) L u hành n i b HÀ N I - 2006 NGƠN NG L P TRÌNH C++ PGS.TS Tr n ình Qu KS Nguy n M nh Hùng L p trình nâng cao v i C++ L p trình h ng đ i t ng v i C++ GI I THI U C++ ngôn ng l p trình h ng đ i t ng đ c m r ng t ngôn ng C Do v y, C++ có u m k th a đ c m m nh truy n th ng c a ngôn ng C nh uy n chuy n, t ng thích v i thi t b ph n c ng Hi n nay, C++ m t ngơn ng l p trình ph bi n, đ c gi ng d y t i tr ng đ i h c n c th gi i đ c bi t đ c s d ng r ng rãi cho nhu c u phát tri n c a công nghi p ph n m m hi n Tài li u không nh ng nh m gi i thi u cho sinh viên ngôn ng l p trình C++, mà cịn mong mu n qua sinh viên có th hi u đ c t t ng c a ph ng pháp l p trình h ng đ i t ng nói chung N i dung c a tài li u bao g m hai ph n chính: • Ph n th nh t l p trình nâng cao v i C++, bao g m l p trình C++ v i tr m ng, ki u d li u có c u trúc thao tác vào t p • Ph n th hai l p trình h ng đ i t ng v i C++, bao g m đ nh ngh a thao tác l p đ i t ng, tính k th a t ng ng b i C++, cách s d ng m t s l p c b n th vi n C++ N i dung tài li u đ Ch c t ch c thành ch ng: ng 1: Gi i thi u t ng quan v ph ng pháp l p trình Trình bày ph ng pháp l p trình n tính, l p trình c u trúc đ c bi t, làm quen v i khái ni m l p trình h ng đ i t ng Ch ng 2: Con tr m ng Trình bày cách khai báo s d ng ki u tr m ng ngôn ng C++ Ch ng 3: Ki u d li u có c u trúc Trình bày cách bi u di n cài đ t m t s ki u c u trúc d li u tr u t ng C++ Sau đó, trình bày cách áp d ng ki u d li u ng d ng c th Ch ng 4: Vào t p Trình bày thao tác đ c, ghi d li u t p tin khác nhau: t p tin v n b n t p tin nh phân Trình bày cách truy nh p t p tin tr c ti p Ch ng 5: L p đ i t ng Trình bày khái ni m m đ u cho l p trình h ng đ i t ng C++, bao g m cách khai báo s d ng l p, thu c tính c a l p; cách kh i t o hu b đ i t ng, quy t c truy nh p đ n thành ph n c a l p Ch ng 6: Tính k th a t ng ng b i Trình bày cách th c k th a gi a l p C++, nguyên t c truy nh p k th a, đ nh ngh a n p ch ng ph ng th c tính đa hình l p trình h ng đ i t ng v i C++ Ch ng 7: M t s l p quan tr ng Trình bày cách s d ng m t s l p có s n th vi n chu n c a C++, bao g m l p: l p t p h p, l p chu i, l p ng n x p, l p hàng đ i l p danh sách liên k t đ c đ c cu n sách này, sinh viên ph i quen bi t khái ni m c b n v l p trình, có m t s k n ng l p trình v i ngôn ng C ho c C++ Cu n sách c ng có th dùng tài li u tham kh o cho nh ng sinh viên mu n tìm hi u k thu t l p trình nâng cao l p trình h ng đ i t ng v i C++ Cu n sách có kèm theo m t đ a ch l y làm minh ho t p cu n sách ng trình ch a tồn b ch ng trình đ c M c dù tác gi có nhi u c g ng vi c biên so n tài li u này, song không th tránh kh i nh ng thi u sót R t mong nh n đ c nh ng ý ki n đóng góp quý báu t sinh viên b n đ ng nghi p Ch ng 1: Gi i thi u v ph ng pháp l p trình CH NG GI I THI U V CÁC PH N i dung c a ch ng t p trung trình bày ph • Ph ng pháp l p trình n tính • Ph ng pháp l p trình h ng c u trúc • Ph ng pháp l p trình h ng đ i t NG PHÁP L P TRÌNH ng pháp l p trình: ng 1.1 L P TRÌNH TUY N TÍNH c tr ng c b n c a l p trình n tính t theo l i tu n t Ch ng trình s đ c th c hi n theo th t t đ u đ n cu i, l nh k ti p l nh cho đ n k t thúc ch ng trình c tr ng L p trình n tính có hai đ c tr ng: • • n gi n: ch ng trình đ c ti n hành đ n gi n theo l i tu n t , không ph c t p n lu ng: ch có m t lu ng cơng vi c nh t, công vi c đ lu ng c th c hi n tu n t Tính ch t • u m: Do tính đ n gi n, l p trình n tính đ gi n có u m d hi u • Nh c m: V i ng d ng ph c t p, ng gi i quy t c ng d ng cho ch ng trình đ n i ta khơng th dùng l p trình n tính đ Ngày nay, l p trình n tính ch t n t i ph m vi modul nh nh t c a ph ng pháp l p trình khác Ví d m t ch ng trình c a l p trình c u trúc, l nh c ng đ c th c hi n theo tu n t t đ u đ n cu i ch ng trình 1.2 L P TRÌNH H 1.2.1 NG C U TRÚC c tr ng c a l p trình h ng c u trúc Trong l p trình h ng c u trúc, ch ng trình đ c chia nh thành ch ng trình m i ch ng trình th c hi n m t công vi c xác đ nh Ch ng trình s g i đ n ch ng trình theo m t gi i thu t, ho c m t c u trúc đ c xác đ nh ch ng trình Các ngơn ng l p trình c u trúc ph bi n Pascal, C C++ Riêng C++ vi c có đ c tr ng c a l p trình c u trúc k th a t C, cịn có đ c tr ng c a l p trình h ng đ i t ng Cho nên C++ cịn đ c g i ngơn ng l p trình n a c u trúc, n a h ng đ i t ng c tr ng c tr ng c b n nh t c a l p trình c u trúc th hi n m i quan h : Ch ng 1: Gi i thi u v ph Ch ng pháp l p trình ng trình = C u trúc d li u + Gi i thu t Trong đó: • C u trúc d li u cách t ch c d li u cho vi c x lý b i m t hay nhi u ch • Gi i thu t m t quy trình đ th c hi n m t công vi c xác đ nh Trong ch ng trình ng trình, gi i thu t có quan h ph thu c vào c u trúc d li u: • M t c u trúc d li u ch phù h p v i m t s h n ch gi i thu t • N u thay đ i c u trúc d li u ph i thay đ i gi i thu t cho phù h p • M t gi i thu t th ng ph i kèm v i m t c u trúc d li u nh t đ nh Tính ch t ng trình có th đ • M i ch • Các ch ng trình có th đ c g i đ n đ th c hi n theo m t th t b t kì, tu thu c vào gi i thu t ch ng trình mà khơng ph thu c vào th t khai báo c a ch ng trình • Các ngơn ng l p trình c u trúc cung c p m t s c u trúc l nh u n ch c g i th c hi n nhi u l n m t ch ng trình ng trình u m • Ch • T gi i thu t rõ ràng ng trình sáng s a, d hi u, d theo dõi c m Nh • L p trình c u trúc không h tr m nh vi c s d ng l i mã ngu n: Gi i thu t ph thu c ch t ch vào c u trúc d li u, đó, thay đ i c u trúc d li u, ph i thay đ i gi i thu t, ngh a ph i vi t l i ch ng trình • Khơng phù h p v i ph n m m l n: t c u trúc v i gi i thu t ch phù h p v i toán nh , n m ph m vi m t modul c a ch ng trình V i d án ph n m m l n, l p trình c u trúc t khơng hi u qu vi c gi i quy t m i quan h v mô gi a modul c a ph n m m V nđ V n đ c b n c a l p trình c u trúc b ng cách đ phân chia ch ng trình thành ch ng trình cho phù h p v i yêu c u, ch c n ng m c đích c a m i tốn Thơng th ng, đ phân rã tốn l p trình c u trúc, ng i ta s d ng ph ng pháp thi t k xu ng (top-down) 1.2.2 Ph ng pháp thi t k xu ng (top-down) Ph ng pháp thi t k top-down ti p c n toán theo h ng t xu ng d i, t t ng qúat đ n chi ti t Theo đó, m t tốn đ c chia thành toán nh h n M i toán l i đ c chia nh ti p, n u có th , thành tốn nh h n n a Q trình cịn đ c g i q trình làm m n d n Quá trình s d ng l i tốn khơng c n chia nh thêm Ch ng 1: Gi i thi u v ph ng pháp l p trình n a Ngh a m i toán đ u có th gi i quy t b ng m t ch thu t đ n gi n ng trình v i m t gi i Ví d , s d ng ph ng pháp top-down đ gi i quy t toán xây m t c n nhà m i Chúng ta có th phân rã tốn theo b c nh sau: • m c th nh t, chia toán xây nhà thành tốn nh h n nh làm móng, đ c t, đ tr n, xây t ng, l p mái • m c th hai, phân rã công vi c m c th nh t nh vi c làm móng nhà có th phân rã ti p thành cơng vi c đào móng, gia c n n, làm khung s t, đ bê tong; công vi c đ c t đ c ph n rã thành … • m c th ba, phân rã công vi c c a m c th hai nh vi c đào móng có th phân chia ti p thành cơng vi c nh đo đ c, c m m c, ch ng dây, đào ki m tra móng Vi c gia c n n đ c phân rã thành … Q trình phân rã có th d ng m c này, b i cơng vi c thu đ c nh đo đ c, c m m c, ch ng dây, đào… có th th c hi n đ c ngay, không c n chia nh thêm n a L u ý: • Cùng s d ng ph ng pháp top-down v i m t tốn, nh ng có th cho nhi u k t qu khác Nguyên nhân s khác tiêu chí đ phân rã m t tốn thành tốn Ví d , v n áp d ng ph ng pháp top-down đ gi i quy t toán xây nhà, nh ng n u s d ng m t cách khác đ phân chia tốn, ta có th thu đ c k t qu khác bi t so v i ph ng pháp ban đ u: • m c th nh t, chia toán xây nhà thành toán nh h n nh làm ph n g , làm ph n s t, làm ph n bê tông làm ph n g ch • m c th hai, phân rã công vi c m c th nh t làm ph n g có th chia thành công vi c nh x g , gia công g , t o khung, l p vào nhà Vi c làm s t có th chia nh thành… Rõ ràng, v i cách làm m n th này, ta s thu đ hi n ph n 1.3 L P TRÌNH H 1.3.1 L p trình h Trong l p trình h NG ng đ i t ng đ i t IT c m t k t qu khác h n v i cách th c th c NG ng ng: ng trình đ i t ng sau tr u t ng hố đ i • Ng i ta coi th c th ch t ng thành l p đ i t ng • D li u đ c t ch c thành thu c tính c a l p Ngu i ta ng n ch n vi c thay đ i tu ti n d li u ch ng trình b ng cách gi i h n truy nh p nh ch cho phép truy nh p d li u thông qua đ i t ng, thông qua ph ng th c mà đ i t ng đ c cung c p… • Quan h gi a đ i t ng quan h ngang hàng ho c quan h k th a: N u l p B k th a t l p A A đ c g i l p c s B đ c g i l p d n xu t Ch ng 1: Gi i thi u v ph ng pháp l p trình Ngơn ng l p trình h ng đ i t ng ph bi n hi n Java, C++, C# M c dù C++ c ng có nh ng đ c tr ng c b n c a l p trình h ng đ i t ng nh ng v n khơng ph i ngơn ng l p trình thu n h ng đ i t ng c tr ng L p trình h ng đ i t ng có hai đ c tr ng c b n: • óng gói d li u: d li u ln đ c t ch c thành thu c tính c a l p đ i t truy nh p đ n d li u ph i thông qua ph ng th c c a đ i t ng l p • S d ng l i mã ngu n: vi c s d ng l i mã ngu n đ c th hi n thông qua c ch k th a C ch cho phép l p đ i t ng có th k th a t l p đ i t ng khác Khi đó, l p d n xu t, có th s d ng ph ng th c (mã ngu n) c a l p c s mà không c n ph i đ nh ngh a l i ng Vi c u m L p trình h ng đ i t ng có m t s u m n i b t: • Khơng cịn nguy c d li u b thay đ i t ch ng trình Vì d li u đ c đóng gói vào đ i t ng N u mu n truy nh p vào d li u ph i thông qua ph ng th c đ c cho phép c a đ i t ng • Khi thay đ i c u trúc d li u c a m t đ i t ng, không c n thay đ i mã ngu n c a đ i t ng khác, mà ch c n thay đ i m t s thành ph n c a đ i t ng d n xu t i u h n ch s nh h ng x u c a vi c thay đ i d li u đ n đ i t ng khác ch ng trình • Có th s d ng l i mã ngu n, ti t ki m tài nguyên, chi phí th i gian Vì nguyên t c k th a cho phép l p d n xu t s d ng ph ng th c t l p c s nh nh ng ph ng th c c a nó, mà khơng c n thi t ph i đ nh ngh a l i • Phù h p v i d án ph n m m l n, ph c t p 1.3.2 M t s khái ni m c b n Trong m c này, s làm quen v i m t s khái ni m c b n l p trình h t ng Bao g m: • Khái ni m đ i t • Khái ni m đóng gói d li u (encapsulation) • Khái ni m k th a (inheritance) • Khái ni m đa hình (polymorphism) it ng đ i ng (object) ng (Object) Trong l p trình h ng đ i t ng, đ i t ng đ c coi đ n v c b n nh nh t Các d di u cách x lí ch thành ph n c a đ i t ng mà không đ c coi th c th M t đ i t ng ch a d li u c a riêng nó, đ ng th i có ph ng th c (hành đ ng) thao tác d li u đó: it ng = d li u + ph ng th c Ch ng 1: Gi i thi u v ph ng pháp l p trình L p (Class) Khi có nhi u đ i t ng gi ng v m t d li u ph g i chung l p: • • L p s tr u t it ng hoá c a đ i t ng th c, chúng đ c nhóm l i v i ng ng m t th hi n c a l p óng gói d li u (Encapsulation) • Các d li u đ riêng c đóng gói vào đ i t • Khơng th truy nh p đ n d li u m t cách t nh l p trình c u trúc • Mu n truy nh p đ n d li u đ c b o v , ph i thông qua đ i t ng, ngh a ph i s d ng ph ng th c mà đ i t ng cung c p m i có th truy nh p đ n d li u c a đ i t ng ng M i d li u có m t ph m vi truy nh p Tuy nhiên, C++ ch ngơn ng l p trình n a đ i t ng, C++ v n cho phép đ nh ngh a bi n d li u hàm t do, k t qu k th a t ngôn ng C, m t ngôn ng l p trình thu n c u trúc K th a (Inheritance) Tính k th a c a l p trình h ng đ i t ng cho phép m t l p có th k t i Khi đó, l p m i có th s d ng d li u ph ng th c c a l Ngoài ra, l p d n xu t cịn có th b sung thêm m t s d li u ph th a thay đ i d li u c a m t l p, ch c n thay đ i ph ng th mà không c n thay đ i l p d n xu t th a t m t s l p t n p c s nh c a ng th c u m c a k c ph m vi l p c s a hình (Polymorphsim) a hình khái ni m ln kèm v i k th a Do tính k th a, m t l p có th s d ng l i ph ng th c c a l p khác Tuy nhiên, n u c n thi t, l p d n xu t c ng có th đ nh ngh a l i m t s ph ng th c c a l p c s ó s n p ch ng ph ng th c k th a Nh s n p ch ng ph ng th c này, ta ch c n g i tên ph ng th c b n p ch ng t đ i t ng mà không c n quan tâm đ i t ng c a l p Ch ng trình s t đ ng ki m tra xem đ i t ng thu c ki u l p c s hay thu c l p d n xu t, sau s g i ph ng th c t ng ng v i l p ó tính đa hình 1.3.3 L p trình h ng đ i t ng C++ Vì C++ m t ngơn ng l p trình đ c m r ng t m t ngơn ng l p trình c u trúc C nên C++ đ c xem ngơn ng l p trình n a h ng đ i t ng, n a h ng c u trúc Nh ng đ c tr ng h ng đ i t ng c a C++ • Cho phép đ nh ngh a l p đ i t • Cho phép đóng gói d li u vào l p đ i t ng Cho phép đ nh ngh a ph m vi truy nh p d li u c a l p b ng t khoá ph m vi: public, protected, private ng ... TRÌNH C++ PGS.TS Tr n ình Qu KS Nguy n M nh Hùng L p trình nâng cao v i C++ L p trình h ng đ i t ng v i C++ GI I THI U C++ ngơn ng l p trình h ng đ i t ng đ c m r ng t ngơn ng C Do v y, C++ có... ng C++ Vì C++ m t ngơn ng l p trình đ c m r ng t m t ngôn ng l p trình c u trúc C nên C++ đ c xem ngơn ng l p trình n a h ng đ i t ng, n a h ng c u trúc Nh ng đ c tr ng h ng đ i t ng c a C++. .. ng b i Trình bày cách th c k th a gi a l p C++, nguyên t c truy nh p k th a, đ nh ngh a n p ch ng ph ng th c tính đa hình l p trình h ng đ i t ng v i C++ Ch ng 7: M t s l p quan tr ng Trình bày

Ngày đăng: 05/10/2013, 17:38

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan