1. Trang chủ
  2. » Khoa Học Tự Nhiên

lap trinh c++ c++ buu chinh vien thong cuuduongthancong com

186 4 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 186
Dung lượng 1,33 MB

Nội dung

lập trình c++,hvcnbcvt 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 CuuDuongThanCong com https fb comtail.Đã được chỉnh sửa và nâng cấp.

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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com ng đ i t ng v i C++ https://fb.com/tailieudientucntt CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 : CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 toá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 toá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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ch ng 1: Gi i thi u v ph ng pháp l p trình n a Ngh a m i tố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ã toán theo b c nh sau: • m c th nh t, chia tốn xây nhà thành toá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 toán thành toá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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 đ 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 ngun, 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ch ng 7: M t s l p quan tr ng cout

Ngày đăng: 16/12/2022, 19:33

w