Bai giang mon ngon ngu lap trinh c++ cua tac gia tran dinh que va tac gia nguyen manh hung

186 255 0
Bai giang mon ngon ngu lap trinh c++ cua tac gia tran dinh que va tac gia nguyen manh hung

Đ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

TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 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 HÀ NỘI - 2006 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí 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++ TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí GIỚI THIỆU C++ ngôn ngữ lập trình hướng đối tượng mở rộng từ ngôn ngữ C Do vậy, C++ có ưu điểm kế thừa điểm mạnh truyền thống ngôn ngữ C uyển chuyển, tương thích với thiết bị phần cứng Hiện nay, C++ ngôn ngữ lập trình phổ biến, giảng dạy trường đại học nước giới đặc biệt sử dụng rộng rãi cho nhu cầu phát triển công nghiệp phần mềm Tài liệu nhằm giới thiệu cho sinh viên ngôn ngữ lập trình C++, mà mong muốn qua sinh viên hiểu tư tưởng phương pháp lập trình hướng đối tượng nói chung Nội dung tài liệu bao gồm hai phần chính: • Phần thứ 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 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 số lớp thư viện C++ Nội dung tài liệu tổ chức thành chương: Chương 1: Giới thiệu tổng quan phương pháp lập trình Trình bày phương pháp lập trình tuyế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 liệu có cấu trúc Trình bày cách biểu diễn cài đặt số kiểu cấu trúc liệu trừu tượng C++ Sau đó, trình bày cách áp dụng kiểu liệu ứng dụng cụ thể Chương 4: Vào tệp Trình bày thao tác đọc, ghi liệu tệp tin khác nhau: tệp tin vă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 lớp; cách khởi tạo huỷ bỏ đối tượng, quy tắc truy nhập đến thành phần 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 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 số lớp có sẵn thư viện chuẩn 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 sách này, sinh viên phải quen biết khái niệm lập trình, có số kỹ lập trình với ngôn ngữ C C++ Cuốn sách dùng tài liệu tham khảo cho 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 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí với C++ Cuốn sách có kèm theo đĩa chương trình chứa toàn chương trình lấy làm minh hoạ tập sách 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 tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp quý báu từ sinh viên bạn đồng nghiệp TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 1: Giới thiệu phương pháp lập trình CHƯƠNG GIỚI THIỆU VỀ CÁC PHƯƠNG PHÁP LẬP TRÌNH Nội dung chương tập trung trình bày phương pháp lập trình: • Phương pháp lập trình tuyế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 1.1 LẬP TRÌNH TUYẾN TÍNH Đặc trưng lập trình tuyến tính tư theo lối Chương trình thực theo thứ tự từ đầu đến cuối, lệnh lệnh kết thúc chương trình Đặc trưng Lập trình tuyến tính có hai đặc trưng: • Đơn giản: chương trình tiến hành đơn giản theo lối tuần tự, không phức tạp • Đơn luồng: có luồng công việc nhất, công việc thực luồng Tính chất • Ưu điểm: Do tính đơn giản, lập trình tuyến tính ứng dụng cho chương trình đơn giản có ưu điểm dễ hiểu • Nhược điểm: Với ứng dụng phức tạp, người ta dùng lập trình tuyến tính để giải Ngày nay, lập trình tuyến tính tồn phạm vi modul nhỏ phương pháp lập trình khác Ví dụ chương trình lập trình cấu trúc, lệnh thực theo từ đầu đến cuối chương trình 1.2 LẬP TRÌNH HƯỚNG CẤU TRÚC 1.2.1 Đặc trưng 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 chia nhỏ thành chương trình chương trình thực công việc xác định Chương trình gọi đến chương trình theo giải thuật, cấu trú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 lập trình cấu trúc kế thừa từ C, có đặc trưng lập trình hướng đối tượng Cho nê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 lập trình cấu trúc thể mối quan hệ: TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 1: Giới thiệu phương pháp lập trình Chương trình = Cấu trúc liệu + Giải thuật Trong đó: • Cấu trúc liệu cách tổ chức liệu cho việc xử lý hay nhiều chương trình • Giải thuật quy trình để thực công việc xác định Trong chương trình, giải thuật có quan hệ phụ thuộc vào cấu trúc liệu: • Một cấu trúc liệu phù hợp với số hạn chế giải thuật • Nếu thay đổi cấu trúc 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 cấu trúc liệu định Tính chất • Mỗi chương trình gọi thực nhiều lần chương trình • Các chương trình gọi đến để thực theo 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 chương trình • Các ngôn ngữ lập trình cấu trúc cung cấp số cấu trúc lệnh điều khiển chương trình Ưu điểm • Chương trình sáng sủa, dễ hiểu, dễ theo dõi • Tư giải thuật rõ ràng Nhược điểm • 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 liệu, đó, thay đổi cấu trúc 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 phù hợp với toán nhỏ, nằm phạm vi modul 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 việc giải mối quan hệ vĩ mô modul phần mềm Vấn đề Vấn đề lập trình cấu trúc 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 mục đích toán Thông thường, để phân rã toá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 đó, toán chia thành toán nhỏ Mỗi toán lại chia nhỏ tiếp, có thể, thành toán nhỏ Quá trình gọi trình làm mịn dần Quá trình dừng lại toán không cần chia nhỏ thêm TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 1: Giới thiệu phương pháp lập trình Nghĩa toán giải chương trình với giải thuật đơn giản Ví dụ, sử dụng phương pháp top-down để giải toán xây nhà Chúng ta phân rã toán theo bước sau: • Ở mức thứ nhất, chia toán xây nhà thành toá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ứ việc làm móng nhà 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 phần rã thành … • Ở mức thứ ba, phân rã công việc mức thứ hai việc đào móng phân chia tiếp thành công việc đo đạc, cắm mốc, dây, đào kiểm tra móng Việc gia cố phân rã thành … Quá trình phân rã dừng mức này, công việc thu đo đạc, cắm mốc, dây, đào… thực ngay, không cần chia nhỏ thêm Lưu ý: • Cùng sử dụng phương pháp top-down với toán, cho nhiều kết khác Nguyên nhân khác tiêu chí để phân rã toán thành toán Ví dụ, áp dụng phương pháp top-down để giải toán xây nhà, sử dụng cách khác để phân chia toán, ta thu kết 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ỏ 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ứ làm phần gỗ chia thành công việc xẻ gỗ, gia công gỗ, tạo khung, lắp vào nhà Việc làm sắt chia nhỏ thành… Rõ ràng, với cách làm mịn này, ta thu kết khác hẳn với cách thức thực phần 1.3 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1.3.1 Lập trình hướng đối tượng Trong lập trình hướng đối tượng: • Người ta coi thực thể chương trình đối tượng sau trừu tượng hoá đối tượng thành lớp đối tượng • Dữ liệu tổ chức thành thuộc tính lớp Nguời ta ngăn chặn việc thay đổi tuỳ tiện liệu chương trình cách giới hạn truy nhập cho phép truy nhập liệu thông qua đối tượng, thông qua phương thức mà đối tượng cung cấp… • Quan hệ đối tượng quan hệ ngang hàng quan hệ kế thừa: Nếu lớp B kế thừa từ lớp A A gọi lớp sở B gọi lớp dẫn xuất TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 1: Giới thiệu phương pháp lập trình Ngôn ngữ lập trình hướng đối tượng phổ biến Java, C++, C# Mặc dù C++ có đặc trưng lập trình hướng đối tượng ngôn ngữ lập trình hướng đối tượng Đặc trưng Lập trình hướng đối tượng có hai đặc trưng bản: • Đóng gói liệu: liệu tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp • Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn thể thông qua chế kế thừa Cơ chế cho phép lớp đối tượng kế thừa từ lớp đối tượng khác Khi đó, lớp dẫn xuất, sử dụng phương thức (mã nguồn) lớp sở mà không cần phải định nghĩa lại Ưu điểm Lập trình hướng đối tượng có số ưu điểm bật: • Không nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Nếu muốn truy nhập vào liệu phải thông qua phương thức cho phép đối tượng • Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi mã nguồn đối tượng khác, mà cần thay đổi số thành phần đối tượng dẫn xuất Điều hạn chế ảnh hưởng xấu việc thay đổi 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 sở phương thức 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 Trong mục này, làm quen với số khái niệm lập trình hướng đối tượng Bao gồm: • Khái niệm đối tượng (object) • Khái niệm đóng gói liệu (encapsulation) • Khái niệm kế thừa (inheritance) • Khái niệm đa hình (polymorphism) Đối tượng (Object) Trong lập trình hướng đối tượng, đối tượng coi đơn vị nhỏ Các diệu cách xử lí thành phần đối tượng mà không coi thực thể Một đối tượng chứa liệu riêng nó, đồng thời có phương thức (hành động) thao tác liệu đó: Đối tượng = liệu + phương thức TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 1: Giới thiệu phương pháp lập trình Lớp (Class) Khi có nhiều đối tượng giống mặt liệu phương thức, chúng nhóm lại với gọi chung lớp: • Lớp trừu tượng hoá đối tượng • Đối tượng thể lớp Đóng gói liệu (Encapsulation) • Các liệu đóng gói vào đối tượng Mỗi liệu có phạm vi truy nhập riêng • Không thể truy nhập đến liệu cách tự lập trình cấu trúc • Muốn truy nhập đến liệu 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 truy nhập đến liệu đối tượng Tuy nhiên, C++ ngôn ngữ lập trình nửa đối tượng, C++ cho phép định nghĩa biến liệu hàm tự do, kết kế thừa từ ngôn ngữ C, ngôn ngữ lập trình cấu trúc Kế thừa (Inheritance) Tính kế thừa lập trình hướng đối tượng cho phép lớp kế thừa từ số lớp tồn Khi đó, lớp sử dụng liệu phương thức lớp sở Ngoài ra, lớp dẫn xuất bổ sung thêm số liệu phương thức Ưu điểm kế thừa thay đổi liệu lớp, cần thay đổi phương thức phạm vi lớp sở mà không cần thay đổi lớp dẫn xuất Đa hình (Polymorphsim) Đa hình khái niệm kèm với kế thừa Do tính kế thừa, lớp sử dụng lại phương thức lớp khác Tuy nhiên, cần thiết, lớp dẫn xuất định nghĩa lại số phương thức lớp sở Đó nạp chồng phương thức kế thừa Nhờ nạp chồng phương thức này, ta 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 lớp Chương trình tự động kiểm tra xem đối tượng thuộc kiểu lớp sở hay thuộc lớp dẫn xuất, sau 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++ ngôn ngữ lập trình mở rộng từ ngôn ngữ lập trình cấu trúc C nên 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++ • Cho phép định nghĩa lớp đối tượng • Cho phép đóng gói liệu vào lớp đối tượng Cho phép định nghĩa phạm vi truy nhập liệu lớp từ khoá phạm vi: public, protected, private TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Chương 7: Một số lớp quan trọng cout

Ngày đăng: 03/10/2017, 00:46

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

Tài liệu liên quan