BÀI TẬP THỰC HÀNH 3 | LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Output: 1 nếu là true (nếu biến ThoiGian ta muốn so sánh nhỏ hơn hoặc bằng biến
ThoiGian t), 0 nếu là false (nếu biến ThoiGian ta muốn so sánh không nhỏ hơn hoặc bằng biến ThoiGian t). Bài tập giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao.

ĐẠI HC QUC GIA THÀNH PH H CHÍ MINH
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN
KHOA CÔNG NGH PHN MM
MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI TP THC HÀNH 3
GVHD: Nguyn Ngc Quí
Sinh viên thc hin: Nguyn Th Như Trang-23521628
 Tp. Hồ Chí Minh, 02/2024 
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
2 |
P a g e
NHN XÉT CỦA GIÁO VIÊN HƯỚNG DN
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
……., ngày……...tháng……năm 2024
Ngưi nhn xét
(Ký tên và ghi rõ h tên)
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
3 |
P a g e
MC LC
1 BÀI 1
1.1 Xây dựng lớp PhanSo bao gồm:…………………………………………………
1.2 Diagram của lớp PhanSo:……………………………………………..................
1.3 Khai báo của lớp PhanSo, bao gồm các thuộc tính phương thức:..................
1.4 Nội dung các phương thc trong lp PhanSo:………………………………….
1.5 Hướng xcác phương thức PhanSo:………………………………………….
2 BÀI 2:
2.1 Xây dựng lớp SoPhuc bao gồm:…………………………………………………
2.2 Diagram của lớp SoPhuc:…………………………………………...................
2.3 Khai báo của lớp SoPhuc, bao gồm các thuộc tính phương thức:...................
2.4 Nội dung các phương thức trong lp SoPhuc:…………………………………..
2.5 Hướng xử các phương thức SoPhuc:………………………………………….
3 BÀI 3:
3.1 Xây dng lớp ThoiGian bao gồm:………………………………………….........
3.2 Diagram của lớp ThoiGian :…………………………………………….............
3.3 Khai báo của lớp ThoiGian , bao gồm các thuộc nh phương thức:.............
3.4 Ni dung các phương thức trong lp ThoiGian :………………………….........
3.5 Hướng xử các phương thức ThoiGian :……………………………………….
4 Bài 4:
4.1 Xây dựng lớp ngày tháng năm bao gồm:………………………………………...
4.2 Diagram của lớp NgayThangNam:……………………………………………...
4.3 Khai báo của lớp NgayThangNam, bao gồm các thuộc tính và phương thức:...
4.4 Nội dung các phương thức trong lp NgayThangNam:………………………...
4.5 Hướng xử các phương thức ngày tháng năm tiếp theo:………………………
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
4 |
P a g e
DANH MC BNG
1.Danh mc bng lp phân s:
Bng 1.1 Nội dung các phương thức lp phân s
2. Danh mc bng lp s phc:
Bng 2.1 Nội dung các phương thức lp s phc
3.Danh mc bng lp thi gian:
Bng 3.1. Nội dung các phương thức lp thi gian+ Input&Output
4.Danh mc bng ca lp NgayThang Nam....
Bảng 4.1 Phương thức khi to 2 hàm NgayThangNam()
Bảng 4.2 Phương thức thc hin hàm TinhNgay()
Bảng 4.3 Phương thức thc hin operator cng thêm vào mt s ngày operator+(int
Ngay)
Bảng 4.4 Phương thức operator thc hin giảm đi một s ngày operator-(int Ngay)
Bảng 4.5 Phương thức operator thc hiện tăng thêm 1 ngày nhập vào operator++()
Bảng 4.6 Phương thức operator thc hin gim thêm 1 ngày nhp vào operato--():
Bảng 4.7 Phương thức operator thc hin so sánh 2 ngày bng nhau operator==()
Bng 4.8 -Phương thức operator thc hin so sánh 2 ngày khác nhau operator !=()
Bảng 4.9 Phương thức operator thc hin tìm ngày nào lớn hơn hoặc bng gia 2
ngày nhp vào operator>=()
Bảng 4.10 Phương thức operator thc hiện tìm ngày nào bé hơn hoặc bng gia 2
ngày nhp vào operator<=()
Bảng 4.11 Phương thc operator thc hin tìm ngày nào lớn hơn giữa 2 ngày nhp
vào operator>()
Bảng 4.12 Phương thức operator thc hiện tìm ngày nào bé hơn giữa 2 ngày nhp
vào operator<()
Bảng 4.13 Phương thức operator thc hin hàm nhp vào operator>>( istream& is,
NgayThangNam& a)
Bảng 4.14 Phương thức operator thc hin hàm in ra operator<< ( ostream& is,
const NgayThangNam& a)
Bảng 4.15 Hướng xca hàm operator-(int Ngay)
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
5 |
P a g e
Bảng 4.16 Hướng xca hàm operator-(int Ngay)
Bảng 4.17 Hướng x lí cuat hàm operator++()
Bảng 4.18 Hướng x lí ca hàm operator
Bảng 4.19 Hướng x lí ca các hàm operator ==, !=,>=, <=, >, <
DANH MC HÌNH NH
BÀI 1:Lp phân s
Hình 1.1 Class diagram lớp Phân Số
Hình 1.2 Khai báo lớp Phân Số
Hình 1.3 Ouput ảnh 1
Hình 1.4 Output nh 2
Hình 1.5 Output ảnh 3
Hình 1.6 Xuất phân số
Hình 1.7 Hàm tìm UCLN
Hình 1.8 Hàm rút gọn phân số
BÀI 2:Lp s phc
Hình 2.1 Class diagram của lớp Số Phức
Hình 2.2 Khai báo lớp Số Phức
Hình 2.3 Input&Output
BÀI 3:Lp thi gian
Hình 3.1 class thi gian
Hình 3.2 Khai báo lp thi gian
BÀI 4: lp NgayThangNam....
Hình 4.1 Class diagram ca lp NgayThangNam
Hình 4.2 Thc hin xây dng lp, khai báo các thuộc tính, phương thức ca lp
NgayThangNam
Hình 4.3 Chương trình cha các câu lệnh dùng để thc thi hàm ca lp
NgayThangNam
Hình 4.4 Phn cha các câu lệnh chính đ nhp và xut các giá tr
Hình 4.5 Nhp vào 2 ngày
Hình 4.6 Kết qu s ngày trong năm của hai ngày nhp vào
Hình 4.7 Ngày mi sau khi tăng, giảm và khong cách giữa hai ngày ban đu
HÌnh 4.8 Ngày mi sau khi tăng gim 1 ngày và so sánh 2 ngày
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
6 |
P a g e
NI DUNG BÀI LÀM
Bài 1: Xây dựng lớp phân số:
• Thuộc tính: iTu, iMau
• Phương thức: PhanSo(), PhanSo(int Tu, int Mau)
• Thực hiện các phương thức operator: +, -, *, /, ==, !=, >=, <=, >, <, >>, <<
Hình 1.1 Class diagram lớp Phân Số
Khai báo của lớp Phân số:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
7 |
P a g e
Hình 1.2 Khai báo lớp Phân Số
Nội dung các phương thức của lớp phân số:
Nội dung phương thức nhập phân số >>:
Phương thức xuất phân số <<:
Khởi tạo hàm constructor:
Phương thức khởi tạo constructor với giá trị x,y ban đầu:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
8 |
P a g e
Phương thức operator +:
Phương thức operator -:
Phương thức operator *:
Phương thức operator /:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
9 |
P a g e
Phương thức operator ==:
Phương thức operator !=:
Phương thức operator >:
Phương thức operator <:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
10 |
P a g e
Phương thức operator >=:
Phương thức operator <=:
Bảng 1.1 Nội dung các phương thức của lớp Phân số.
Input & Output:
-Nhập vào hai phân số 2/3 và 4/7 =>kết quả là kết quả cho phép + - * / và so sánh 2
phân số có giống nhau không.
Hình 1.3 Ouput ảnh 1
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
11 |
P a g e
-Hai phân số được khởi tạo sẵn trong main.cpp =>kết quả so sánh hai phân số > hay <
hơn:
Hình 1.4 Output nh 2
-Nhập vào phân số c sao đó tạo ta nhập vào hai phân số d,e với điểu kiện
=>chương trình thông báo “nhap
dung” nếu 2 phân số nhập vào thõa điều kiện nếu sai thì sẽ thông báo sai
Hình 1.5 Output ảnh 3
ng x lý các phương thức trong lp Phân s:
-Phương thức nhập dùng toán tử operator: istream& operator>>(istream& in, PhanSo&
p)
Khai báo hàm bn trong class PhanSo friend istream& operator>>(istream& in,
PhanSo& p)
-Phương thức xuất dùng toán tử operator: ostream& operator<<(ostream& out,
PhanSo& p)
Khai báo hàm bn trong class PhanSo
friend ostream& operator<<(ostream& out,
PhanSo& p)
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
12 |
P a g e
Hình 1.6 Xuất phân số
+Nếu tử =0 thì xuất phân số là 0.
+Tử và mẫu cùng dấu(âm hoặc dương) thì kết quả là trị tuyệt đối của hai số tử mẫu.
+Ngược lại nếu trái dấu thì kết quả là âm.
-Một số phương thức được bổ sung như RutGon tìm UCLN:
Hình 1.7 Hàm tìm UCLN
Hình 1.8 Hàm rút gọn phân số
-Phương thức operator +,-,*,/: dùng công thức cộng, trừ, nhân, chia hai phân số để thực
hiện phép toán trên
-Phương thức operator so sánh >=, <=, >, <: ban đầu thực hiện quy đồng để so sánh hai
tử số với nhau, đối với toán tử >=, <= thì thêm điều kiện hai tử bằng nhau
CODE BÀI 1:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
13 |
P a g e
Bài 2: Xây dựng lớp số phức:
• Thuộc tính: dThuc, dAo
• Phương thức: SoPhuc(), SoPhuc (int thuc, int ao)
• Thực hiện các phương thức operator: +, -, *, /, ==, !=, >>, <<
Class diagram của lớp số phức
Hình 2.1 Class diagram của lớp Số Phức
Khai báo của lớp số phức:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
14 |
P a g e
Hình 2.2 Khai báo lớp Số Phức
Nội dung các phương thức của lớp số phức:
Nội dung phương thức nhập số phức >>:
Phương thức xuất số phức <<:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
15 |
P a g e
Khởi tạo hàm constructor:
Phương thức khởi tạo constructor với giá trị thực,ảo ban đầu:
Phương thức operator +:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
16 |
P a g e
Phương thức operator -:
Phương thức operator *:
Phương thức operator /:
Phương thức operator ==:
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
17 |
P a g e
Phương thức operator !=:
Bảng 2.1 Nội dung các phương thức của lớp số phức
Input&Output
Hình 2.3 Input&Output
Hướng xử lý các phương thức số phức:
Gọi hai số phức A(a
1
, a
2
), B(b
1
, b
2
)
Tất cả các phương thức đều được trả về SoPhuc kq
Giải quyết trường hợp cộng 2 số phức:
Dùng công thức cộng hai số phức: A + B = (a
1
+b
1
, a
2
+b
2
)
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
18 |
P a g e
Giải quyết phương thức trừ 2 số phức:
Dùng công thức trừ hai số phức: A - B = (a
1
-b
1
, a
2
-b
2
)
Giải quyết phương thức nhân (tính tích) 2 số phức:
Dùng công thức nhân hai số phức: A * B = (a
1
*b
1
a
2
*b
2
, a
1
*b
2
+a
2
*b
1
)
Giải quyết phương thức chia 2 số phức:
Dùng công thức chia hai số phức: A/B=
2
2
2
1
2121
2
2
2
1
2211
**
,
**
bb
baab
bb
baba
So sánh hai s phức:
So sánh phần thực và phần ảo nếu bằng nhau thì hai số phức bằng nhau ngược
lại thì khác nhau
CODE BÀI 2.
Bài tp 3: Xây dng lp thi gian
Thuc tính: iGio, iPhut, iGiay
Phương thức: ThoiGian(), ThoiGian (int Gio, int Phut, int Giay), TinhGiay(),
TinhLaiGio(int Giay)
Thc hiện các phương thức operator: +(int Giay), -(int Giay), +(ThoiGian a), -
(ThoiGian a), ++, --, ==, !=, >=, <=, >, <, >>, <<
Yêu cu: Thc hin xây dng lp, v class diagram và khai báo các thuc tính,
phương thức. Viết nội dung vào các phương thức đã khai báo. Gọi các phương thức
trong hàm main()
Bài làm
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
19 |
P a g e
1.1.1 Class diagram ca lp ThoiGian:
Hình 3.1 class thi gian
Code ca lp ThoiGian bao gm các thuộc tính và phương thức:
Hình 3.2 Khai báo lp thi gian
IT002 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
20 |
P a g e
Nội dung các phương thức trong lp ThoiGian:
Phương thức khai báo constructor không truyn tham s:
Khi ta khai báo 1 đối tượng ThoiGian không truyn tham s thì ba biến iGio, iPhut,
iGiay s có giá tr mặc định là 0 (nghĩa là 0 giờ 0 phút 0 giây).
Phương thức khai báo constructor có truyn tham s:
Khi ta khai báo 1 đối tượng ThoiGian truyn tham s thì ba biến iGio, iPhut, iGiay
sgiá tr tương ứng vi giá tr mà ta truyn vào.
Phương thức tính giây (TinhGiay()):
Input: Thi gian mà ta muốn đổi ra giây.
Output: S giây tính được da vào thi gian đã cho.
ng gii quyết:
1. Tính tng s giây tương ứng vi s gi bng cách nhân s gi vi 3600 (s giây
trong mt gi).
2. Tính tng s giây tương ứng vi s phút bng cách nhân s phút vi 60 (s giây
trong mt phút).
3. Cng tng s giây t các bước trên vi s giây.
4. Tr v kết qu là tng s giây.
| 1/44

Preview text:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI TẬP THỰC HÀNH 3 GVHD: Nguyễn Ngọc Quí
Sinh viên thực hiện: Nguyễn Thị Như Trang-23521628
 Tp. Hồ Chí Minh, 02/2024 
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
……., ngày…….. tháng……năm 2024 Người nhận xét
(Ký tên và ghi rõ họ tên) 2 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG MỤC LỤC 1 BÀI 1
1.1 Xây dựng lớp PhanSo bao gồm:…………………………………………………
1.2 Diagram của lớp PhanSo:…………………………………………….. . . . . . . . .
1.3 Khai báo của lớp PhanSo, bao gồm các thuộc tính và phương thức:.. . . . . . . . .
1.4 Nội dung các phương thức trong lớp PhanSo:………………………………….
1.5 Hướng xử lý các phương thức PhanSo:…………………………………………. 2 BÀI 2:
2.1 Xây dựng lớp SoPhuc bao gồm:…………………………………………………
2.2 Diagram của lớp SoPhuc:…………………………………………….. . . . . . . . ..
2.3 Khai báo của lớp SoPhuc, bao gồm các thuộc tính và phương thức:.. . . . . . . . .
2.4 Nội dung các phương thức trong lớp SoPhuc:…………………………………..
2.5 Hướng xử lý các phương thức SoPhuc:…………………………………………. 3 BÀI 3:
3.1 Xây dựng lớp ThoiGian bao gồm:………………………………………….. ......
3.2 Diagram của lớp ThoiGian :…………………………………………….. . . ......
3.3 Khai báo của lớp ThoiGian , bao gồm các thuộc tính và phương thức:.. . . ......
3.4 Nội dung các phương thức trong lớp ThoiGian :………………………….........
3.5 Hướng xử lý các phương thức ThoiGian :………………………………………. 4 Bài 4:
4.1 Xây dựng lớp ngày tháng năm bao gồm:………………………………………..
4.2 Diagram của lớp NgayThangNam:……………………………………………..
4.3 Khai báo của lớp NgayThangNam, bao gồm các thuộc tính và phương thức:..
4.4 Nội dung các phương thức trong lớp NgayThangNam:………………………..
4.5 Hướng xử lý các phương thức ngày tháng năm tiếp theo:………………………
3 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG DANH MỤC BẢNG
1.Danh mục bảng lớp phân số:
Bảng 1.1 Nội dung các phương thức lớp phân số
2. Danh mục bảng lớp số phức:
Bảng 2.1 Nội dung các phương thức lớp số phức
3.Danh mục bảng lớp thời gian:
Bảng 3.1. Nội dung các phương thức lớp thời gian+ Input&Output
4.Danh mục bảng của lớp NgayThang Nam....
Bảng 4.1 Phương thức khởi tạo 2 hàm NgayThangNam()
Bảng 4.2 Phương thức thực hiện hàm TinhNgay()
Bảng 4.3 Phương thức thực hiện operator cộng thêm vào một số ngày operator+(int Ngay)
Bảng 4.4 Phương thức operator thực hiện giảm đi một số ngày operator-(int Ngay)
Bảng 4.5 Phương thức operator thực hiện tăng thêm 1 ngày nhập vào operator++()
Bảng 4.6 Phương thức operator thực hiện giảm thêm 1 ngày nhập vào operato--():
Bảng 4.7 Phương thức operator thực hiện so sánh 2 ngày bằng nhau operator==()
Bảng 4.8 -Phương thức operator thực hiện so sánh 2 ngày khác nhau operator !=()
Bảng 4.9 Phương thức operator thực hiện tìm ngày nào lớn hơn hoặc bằng giữa 2
ngày nhập vào operator>=()
Bảng 4.10 Phương thức operator thực hiện tìm ngày nào bé hơn hoặc bằng giữa 2
ngày nhập vào operator<=()
Bảng 4.11 Phương thức operator thực hiện tìm ngày nào lớn hơn giữa 2 ngày nhập vào operator>()
Bảng 4.12 Phương thức operator thực hiện tìm ngày nào bé hơn giữa 2 ngày nhập vào operator<()
Bảng 4.13 Phương thức operator thực hiện hàm nhập vào operator>>( istream& is, NgayThangNam& a)
Bảng 4.14 Phương thức operator thực hiện hàm in ra operator<< ( ostream& is,
const NgayThangNam& a)
Bảng 4.15 Hướng xử lí của hàm operator-(int Ngay) 4 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bảng 4.16 Hướng xử lí của hàm operator-(int Ngay)
Bảng 4.17 Hướng xử lí cuat hàm operator++()
Bảng 4.18 Hướng xử lí của hàm operator—
Bảng 4.19 Hướng xử lí của các hàm operator ==, !=,>=, <=, >, < DANH MỤC HÌNH ẢNH
BÀI 1:Lớp phân số
Hình 1.1 Class diagram lớp Phân Số
Hình 1.2 Khai báo lớp Phân Số
Hình 1.3 Ouput ảnh 1
Hình 1.4 Output ảnh 2
Hình 1.5 Output ảnh 3
Hình 1.6 Xuất phân số
Hình 1.7 Hàm tìm UCLN
Hình 1.8 Hàm rút gọn phân số
BÀI 2:Lớp số phức
Hình 2.1 Class diagram của lớp Số Phức
Hình 2.2 Khai báo lớp Số Phức Hình 2.3 Input&Output
BÀI 3:Lớp thời gian
Hình 3.1 class thời gian
Hình 3.2 Khai báo lớp thời gian
BÀI 4: lớp NgayThangNam....
Hình 4.1 Class diagram của lớp NgayThangNam
Hình 4.2 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức của lớp
NgayThangNam
Hình 4.3 Chương trình chứa các câu lệnh dùng để thực thi hàm của lớp
NgayThangNam
Hình 4.4 Phần chứa các câu lệnh chính để nhập và xuất các giá trị
Hình 4.5 Nhập vào 2 ngày
Hình 4.6 Kết quả số ngày trong năm của hai ngày nhập vào
Hình 4.7 Ngày mới sau khi tăng, giảm và khoảng cách giữa hai ngày ban đầu

HÌnh 4.8 Ngày mới sau khi tăng giảm 1 ngày và so sánh 2 ngày 5 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NỘI DUNG BÀI LÀM
Bài 1: Xây dựng lớp phân số: • Thuộc tính: iTu, iMau
• Phương thức: PhanSo(), PhanSo(int Tu, int Mau)
• Thực hiện các phương thức operator: +, -, *, /, ==, !=, >=, <=, >, <, >>, <<
Hình 1.1 Class diagram lớp Phân Số
Khai báo của lớp Phân số: 6 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Hình 1.2 Khai báo lớp Phân Số
Nội dung các phương thức của lớp phân số:
Nội dung phương thức nhập phân số >>:
Phương thức xuất phân số <<:
Khởi tạo hàm constructor:
Phương thức khởi tạo constructor với giá trị x,y ban đầu: 7 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Phương thức operator +:
Phương thức operator -:
Phương thức operator *:
Phương thức operator /: 8 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Phương thức operator ==:
Phương thức operator !=:
Phương thức operator >:
Phương thức operator <: 9 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Phương thức operator >=:
Phương thức operator <=:
Bảng 1.1 Nội dung các phương thức của lớp Phân số. Input & Output:
-Nhập vào hai phân số 2/3 và 4/7 =>kết quả là kết quả cho phép + - * / và so sánh 2
phân số có giống nhau không.
Hình 1.3 Ouput ảnh 1 10 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
-Hai phân số được khởi tạo sẵn trong main.cpp =>kết quả so sánh hai phân số > hay < hơn:
Hình 1.4 Output ảnh 2
-Nhập vào phân số c và sao đó tạo ta nhập vào hai phân số d,e với điểu kiện
=>chương trình thông báo “nhap
dung” nếu 2 phân số nhập vào thõa điều kiện nếu sai thì sẽ thông báo sai
Hình 1.5 Output ảnh 3
Hướng xử lý các phương thức trong lớp Phân số:
-Phương thức nhập dùng toán tử operator: istream& operator>>(istream& in, PhanSo& p)
Khai báo hàm bạn trong class PhanSo friend istream& operator>>(istream& in, PhanSo& p)
-Phương thức xuất dùng toán tử operator: ostream& operator<<(ostream& out, PhanSo& p)
Khai báo hàm bạn trong class PhanSo friend ostream& operator<<(ostream& out, PhanSo& p) 11 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Hình 1.6 Xuất phân số
+Nếu tử =0 thì xuất phân số là 0.
+Tử và mẫu cùng dấu(âm hoặc dương) thì kết quả là trị tuyệt đối của hai số tử mẫu.
+Ngược lại nếu trái dấu thì kết quả là âm.
-Một số phương thức được bổ sung như RutGon tìm UCLN:
Hình 1.7 Hàm tìm UCLN
Hình 1.8 Hàm rút gọn phân số
-Phương thức operator +,-,*,/: dùng công thức cộng, trừ, nhân, chia hai phân số để thực hiện phép toán trên
-Phương thức operator so sánh >=, <=, >, <: ban đầu thực hiện quy đồng để so sánh hai
tử số với nhau, đối với toán tử >=, <= thì thêm điều kiện hai tử bằng nhau CODE BÀI 1: 12 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bài 2: Xây dựng lớp số phức: • Thuộc tính: dThuc, dAo
• Phương thức: SoPhuc(), SoPhuc (int thuc, int ao)
• Thực hiện các phương thức operator: +, -, *, /, ==, !=, >>, <<
Class diagram của lớp số phức
Hình 2.1 Class diagram của lớp Số Phức
Khai báo của lớp số phức: 13 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Hình 2.2 Khai báo lớp Số Phức
Nội dung các phương thức của lớp số phức:
Nội dung phương thức nhập số phức >>:
Phương thức xuất số phức <<: 14 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Khởi tạo hàm constructor:
Phương thức khởi tạo constructor với giá trị thực,ảo ban đầu:
Phương thức operator +: 15 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Phương thức operator -:
Phương thức operator *:
Phương thức operator /:
Phương thức operator ==: 16 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Phương thức operator !=:
Bảng 2.1 Nội dung các phương thức của lớp số phức Input&Output
Hình 2.3 Input&Output
Hướng xử lý các phương thức số phức:
Gọi hai số phức A(a1, a2), B(b1, b2)
Tất cả các phương thức đều được trả về SoPhuc kq
Giải quyết trường hợp cộng 2 số phức:
Dùng công thức cộng hai số phức: A + B = (a1+b1, a2+b2) 17 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Giải quyết phương thức trừ 2 số phức:
Dùng công thức trừ hai số phức: A - B = (a1-b1, a2-b2)
Giải quyết phương thức nhân (tính tích) 2 số phức:
Dùng công thức nhân hai số phức: A * B = (a1*b1 – a2*b2, a1*b2+a2*b1)
Giải quyết phương thức chia 2 số phức:
a *b a *b b *a a *b
Dùng công thức chia hai số phức: 1 1 2 2 1 2 1 2 A/B=  , 2 2 2 2   b b b b 1 2 1 2 
So sánh hai số phức:
So sánh phần thực và phần ảo nếu bằng nhau thì hai số phức bằng nhau ngược lại thì khác nhau CODE BÀI 2.
Bài tập 3: Xây dựng lớp thời gian
• Thuộc tính: iGio, iPhut, iGiay
• Phương thức: ThoiGian(), ThoiGian (int Gio, int Phut, int Giay), TinhGiay(), TinhLaiGio(int Giay)
• Thực hiện các phương thức operator: +(int Giay), -(int Giay), +(ThoiGian a), -
(ThoiGian a), ++, --, ==, !=, >=, <=, >, <, >>, <<
Yêu cầu: Thực hiện xây dựng lớp, vẽ class diagram và khai báo các thuộc tính,
phương thức. Viết nội dung vào các phương thức đã khai báo. Gọi các phương thức trong hàm main() Bài làm 18 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
1.1.1 Class diagram của lớp ThoiGian:
Hình 3.1 class thời gian
Code của lớp ThoiGian bao gồm các thuộc tính và phương thức:
Hình 3.2 Khai báo lớp thời gian 19 | P a g e
IT002 – LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Nội dung các phương thức trong lớp ThoiGian:

Phương thức khai báo constructor không truyền tham số:
Khi ta khai báo 1 đối tượng ThoiGian không truyền tham số thì ba biến iGio, iPhut,
iGiay sẽ có giá trị mặc định là 0 (nghĩa là 0 giờ 0 phút 0 giây).
Phương thức khai báo constructor có truyền tham số:
Khi ta khai báo 1 đối tượng ThoiGian có truyền tham số thì ba biến iGio, iPhut, iGiay
sẽ có giá trị tương ứng với giá trị mà ta truyền vào.
Phương thức tính giây (TinhGiay()):
Input: Thời gian mà ta muốn đổi ra giây.
Output: Số giây tính được dựa vào thời gian đã cho.
Hướng giải quyết:
1. Tính tổng số giây tương ứng với số giờ bằng cách nhân số giờ với 3600 (số giây trong một giờ).
2. Tính tổng số giây tương ứng với số phút bằng cách nhân số phút với 60 (số giây trong một phút).
3. Cộng tổng số giây từ các bước trên với số giây.
4. Trả về kết quả là tổng số giây. 20 | P a g e