1. Trang chủ
  2. » Luận Văn - Báo Cáo

môn lập trình hướng đối tượng bài tập thực hành 3

35 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập thực hành 3
Tác giả Nguyễn Trần Hồi Bảo, Trần Gia Bảo, Nguyễn Trọng Anh
Người hướng dẫn PTS. Nguyễn Ngọc Quớ
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Lập trình hướng đối tượng
Thể loại Bài tập thực hành
Năm xuất bản 2024
Thành phố Tp. Hồ Chi Minh
Định dạng
Số trang 35
Dung lượng 4,7 MB

Nội dung

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG Output: Một đối tượng PhanSo mới.. Trả về một đối tượng PhanSo mới với tử số và mẫu số đã chia cho UCLN... Cách thức hoạt động: Sử dụng toán tử != mặc đ

Trang 1

DAI HOC QUOC GIA THANH PHO HO CHi MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA CONG NGHE PHAN MEM

MON 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 Trần Hoài Bảo - 23520130

- Trần Gia Bảo - 23520139

- Nguyễn Trọng Anh - 23520068

œ4 Tp Hồ Chi Minh, 02/2024 wag

Trang 2

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

sen „ Hgàÿ tháng năm 2024

Người nhận xét (Ký tên và ghi rõ họ tên)

2|Page

Trang 3

[T002 — LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG

1.1 Khai báo thuộc tính, phương thức của lớp PhanSo 6 1.2 Giải thích từng phương thức: 11

Chuong 2: Xây dựng lớp số phức 18 2.1 Khai báo thuộc tính, phương thức của lớp SoPhuc 18 2.2 Giải thích từng phương thức «sec cà cà se seseeceexeevxre 2

Chuong 3: Xây dựng lớp thời gian 23 3.1 Khai báo thuộc tính, phương thức của lớp ThoiGian 23 3.2 Giải thích các phương thức: 27

Chương4: Xây dựng lớp ngày tháng năm: 32 4.1 Khai báo thuộc tính, phương thức của lớp NgayThangNam 32 4.2 _ Phương thức của lớp ThiSinh: 33

3|Pàge

Trang 4

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

NỘI DUNG BÀI LÀM

1.1 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

PhanSo

int iTuSo int iMauSo

friend istream& operator>>(istream& is, Phan So& ps);

friend ostream& operator<<(ostream& os, Phan So ps);

Diagram class cia PhanSo

4|Page

Trang 5

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

1.2 Thực hành trong Visual Studio

Trang 6

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

patel ta a

cin ++;

H void -PhanSo: : Xuat()

4

double - PhanSo: :GiaTriCuaPhanSo()

PhanSo - PhanSo: :RutGon C3

li int -UCLN -=

int - newTu -= LẠ lo VÀ

int newMau = / UCLN;

meturn - PhanSo(£newTu, - newMau ) ;

by int - PhanS

1 Nha 0o dar toe a tên) CPhanSo - ps)|

PhanSo - PhanSo: : CPhanSo -ps}

int newTu = * ps.GetMauS:

int - newMau -= *-ps.GetMauSo();

eturn -: PhanSo(newT: newMau) RutGon();

Trang 7

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

7ỊPage

Trang 8

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

&

Whap phan so thu “<<

Nhap thanh cong Thuc hien cac phep

Hai phan so bang Hai phan so khac nhau." <<

Hai phan so khac Hai phan so bang

Phan so thu nhat Len hon hoac bang phan se thu hai Phan so thu nhat nho hơn phan số thu hai

Phan so thu nhat nho hon hoạc bang phan so thu hai Phan so thu nhat len hon phan so thu hai

Phan so thu nhat Len hon phan Phan so thu nhat nho hon hoạc bang phan so

Phan so thu nhat nho hon phan so thu hai Phan so thu nhat Lon hon hoac bang phan so

Hai phan so thuc hien phep tỉnh La Pre peer

Or se ps1, p42);

rr

Nhap phan so thu 1:

Nhap gia tri cho phan so: 4 5 Nhap thanh cong!

Nhap phan so thu 2:

Nhap gia tri cho phan so:

Nhap thanh cong!

Hai phan so thuc hien phep tỉnh La

Thuc hien cac phep tinh:

Phep cong: 4/5 + 3/7 = 43/35 Phep tru: 4/5 - 3/7 = 13/35 Phep nhan: 4/5 * 3/7 = 12/35 Phep chia: 4/5 / 3/7 = 28/15 Hai phan so khac nhau

Phan so thu nhat lon hon hoac bang phan so thu hai

Phan so thu nhat Lon hon phan so thu hai

Phan so thu nhat lon hon hoac bang phan so thu hai

Trang 9

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Output: Một đối tượng PhanSo mới

Cách thức hoạt động: Gán giá trị 0 cho ïTuSo và 1 cho IMauSo

Output: Một đối tượng PhanSo mới

Cách thức hoạt động: Gán giá trị a cho iTuSo va b cho iMauSo

Ví dụ sử dụng:

PhanSo ps2(3, 4); // Khởi tạo ps2 với giá trị 3/4

Str dung cin để nhập giá trị cho ïTuSo và ïMauSo

Tăng biến đếm count để theo dõi số lượng đối tượng PhanSo đã được tạo

Trang 10

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Kiểm tra nếu iMauSo bằng 0 (lỗi chia cho 0)

Nếu ïTuSo bằng 0, xuất 0

Nếu phân số có thể rút gọn, rút gọn trước khi xuất

Xuất giá trị phân số theo định dạng tử số/mẫu số

Ep kiéu iTuSo va iMauSo sang kiéu double

Chia iTuSo cho iMauSo va tra vé két qua

Chia ca iTuSo va iMauSo cho UCLN

Trả về một đối tượng PhanSo mới với tử số và mẫu số đã chia cho UCLN

Trang 11

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Output: Giá trị tử số (ïTuSo)

Cách thức hoạt động: Tra vé gia tri iTuSo

Output: Giá trị mẫu số (iMauSo)

Cách thức hoạt động: Trả về giá trị iMauSo

Ví dụ sử dụng:

int mauSo = ps2.GetMauSo(); // Lay giá trị mẫu số của ps2

cout << "Mau so cua phan so 2:" << mauSo << endl;

GetCount():

Mục đích: Trả về số lượng đối tượng PhanSo đã được tạo

Input: Không có

Output: Số lượng đối tượng PhanSo

Cách thức hoạt động: Trả về giá trị của biến đếm count

Ví dụ sử dụng:

int soLuong = PhanSo::GetCount(); // Lấy số lượng đối tượng Phan§o đã tạo

cout << "So luong phan so đa tao: ” << soLuong << endl;

5 Phương thức toán tử:

5.1 Toán tử so sánh:

operator==:

Mục đích: Kiểm tra xem hai phân số có bằng nhau hay không

Input: Một đối tượng PhanSo khác

Output: Giá trị true nếu hai phân số bằng nhau, false nếu khác nhau

Cách thức hoạt động: So sánh giá trị tích chéo (tử số của phân số này nhân với mẫu số của phân số kia và ngược lại) của hai phân số

W|Page

Trang 12

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Mục đích: Kiểm tra xem hai phân số có khác nhau hay không

Input: Một đối tượng PhanSo khác

Output: Giá trị true nếu hai phân số khác nhau, false nếu bằng nhau

Cách thức hoạt động: Sử dụng toán tử != mặc định của C++ để so sánh hai đối tượng PhanSo

Output: Giá trị true nếu phân số này lớn hơn hoặc bằng phân số kia, false nếu nhỏ hơn

Cách thức hoạt động: So sánh giá trị tích chéo (tử số của phân số này nhân với mẫu số của phân số kia và ngược lại) của hai phân số Sử dụng toán tử >= mặc định của C++ để so sánh kết quả

Trang 13

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Output: Giá trị true nếu phân số này nhỏ hơn hoặc bằng phân số kia, false nếu lớn hơn

Cách thức hoạt động: Tương tự như toán tử operator>=, nhưng sử dụng toán tử <= mặc định của C++ để so sánh kết quả

Mục đích: Kiểm tra xem một phân số có lớn hơn một phân số khác hay không

Input: Một đối tượng PhanSo khác

Output: Giá trị true nếu phân số này lớn hơn phân số kia, false nếu nhỏ hơn hoặc bằng

Cách thức hoạt động: Tương tự như toán tử operator>=, nhưng sử dụng toán tử > mặc định của C++ để so sánh kết quả

Mục đích: Kiểm tra xem một phân số có nhỏ hơn một phân số khác hay không

Input: Một đối tượng PhanSo khác

Output: Giá trị true nếu phân số này nhỏ hơn phân số kia, false nếu lớn hơn hoặc bằng

Cách thức hoạt động: Tương tự như toán tử operator<=, nhưng sử dụng toán tử < mặc định của C++ để so sánh kết quả

Trang 14

[T002 — LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG

0perator+:

Mục đích: Cộng hai phân số

Input: Một đối tượng PhanSo khác

Output: Một đối tượng PhanSo mới biểu diễn kết quả cộng

Cách thức hoạt động:

Tính tốn tử số mới bằng iTuSo * ps.GetMauSo() + iMauSo * ps.GetTuSo() Tính tốn mẫu số mới bằng iMauSo * ps.GetMauSo()

Khởi tạo một đối tượng PhanSo mới với tử số và mẫu số mới

Rút gọn đối tượng PhanSo mới

Trả về đối tượng PhanSo mới

Ví dụ sử dụng:

Phan§o tong = ps1 + ps2; // Cộng ps1 và ps2, lưu kết quả vào tong

cout << "Tong cua phan so 1 va 2:" << tong << end];

operator-:

Mục đích: Trừ hai phân số

Input: Một đối tượng PhanSo khác

Output: Một đối tượng PhanSo mới biểu diễn kết quả trừ

Cách thức hoạt động: Tương tự như tốn tử operator+, nhưng thực hiện phép trừ thay vì phép cộng

Mục đích: Nhân hai phân số

Input: Một đối tượng PhanSo khác

Output: Một đối tượng PhanSo mới biểu diễn kết quả nhân

Cách thức hoạt động:

Tính tốn tử số mới bằng iTuSo * ps.GetTuSo()

Tính tốn mẫu số mới bằng iMauSo * ps.GetMauSo()

Khởi tạo một đối tượng PhanSo mới với tử số và mẫu số mới

Rút gọn đối tượng PhanSo mới

Trả về đối tượng PhanSo mới

14|P.àge

Trang 15

[T002 — LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG

Muc dich: Chia hai phan sé

Input: Một đối tượng PhanSo khác

Output: Một đối tượng PhanSo mới biểu diễn kết quả chia

Cách thức hoạt động:

Tính tốn tử số mới bằng iTuSo * ps.GetMauSo(

Tính tốn mẫu số mới bang iMauSo * ps.GetTuSo()

Kiểm tra nếu mẫu số mới bằng 0 (lỗi chia cho 0)

Khởi tạo một đối tượng PhanSo mới với tử số và mẫu số mới

Rút gọn đối tượng PhanSo mới

Trả về đối tượng PhanSo mới

Input: Dịng dữ liệu nhập từ cin

Output: Đối tượng PhanSo được cập nhật với giá trị nhập

Cách thức hoạt động: Sử dụng cin để nhập giá tri cho iTuSo va iMauSo

Mục đích: Xuất giá trị của một đối tượng PhanSo bằng cách sử dụng tốn tử <<

Input: Đối tượng PhanSo cần xuất

Output: Giá trị phân số được in ra màn hình

Cách thức hoạt động: Tương tự như phương thức Xuat(), nhưng sử dụng cout để xuất giá trị phân số

15|P.àge

Trang 16

[T002 — LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG

e Thuộc tính: dThuc, dAo

¢ Phuong thirc: SoPhuc(), SoPhuc (int thuc, int ao)

se Thực hiện cac phwong thirc operator: +, -, *, /, ==, !=, >>, <<

Yêu cầu: Thực hiện xây dựng lớp, vẽ class diagram va 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

friend istream& ope is, SoPhuc& sp)

m& os, SoPhuc sp)

Hình 1: class diagram cửa lớp SoPhuc Thực hiện xây dựng lớp và khai báo các thuộc tính, phương thức của lớp SoPhuc

16|P.àge

Trang 17

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Hình 2: Thực hiện xây dựng lớp, khai báo các thuộc rính, phương thúc của lớp NgayThangNam

hap so thuc thu nhat:

hap phan thuc: 4 hap phan ao: 3 hap so thuc thu hai:

hap phan thuc: 5 phan ao: 2

hai so phuc: 9+5i hai so phục: -1+1i hai so phục: 14+23i

huong hai so phuc: +01 phuc khong bang nhau

Hình 3: Kết quả chạy chương trình

17|Page

Trang 18

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

temp.dAo = dAo + return temp

oPhuc temp temp.dThuc = dThuc temp.dAo = dAo return temp

UTC u L

oPhuc temp temp.dThuc = dThuc * dThuc - dAo * dAo temp.dAo = dThuc * dAo + dAo * ett return temp

booL SoPhuc: :operat const return (dThuc tT

PTT) ey r rator TUT return

cout <<

cout « return return

Trang 19

[T002 — LẬP TRÌNH HƯỚNG ĐĨI TƯỢNG

+ Một số phức mới được tạo ra là kết quả của phép trừ giữa hai số phức

+ Số phức mới này chứa hiệu của các phần thực và phần ảo tương ứng từ hai

số phức

- Toan tty nhan (operator):

Input: const SoPhuc& other: Tham chiếu đến một số phức khác được sử dụng

trong phép nhân

Output:

+ Một số phức mới được tạo ra là kết quả của phép nhân giữa hai số phức

+ Số phức mới này chứa tích của hai số phức, được tính tốn dựa trên cơng thức phức hợp

- Tốn tử chia (operator/):

.Input: const SoPhuc& other: Tham chiếu đến một số phức khác được sử dụng

trong phép chia

Output:

+ Một số phức mới được tạo ra là kết quả của phép chia giữa hai số phức

19|P.àge

Trang 20

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

+ Số phức mới này chứa thương của hai số phức, được tính toán dựa trên công thức phức hợp

+ Hàm này yêu cầu người dùng nhập vào phần thực và phần ảo của số

phức thông qua cin

+ Dữ liệu được gan cho các thành viên dThuc và dAo của đối tượng số

Trang 21

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

lab3

Chương 3: Xây dựng lớp thời gian

3.1 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

ThoiGian operator+(int Giay) const;

ThoiGian operator-(int Giay) const;

ThoiGian operator+(const ThoiGian& a) const;

ThoiGian operator-(const ThoiGian& a) const;

ThoiGian& operator++();

ThoiGian& operator ();

bool operator==(const ThoiGian& a) const;

bool operator!=(const ThoiGian& a) const;

bool operator>=(const ThoiGian& a) const;

bool operator<=(const ThoiGian& a) const;

bool operator>(const ThoiGian& a) const;

friend std::istream& operator>>(std::istream& is, ThoiGian& tg);

friend std::ostream& operator<<(std::ostream& os, const ThoiGian& tg);

Diagram cia class ThoiGian

21;|Page

Trang 22

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

3.2 Thực hành trong Visual Studio

Trang 23

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Trang 24

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Trang 25

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

OutPut

tg1: 1 gio 30 phut H5 giay tg2: 0 gio 45 phut 30 giay tg3 = tgl + tg2: 1 gio 75 phut 75 giay tg1 > tg2: 1

tg1++: 1 gio 30 phut H6 giay tg1 : 1 gio 30 phut 45 giay tg1 == tg2: 0

tg2++: 0 gio 45 phut 31 giay tg2 : 0 gio 45 phut 30 giay tg1 < tg2: 0

tg1 + 1000s: 1 gio 47 phut 25 giay tg2 - 500s: 0 gio 37 phut 10 giay

Ví dụ sử dụng:

ThoiGian thoiGian1; // Khởi tạo thoiGian1 với thời gian mặc định (0:00:00)

ThoiGian(int Gio, int Phut, int Giay):

Mục đích: Khởi tạo một đối tượng ThoiGian mới với thời gian được chỉ định

Input:

int Gio: Giá trị giờ

int Phut: Giá trị phút

int Giay: Giá trị giây

Output: Một đối tượng ThoiGian mới với thời gian đã cho

Trang 26

[T002 — LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Input: int Giay: Số giây cần thêm hoặc trừ (giá trị dương để cộng, âm để trừ)

Output: Không có (thời gian của đối tượng được sửa đổi trực tiếp)

Input: int Giay: Số giây cần cộng

Output: Một đối tượng ThoiGian mới với thời gian cộng

Input: int Giay: Số giây cần trừ

Output: Một đối tượng ThoiGian mới với thời gian trừ

Ngày đăng: 26/09/2024, 17:26

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN