Bài giảng Lập trình hướng đối tượng - Chương 3: Lập trình hướng đối tượng với C++ - Nguyễn Sơn Hoàng Quốc
Khoa CNTT
LTHĐT
Chương 3
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG VỚI C++
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 1
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
0. BÀI TẬP
Bài 1: Viết chương trình nhập
vào một phân số. Hãy cho biết
phân số đó là phân số âm hay
dương hay bằng không.
Bài 2: Viết chương trình nhập
vào một ngày. Tìm ngày kế tiếp
và xuất kết quả.
Bài 3: Viết chương trình nhập tọa
độ hai điểm trong không gian.
Tính khoảng cách giữa chúng và
xuất kết quả.
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 2
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
0. BÀI TẬP
Bài 4: Viết chương trình nhập
vào một ngày. Tìm ngày hôm
qua và xuất kết quả.
Bài 5: Viết chương trình nhập
vào 2 phân số. Tìm phân số lớn
nhất và kết quả.
Bài 6: Viết chương trình nhập
vào 2 số phức. Tính tổng, hiệu,
tích và xuất kết quả.
Bài 7: Viết chương trình nhập toạ
độ 3 đỉnh A,B,C của 1 tam giác
trong mặt phẳng Oxy. Tính chu
vi, diện tích và tìm tọa độ trọng
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
tâm.
Chương 03 - 3
Khoa CNTT
LTHĐT
0. BÀI TẬP
Bài 8: Viết chương trình nhập tọa
tâm và bán kính của một đường
tròn. Tính diện tích và chu vi của
đường tròn.
Bài 9: Viết chương trình nhập
vào hai phân số. Tính tổng, hiệu,
tích, thương giữa chúng và xuất
kết quả.
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 4
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
Bài 1: Viết chương
trình nhập vào một
phân số. Hãy cho
biết phân số đó là
phân số âm hay
dương hay bằng
không.
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 5
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
1. #include <stdio.h>
2. #include <conio.h>
3. class CPhanSo
4. {
5.
private:
int tu;
int mau;
public:
6.
7.
8.
9.
void Nhap();
void Xuat();
int XetDau();
10.
11.
12.};
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 6
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
11.void main()
12.{
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.}
CPhanSo a;
a.Nhap();;
int kq = a.XetDau();
switch(kq)
{
case 1: printf(“”);
break;
case -1: printf(“”);
break;
case 0: printf(“”);
break;
}
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 7
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
Định nghĩa hàm nhập phân số
1. void CPhanSo::Nhap()
2. {
3.
printf("Nhap tu: ");
scanf("%d",&tu);
4.
5.
printf("Nhap mau: ");
scanf("%d",&mau);
6.
7. }
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 8
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
Định nghĩa hàm xuất phân số
1. void CPhanSo::Xuat()
2. {
3.
printf("\n Tu: %d“, tu);
printf("\n Mau: %d“, mau);
4.
5. }
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 9
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 1
1. int CPhanSo::XetDau()
2. {
3.
if(tu*mau>0)
return 1;
4.
5.
if(tu*mau<0)
return -1;
return 0;
6.
7.
8. }
int kq = a.XetDau();
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 10
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Bài 2: Viết chương
trình nhập vào một
ngày. Tìm ngày kế
tiếp và xuất kết
quả.
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 11
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
11. #include <stdio.h>
12. #include <conio.h>
13. class CNgay
14. {
15.
16.
17.
18.
private:
int ng;
int th;
int nm;
19. public:
20.
void Nhap();
21.
void Xuat();
22.
CNgay KeTiep();
int ktNhuan();
23.
24.
int sttTrongNam();
long SoThuTu();
25.
26.
void KhoiTao(int,int);
void KhoiTao(long);
CNgay(int,int,int);
27.
28.
29. };
GV. Nguyễn Sơn Hoàng Quốc
Chương 03 - 12
ThS. Nguyễn Tấn Trần Minh Khang
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
1. void main()
2. {
3.
CNgay a;
4.
a.Nhap();
5.
CNgay kq = a.KeTiep();
printf(“Ngay ban dau:”);
a.Xuat();
6.
7.
8.
printf(“\nNgay ke tiep:”);
kq.Xuat();
9.
10.}
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 13
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Định nghĩa hàm
1. void CNgay::Nhap()
2. {
3.
printf("Nhap ngay: ");
scanf("%d",&ng);
4.
5.
printf("Nhap thang: ");
scanf("%d",&th);
6.
7.
printf("Nhap nam: ");
scanf("%d",&nm);
8.
9. }
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 14
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Định nghĩa hàm
1. void CNgay::Xuat()
2. {
3.
printf("\nNgay:%d“,ng);
printf("\nThang:%d",th);
printf("\nNam:%d",nm);
4.
5.
6. }
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 15
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Một năm được gọi là năm nhuận khi thoả một
trong hai điều kiện.
Điều kiện 1: Năm chia hết cho 4 và không
chia hết cho 100.
Điều kiện 2: Năm chia hết cho 400.
Ví dụ 1: 1996 nhuận (điều kiện 1)
Ví dụ 2: 2000 nhuận (điều kiện 2)
Ví dụ 3: 1900 ko nhuận.
Định nghĩa hàm
1. int CNgay::KiemTraNhuan()
2. {
3.
if(nm%4==0 && nm%100!=0)
return 1;
4.
5.
if(nm%400==0)
return 1;
6.
7.
return 0;
8. }
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 16
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Định nghĩa hàm
1. int CNgay::sttTrongNam()
2. {
3.
int ngaythang[12]={31,28,31,
30,31,30,31,31,30,31,30,31};
4.
if(ktNhuan()==1)
ngaythang[1]=29;
int stt = 0;
5.
6.
7.
for(int i=1;i<=th-1;i++)
ngaythang[i-1];
stt=stt+
8.
9.
return (stt + ng);
10.}
1/1/2007
20/10/2007
30/ 09/ 2007
1/1/2007
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 17
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
1. long CNgay::SoThuTu()
2. {
3.
long stt = 0;
4.
for(int i=1;i<=nm-1;i++)
{
5.
6.
stt = stt + 365;
CNgay temp(1,1,i);
if(temp.ktnhuan()==1)
stt = stt+1;
7.
8.
9.
10.
11.
12.}
}
return (stt+sttTrongNam());
1/1/2007
20/10/2007
30/ 09/ 2007
1/1/1
31/12/2006
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 18
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Định nghĩa hàm
1. void CNgay::KhoiTao(int nam,int stt)
2. {
3.
int ngaythang[12]={31,28,31,
30,31,30,31,31,30,31,30,31};
4.
CNgay temp(1,1,nam);
if(temp.ktNhuan()==1)
ngaythang[1] = 29;
temp.th=1;
5.
6.
7.
8.
while(stt-ngaythang[temp.th-1]>0)
{
9.
10.
11.
12.
13.
14.
15. }
stt=stt-ngaythang[temp.th-1];
temp.th++;
}
temp.ng = stt;
*this = temp;
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 19
Khoa CNTT
LTHĐT
HƯỚNG DẪN BÀI 2
Định nghĩa hàm
1. void CNgay::KhoiTao(long stt)
2. {
3.
int nam = 1;
int sn = 365;
while(stt-sn>0)
{
4.
5.
6.
7.
stt = stt – sn;
8.
nam++;
9.
sn = 365;
10.
11.
12.
13.
14.
15. }
CNgay temp(1,1,nam);
if( temp.ktnhuan()==1)
sn = 366;
}
TimNgay(nam,(int)stt);
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 03 - 20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 3: Lập trình hướng đối tượng với C++ - Nguyễn Sơn Hoàng Quốc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_lap_trinh_huong_doi_tuong_chuong_3_lap_trinh_huong.pdf

