LTHĐT Khoa CNTT Chƣơng LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG VỚI C++ GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ĐẶT VẤN ĐỀ Viết chương trình nhập họ tên, điểm toán, điểm văn học sinh Tính điểm trung bình xuất kết GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT LỚP ĐỐI TƢỢNG (class) Khái niệm: Lớp đối tượng tượng hiểu cách đơn giản tích hợp hai thành phần: Thành phần liệu Thành phần xử lý Cú pháp khai báo lớp class CTenLop { // Thành phần liệu // Thành phần xử lý }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT LỚP ĐỐI TƢỢNG (class) Ví dụ: Hãy khai báo lớp cho toán nêu phần đặt vấn đề 11 struct HocSinh 12 { 13 14 15 16 char hoten[31]; int toan; Thành phần int van; liệu float dtb; 17 }; 18 typedef struct hocsinh HOCSINH; 19 void Nhap(HOCSINH&); 20 void Xuat(HOCSINH); 21 void XuLy(HOCSINH &); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Thành phần xử lý Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT LỚP ĐỐI TƢỢNG (class) 11 class CHocSinh 12 { 13 14 15 16 17 18 19 20 21 private: char hoten[31]; int toan; int van; float dtb; public: void Nhap(); void Xuat(); void XuLy(); 22 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ĐỐI TƢỢNG (object) Khái niệm: Đối tƣợng thể lớp Trong lớp có nhiều thể khác Nói cách khác: có nhiều đối tƣợng thuộc lớp Cú pháp khai báo đối tượng CTenLop ; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ĐỐI TƢỢNG (object) Ví dụ 1: CHocSinh x; Trong ví dụ ta nói x đối tượng thuộc lớp đối tượng CHocSinh Ví dụ 2: CHocSinh a,b; CHocSinh y; Trong ví dụ ta nói a,b,y ba đối tượng thuộc lớp đối tượng CHocSinh Nói cách khác: Lớp đối tượng CHocSinh có ba thể khác GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT PHƢƠNG THỨC (method) Khái niệm: Phương thức khả mà đối tượng thuộc lớp thực Cú pháp định nghĩa phương thức: KDL CTenLop::PhuongThuc () { // Thân Phương Thúc } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT PHƢƠNG THỨC (method) Ví dụ 1: Định nghĩa phương thức nhập lớp CHocSinh void CHocSinh::Nhap() { printf(“Nhap ho ten:”); gets(hoten); printf(“Nhap toan:”); scanf(“%d”, &toan); printf(“Nhap van:”); scanf(“%d”, &van); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT PHƢƠNG THỨC (method) Ví dụ 2: Định nghĩa phương thức XuLy lớp CHocSinh void CHocSinh::XuLy() { dtb=(float)(toan+van)/2; } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 10 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 #include 12 #include 13 class CPhanSo 14 { 15 private: 16 int tu; 17 int mau; 18 public: 19 void Nhap(); 20 void Xuat(); 21 void RutGon(); 22 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 24 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 void main() 12 { 13 14 15 16 CPhanSo ps; ps.Nhap(); ps.RutGon(); ps.Xuat(); 17 } 18 void CPhanSo::Nhap() 19 { 20 21 22 23 printf(“Nhap tu: ”); scanf(“%d”,&tu); printf(“Nhap mau: ”); scanf(“%d”,&mau); 24 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 25 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 void CPhanSo::RutGon() { 13 14 15 16 17 18 19 20 21 22 23 } void CPhanSo::Xuat() { printf(“%d/%d”,tu,mau); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 26 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 6.2 Ứng dụng 2: Viết chƣơng trình nhập vào tọa độ điểm mặt phẳng Oxy Tính khoảng cách chúng xuất kết Chƣơng trình GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 27 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 #include 12 #include 13 #include 14 class CDiem 15 { 16 private: 17 float x; 18 float y; 19 public: 20 void Nhap(); 21 void Xuat(); 22 float KhoangCach(CDiem); 23 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 28 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 void main() 12 { 13 14 15 16 17 18 19 CDiem A,B; A.Nhap(); B.Nhap(); float kq = A.KhoangCach(B); A.Xuat(); B.Xuat(); printf(“\n Khoang cach…: %f”, kq); 20 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 29 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 16 17 18 19 20 21 22 23 24 void CDiem::Nhap() { float temp; printf(“Nhap x:”); scanf(“%f”,&temp); x = temp; printf(“Nhap y:”); scanf(“%f”,&temp); y = temp; } void CDiem::Xuat() { printf(“(%f,%f)”,x,y); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 30 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 float CDiem::KhoangCach(CDiem P) { return sqrt((x-P.x)*(x-P.x) +(y-P.y)*(y-P.y)); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 31 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 void main() 12 { 13 14 15 16 17 18 19 CDiem A,B; A.Nhap(); B.Nhap(); float kq = A.KhoangCach(B); A.Xuat(); B.Xuat(); printf(“\n Khoang cach…: %f”, kq); 20 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 32 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 #include 12 #include 13 #include 14 class CDiem 15 { 16 private: 17 float x; 18 float y; 19 public: 20 void Nhap(); 21 void Xuat(); 22 float KhoangCach(CDiem); 23 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 33 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 float CDiem::KhoangCach(CDiem P) { return sqrt((x-P.x)*(x-P.x) +(y-P.y)*(y-P.y)); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 34 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 float CDiem::KhoangCach(CDiem P) { return sqrt((x-P.x)*(x-P.x) +(y-P.y)*(y-P.y)); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 35 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 float CDiem::KhoangCach(CDiem P) { return sqrt((x-P.x)*(x-P.x) +(y-P.y)*(y-P.y)); } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 36 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT ỨNG DỤNG 11 12 13 14 15 float CDiem::KhoangCach(CDiem P) { return sqrt((x-P.x)*(x-P.x) +(y-P.y)*(y-P.y)); } float kq = A.KhoangCach(B); float kq = B.KhoangCach(A); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 37 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT BÀI TẬP VỀ NHÀ Làm tất tập chương 01 phương pháp lập trình hướng đối tượng (9 bài) GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - 38 https://fb.com/tailieudientucntt ... HOCSINH; 19 void Nhap(HOCSINH&); 20 void Xuat(HOCSINH); 21 void XuLy(HOCSINH &); GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Thành phần xử lý Chương 03 - https://fb.com/tailieudientucntt... cách khác: có nhiều đối tƣợng thuộc lớp Cú pháp khai báo đối tượng CTenLop ; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt... tượng thuộc lớp đối tượng CHocSinh Nói cách khác: Lớp đối tượng CHocSinh có ba thể khác GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 03 - https://fb.com/tailieudientucntt