Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 143 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
143
Dung lượng
3,12 MB
Nội dung
TRƯỜNG CAO ĐẲNG CƠNG NGHỆ THỦ ĐỨC Khoa Cơng Nghệ Thơng Tin TÀI LIỆU GIẢNG DẠY KỸ THUẬT LẬP TRÌNH | 2019 – Lưu hành nội | LỜI TÁC GIẢ Quyển giáo trình biên soạn dựa theo đề cương mơn học “Kỹ thuật lập trình 2” Khoa Công nghệ thông tin Trường Cao đẳng Công nghệ Thủ Đức Giáo trình biên soạn khơng tránh khỏi sai sót nội dung lẫn hình thức, nhóm biên soạn mong nhận góp ý chân thành từ quý thầy cô em sinh viên để giáo trình hồn thiện Tài liệu giảng dạy Kỹ Thuật Lập Trình MỤC LỤC Chương 1.1| 1.2| 1.3| 1.4| 1.5| 1.6| 1.7| 1.8| 1.9| Dữ liệu kiểu cấu trúc Khái niệm cấu trúc Khai báo cấu trúc Khai báo biến kiểu cấu trúc Truy cập thành phần cấu trúc Phép toán gán cấu trúc Một số ví dụ minh hoạ Cấu trúc hàm Con trỏ tới cấu trúc 13 Bài tập 15 Chương 2.1| 2.2| 2.3| 2.4| 2.5| MỘT SỐ LỚP THƯ VIỆN CHUẨN C++ 18 Lớp xâu ký tự (String Objects) 19 Lớp nhập, xuất (input, output stream) 21 Luồng tập tin (file stream) 24 Bài tập 29 Bài tập tổng hợp 31 Chương GIỚI THIỆU VỀ PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 33 3.1| So sánh lập trình hướng đối tượng lập trình cấu trúc 34 3.2| Khái niệm lập trình hướng đối tượng 36 3.3| Mục tiêu lập trình hướng đối tượng 36 3.4| Các đặc điểm lập trình hướng đối tượng 37 3.5| Lớp đối tượng 40 3.5.1| Khái niệm đối tượng (Objects) 40 3.5.2| Khái niệm lớp 40 3.5.3| Thuộc tính, phương thức 40 3.5.4| Phân biệt Lớp Đối tượng 41 3.6| Biểu diễn lớp 41 3.7| Một số ngơn ngữ hổ trợ lập trình hướng đối tượng 42 3.8| Bài tập 43 Chương 4.1| 4.2| 4.3| 4.4| 4.5| 4.6| 4.7| 4.8| 4.9| 4.10| 4.11| 4.12| XÂY DỰNG LỚP ĐỐI TƯỢNG 45 Cài đặt thuộc tính 46 Cài đặt hàm thành viên 48 Phạm vi truy xuất Các thành phần lớp 50 Cài đặt tính đóng gói 52 Phương thức khởi tạo (constructors) 52 Phương thức hủy đối tượng (destructors) 56 Phương thức set, get (set, get methods) 58 Con trỏ this 59 Phương thức (const method) 61 Phương thức tĩnh 64 Tách biệt khai báo định nghĩa phương thức 67 Tránh multiple inclusion 69 Tài liệu giảng dạy Kỹ Thuật Lập Trình 4.13| 4.14| 4.15| 4.16| 4.17| 4.17.1| 4.17.2| 4.18| So sánh class struct 71 Sử dụng đối tượng làm tham số cho hàm 71 Con trỏ đối tượng mảng đối tượng 72 Đối tượng thành phần 75 Từ khóa Friends 77 Hàm bạn 77 Lớp bạn 78 Bài tập 78 Chương 5.1| 5.2| 5.3| 5.4| 5.4.1| 5.4.2| 5.4.3| 5.4.4| 5.4.5| 5.4.6| 5.4.7| 5.4.8| 5.4.9| 5.4.10| 5.4.11| 5.4.12| 5.4.13| 5.5| 5.5.1| 5.5.2| 5.5.3| 5.5.4| 5.5.5| class) 5.6| KẾ THỪA VÀ ĐA HÌNH 85 Kế thừa luồng nhập, xuất (I/O stream Inheritance) 86 Sơ đồ lớp I/O stream 86 Cerr clog 89 Tính kế thừa (Inheritance mechanics) 89 Khái niệm kế thừa 90 Lợi ích kế thừa 91 Đặc tính kế thừa 91 Tổng quát hóa, đặc biệt hóa 92 Cú pháp khai báo kế thừa 92 Tầm vực kế thừa 92 Phân loại kế thừa 95 Một số mơ hình kế thừa: 96 Diamond problem: 100 Virtual base class: 102 Hàm khởi tạo hàm hủy 109 Static binding Dynamic binding 113 Thành viên Protected 115 Đa hình 116 Định nghĩa đa hình 116 Phân loại đa hình 117 So sánh Overloading Overriding 118 Hàm ảo (Virtual function) 120 Hàm ảo (Pure Virtual function), Lớp trừu tượng (Abstract 121 Bài tập 122 Chương 6.1| 6.1.1| 6.1.2| 6.1.3| 6.2| 6.2.1| 6.2.2| 6.2.3| Lập trình khái quát 128 Khuôn mẫu hàm 129 Khái niệm hàm khái quát 129 Gọi hàm khái quát 131 Chồng hàm khái quát 132 Khuôn mẫu lớp 133 Khái niệm Lớp template 133 Khi cần sử dụng class Template 136 Bài tập 136 Tài liệu giảng dạy Kỹ Thuật Lập Trình Chương DỮ LIỆU KIỂU CẤU TRÚC Chương nhằm giới thiệu cho sinh viên khái niệm về kiểu liệu struct, khai bá o và khởi tạ o giá cho biến, truy xuá t cá c thành phần struct, sử dụ ng struct giải toán cụ thể Tài liệu giảng dạy Kỹ Thuật Lập Trình Trang 1.1| KHÁI NIỆM CẤU TRÚC Cấu trúc kiểu liệu bao gồm nhiều phần tử Các phần tử cấu trúc liệu thuộc kiểu khác có tên khác Kiểu cấu trúc định nghĩa từ khóa struct Mỗi phần tử kiểu liệu cấu trúc gọi trường Dữ liệu kiểu cấu trúc dùng để mô tả đối tượng bao gồm kiểu liệu khác nhau, hóa đơn mua hàng, phiếu xuất vật tư, lý lịch nhân viên, phiếu thu tiền, Các liệu thường gặp tốn thơng tin kinh tế, quản lý Cấu trúc công cụ để tạo kiểu liệu Sau kiểu cấu trúc mở rộng thành kiểu lớp 1.2| KHAI BÁO CẤU TRÚC Muốn sử dụng kiểu liệu cấu trúc ta phải định nghĩa để xác định tên với thành phần liệu có kiểu cấu trúc Một kiểu cấu trúc khai báo theo mẫu sau: struct { // thành phần; } ; Mỗi thành phần giống biến riêng kiểu, gồm kiểu tên thành phần Một thành phần gọi trường Phần tên kiểu cấu trúc phần danh sách biến có khơng Tuy nhiên khai báo kí tự kết thúc cuối phải dấu chấm phẩy (;) Các kiểu cấu trúc phép khai báo lồng nhau, nghĩa thành phần kiểu cấu trúc lại trường có kiểu cấu trúc Tài liệu giảng dạy Kỹ Thuật Lập Trình Trang 1.3| KHAI BÁO BIẾN KIỂU CẤU TRÚC Một biến có kiểu cấu trúc phân bố nhớ cho thực liên tục theo thứ tự xuất khai báo Khai báo biến kiểu cấu trúc giống khai báo biến kiểu sở dạng: struct ; // kiểu cũ C ; // C++ Các biến khai báo kèm khởi tạo: biến = {giá trị khởi tạo}; Ví dụ: Khai báo kiểu cấu trúc chứa phân số gồm thành phần nguyên chứa tử số mẫu số sau struct PhanSo { int tuSo; int mauSo; }; Kiểu ngày tháng gồm thành phần nguyên chứa ngày, tháng, năm struct NgayThang { int ngay; int thang; int nam; } xHoliday = {1, 5, 2019}; Một biến xHoliday khai báo kèm kiểu khởi tạo số 2019 Các giá trị khởi tạo gán cho thành phần theo thứ tự khai báo, tức = 1, thang = nam = 2019 Kiểu Lop dùng chứa thông tin lớp học gồm tên lớp sĩ số sinh viên Các biến kiểu Lop khai báo xCNTT, xCNTT khởi tạo giá trị {"CD18TT", 50} với ý nghĩa tên lớp CD18TT sĩ số 50 sinh viên Tài liệu giảng dạy Kỹ Thuật Lập Trình Trang //định nghĩa struct struct Lop { char tenlop[10]; int soluong; }; //khai báo biến kiểu struct struct Lop xCNTT = { "CD18TT", 50 }; //hoặc Lop xCNTT = { "CD18TT", 50 }; Kiểu SinhVien gồm có trường hoTen để lưu trữ họ tên sinh viên, ngaySinh lưu trữ ngày sinh, gioiTinh lưu trữ giới tính dạng số (qui ước 1: nam, 2: nữ) cuối trường diem lưu trữ điểm thi sinh viên Các trường có kiểu khác #include using namespace std; //Khai báo struct struct NgayThang { int ngay; int thang; int nam; }; struct SinhVien { char hoTen[25]; NgayThang ngaySinh; int gioiTinh; float diem; }; //Chương trình int main() { SinhVien xSV1 = {"NguyenVanBinh",{ 1,1,1980 }, }; SinhVien arrxSV[50]; SinhVien *pSV = arrxSV; //con trỏ trỏ đến mảng return 0; } Tài liệu giảng dạy Kỹ Thuật Lập Trình Trang Một biến xSV1 khai báo khởi tạo giá trị họ tên sinh viên "NguyenVanBinh", ngày sinh 1/1/1980, giới tính nam (1) điểm thi để trống Khai báo mảng cấu trúc arrxSV có 50 phần tử Đây kiểu khởi tạo thiếu giá trị Biến trỏ pSV trỏ đến mảng arrxSV kiểu SinhVien Ví dụ minh hoạ cho cấu trúc lồng nhau, cụ thể kiểu cấu trúc SinhVien có thành phần kiểu cấu trúc thành phần NgaySinh 1.4| TRUY CẬP CÁC THÀNH PHẦN TRONG CẤU TRÚC Để truy nhập vào thành phần kiểu cấu trúc biến thường ta sử dụng cú pháp: • Đối với biến thường: . • Đối với biến trỏ kiểu cấu trúc: → < tên thành phần> • Đối với struct lồng nhau: Truy nhập thành phần đến thành phần cấu trúc bên trong, sử dụng phép toán ➔ (các phép tốn lấy thành phần) cách thích hợp Ví dụ: int main() { SinhVien xSV1 = {"NguyenVanBinh",{1,1,1980 }, }; cout