Giáo trình Lập trình hướng đối tượng - Chương 3: Lập trình hướng đối tượng với C++

 Khái niệm: Lớp đối tượng

tượng hiểu một cách đơn

giản nhất là sự tích hợp của

hai thành phần: Thành phần

dữ liệu và Thành phần xử

lý.

 Cú pháp khai báo lớp

1. class CTenLop

2. {

3. // Thành phần dữ liệu.

4. // Thành phần xử lý

5. };

pdf38 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 1535 | Lượt tải: 2download
Tóm tắt nội dung Giáo trình Lập trình hướng đối tượng - Chương 3: Lập trình hướng đối tượng với C++, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
d Xuat(HOCSINH);
21.void XuLy(HOCSINH &);
Thành phần 
dữ liệu
Thành phần 
xử lý
LTHĐTKhoa CNTT
Chương 03 - 5
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. LỚP ĐỐI TƢỢNG (class)
11.class CHocSinh
12.{
13. private:
14. char hoten[31];
15. int toan;
16. int van;
17. float dtb;
18. public:
19. void Nhap();
20. void Xuat();
21. void XuLy();
22.};
LTHĐTKhoa CNTT
Chương 03 - 6
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
2. ĐỐI TƢỢNG (object)
 Khái niệm: Đối tƣợng là
một sự thể hiện của một
lớp. Trong một lớp có thể
có nhiều sự thể hiện khác
nhau. Nói một cách khác:
có thể có nhiều đối tƣợng
cùng thuộc về một lớp.
 Cú pháp khai báo đối tượng.
1. CTenLop ;
LTHĐTKhoa CNTT
Chương 03 - 7
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
2. ĐỐI TƢỢNG (object)
 Ví dụ 1: CHocSinh x;
Trong ví dụ trên ta nói x là một
đối tượng thuộc về lớp đối
tượng CHocSinh.
 Ví dụ 2: CHocSinh a,b;
CHocSinh y;
Trong ví dụ trên ta nói a,b,y là
ba đối tượng thuộc về lớp đối
tượng CHocSinh. Nói một cách
khác: Lớp đối tượng CHocSinh
có ba sự thể hiện khác nhau.
LTHĐTKhoa CNTT
Chương 03 - 8
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. PHƢƠNG THỨC (method)
 Khái niệm: Phương thức là khả
năng mà đối tượng thuộc về lớp
có thể thực hiện.
 Cú pháp định nghĩa phương
thức:
1. KDL CTenLop::PhuongThuc
()
2. {
3. // Thân Phương Thúc
4. }
LTHĐTKhoa CNTT
Chương 03 - 9
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. PHƢƠNG THỨC (method)
 Ví dụ 1: Định nghĩa phương thức
nhập của lớp CHocSinh.
1. void CHocSinh::Nhap()
2. {
3. printf(“Nhap ho ten:”);
4. gets(hoten);
5. printf(“Nhap toan:”);
6. scanf(“%d”, &toan);
7. printf(“Nhap van:”);
8. scanf(“%d”, &van);
9. }
LTHĐTKhoa CNTT
Chương 03 - 10
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. PHƢƠNG THỨC (method)
 Ví dụ 2: Định nghĩa phương thức
XuLy của lớp CHocSinh.
1. void CHocSinh::XuLy()
2. {
3. dtb=(float)(toan+van)/2;
4. }
LTHĐTKhoa CNTT
Chương 03 - 11
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. PHƢƠNG THỨC (method)
 Ví dụ 3: Định nghĩa phương thức
Xuat của lớp CHocSinh.
1. void CHocSinh::Xuat()
2. {
3. printf(“\nHo ten:%s”,
hoten);
4. printf(“\nToan: %d”,toan);
5. printf(“\nVan: %d”,van);
6. printf(“\nDTB: %f”,dtb);
7. }
LTHĐTKhoa CNTT
Chương 03 - 12
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Khái niệm: Đối tượng hành
động là đối tượng gọi thực hiện
phương thức mà lớp đối tượng
nó thuộc về cung cấp.
 Cú pháp
1. …TenDoiTuong.PhuongThuc()…
 Ví dụ 1:
1. CHocSinh hs;
2. hs.Nhap();
LTHĐTKhoa CNTT
Chương 03 - 13
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Ví dụ 1:
1. CHocSinh hs;
2. hs.Nhap();
 Trong câu lệnh thứ hai của
đoạn chương trình trên ta
nói: đối tƣợng hs gọi thực
hiện phƣơng thức Nhập.
LTHĐTKhoa CNTT
Chương 03 - 14
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Ví dụ 2:
1. CHocSinh a,b,c;
2. a.Nhap();
3. b.Nhap();
4. c.Nhap();
 Trong câu lệnh thứ hai của
đoạn chương trình trên ta
nói: đối tƣợng a gọi thực
hiện phƣơng thức Nhập.
 …v..v..
LTHĐTKhoa CNTT
Chương 03 - 15
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
hoten
toan
van
dtb
hoten
toan
van
dtb
hoten
toan
van
dtb
void Nhap()
void Xuat()
void XuLy()
a
b
c
1. CHocSinh a,b,c;
2. a.Nhap();
3. b.Nhap();
4. c.Nhap();
LTHĐTKhoa CNTT
Chương 03 - 16
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Ví dụ 1: Định nghĩa phương thức
nhập của lớp CHocSinh.
1. void CHocSinh::Nhap()
2. {
3. printf(“Nhap ho ten:”);
4. gets(hoten);
5. printf(“Nhap toan:”);
6. scanf(“%d”, &toan);
7. printf(“Nhap van:”);
8. scanf(“%d”, &van);
9. }
LTHĐTKhoa CNTT
Chương 03 - 17
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Ví dụ 2: Định nghĩa phương thức
XuLy của lớp CHocSinh.
1. void CHocSinh::XuLy()
2. {
3. dtb=(float)(toan+van)/2;
4. }
LTHĐTKhoa CNTT
Chương 03 - 18
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. ĐỐI TƢỢNG HÀNH ĐỘNG
 Ví dụ 3: Định nghĩa phương thức
Xuat của lớp CHocSinh.
1. void CHocSinh::Xuat()
2. {
3. printf(“\nHo ten:%s”,
hoten);
4. printf(“\nToan: %d”,toan);
5. printf(“\nVan: %d”,van);
6. printf(“\nDTB: %f”,dtb);
7. }
LTHĐTKhoa CNTT
Chương 03 - 19
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. CHƢƠNG TRÌNH 
ĐẦU TIÊN
 Bài toán: Viết
chƣơng trình nhập
họ tên, điểm toán,
điểm văn của một
học sinh. Tính điểm
trung bình và xuất
kết quả.
 Chƣơng trình
LTHĐTKhoa CNTT
Chương 03 - 20
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. CHƢƠNG TRÌNH 
ĐẦU TIÊN
11.#include 
12.#include 
13.class CHocSinh
14.{
15. private:
16. char hoten[31];
17. int toan;
18. int van;
19. float dtb;
20. public:
21. void Nhap();
22. void Xuat();
23. void XuLy();
24.};
LTHĐTKhoa CNTT
Chương 03 - 21
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. CHƢƠNG TRÌNH 
ĐẦU TIÊN
11.void main()
12.{
13. CHocSinh hs;
14. hs.Nhap();
15. hs.XuLy();
16. hs.Xuat();
17.}
18.void CHocSinh::Xuat()
19.{
20. printf(“\nHo ten:%s”,
hoten);
21. printf(“\nToan: %d”,toan);
22. printf(“\nVan: %d”,van);
23. printf(“\nDTB: %f”,dtb);
24.}
LTHĐTKhoa CNTT
Chương 03 - 22
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. CHƢƠNG TRÌNH 
ĐẦU TIÊN
11. void CHocSinh::Nhap()
12. {
13. printf(“Nhap ho ten:”);
14. gets(hoten);
15. printf(“Nhap toan:”);
16. scanf(“%d”, &toan);
17. printf(“Nhap van:”);
18. scanf(“%d”, &van);
19. }
20. void CHocSinh::XuLy()
21. {
22. dtb=(float)(toan+van)/2;
23. }
LTHĐTKhoa CNTT
Chương 03 - 23
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
 6.1 Ứng dụng 1: Viết
chƣơng trình nhập
vào một phân số. Rút
gọn phân số đó và
xuất kết quả.
 Chƣơng trình
LTHĐTKhoa CNTT
Chương 03 - 24
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. Ứ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.};
LTHĐTKhoa CNTT
Chương 03 - 25
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11.void main()
12.{
13. CPhanSo ps;
14. ps.Nhap();
15. ps.RutGon();
16. ps.Xuat();
17.}
18.void CPhanSo::Nhap()
19.{
20. printf(“Nhap tu: ”);
21. scanf(“%d”,&tu);
22. printf(“Nhap mau: ”);
23. scanf(“%d”,&mau);
24.}
LTHĐTKhoa CNTT
Chương 03 - 26
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. void CPhanSo::RutGon()
12. {
13.
14.
15.
16.
17.
18.
19. }
20. void CPhanSo::Xuat()
21. {
22. printf(“%d/%d”,tu,mau);
23. }
LTHĐTKhoa CNTT
Chương 03 - 27
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
 6.2 Ứng dụng 2: Viết
chƣơng trình nhập
vào tọa độ 2 điểm
trong mặt phẳng Oxy.
Tính khoảng cách
giữa chúng và xuất
kết quả.
 Chƣơng trình
LTHĐTKhoa CNTT
Chương 03 - 28
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. Ứ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.};
LTHĐTKhoa CNTT
Chương 03 - 29
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11.void main()
12.{
13. CDiem A,B;
14. A.Nhap();
15. B.Nhap();
16. float kq = A.KhoangCach(B);
17. A.Xuat();
18. B.Xuat();
19. printf(“\n Khoang cach…:
%f”, kq);
20.}
LTHĐTKhoa CNTT
Chương 03 - 30
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. void CDiem::Nhap()
12. {
13. float temp;
14. printf(“Nhap x:”);
15. scanf(“%f”,&temp);
16. x = temp;
17. printf(“Nhap y:”);
18. scanf(“%f”,&temp);
19. y = temp;
20. }
21. void CDiem::Xuat()
22. {
23. printf(“(%f,%f)”,x,y);
24. }
LTHĐTKhoa CNTT
Chương 03 - 31
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. float CDiem::KhoangCach(CDiem P)
12. {
13. return sqrt((x-P.x)*(x-P.x)
14. +(y-P.y)*(y-P.y));
15. }
LTHĐTKhoa CNTT
Chương 03 - 32
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11.void main()
12.{
13. CDiem A,B;
14. A.Nhap();
15. B.Nhap();
16. float kq = A.KhoangCach(B);
17. A.Xuat();
18. B.Xuat();
19. printf(“\n Khoang cach…:
%f”, kq);
20.}
LTHĐTKhoa CNTT
Chương 03 - 33
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. Ứ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.};
LTHĐTKhoa CNTT
Chương 03 - 34
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. float CDiem::KhoangCach(CDiem P)
12. {
13. return sqrt((x-P.x)*(x-P.x)
14. +(y-P.y)*(y-P.y));
15. }
LTHĐTKhoa CNTT
Chương 03 - 35
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. float CDiem::KhoangCach(CDiem P)
12. {
13. return sqrt((x-P.x)*(x-P.x)
14. +(y-P.y)*(y-P.y));
15. }
LTHĐTKhoa CNTT
Chương 03 - 36
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. float CDiem::KhoangCach(CDiem P)
12. {
13. return sqrt((x-P.x)*(x-P.x)
14. +(y-P.y)*(y-P.y));
15. }
LTHĐTKhoa CNTT
Chương 03 - 37
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
6. ỨNG DỤNG
11. float CDiem::KhoangCach(CDiem P)
12. {
13. return sqrt((x-P.x)*(x-P.x)
14. +(y-P.y)*(y-P.y));
15. }
float kq = A.KhoangCach(B);
float kq = B.KhoangCach(A);
LTHĐTKhoa CNTT
Chương 03 - 38
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
7. BÀI TẬP VỀ NHÀ
Làm tất cả các bài
tập của chương 01
bằng phương pháp
lập trình hướng đối
tượng (9 bài).

File đính kèm:

  • pdfGiáo trình Lập trình hướng đối tượng - Chương 3 Lập trình hướng đối tượng với C++.pdf
Tài liệu liên quan