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

18 0 0
Tài liệu đã được kiểm tra trùng lặp
môn lập trình hướng đối tượng bài tập thực hành x 1

Đ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

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bảng 16 N i dung bên trong cộủa hướng gi i quyảết phương thức Xuat void SoPhuc::Xuat { cout... IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài tập 4: Xây dựng p g

Trang 2

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Trang 3

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG MỤC L C Ụ

Trang 4

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

DANH M C BỤẢNG

B ng 1 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() 7

B ng 2 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() 7

B ng 3 N i dung bên trong cả ộ ủa hướng giải quyết phương thức NgayThangNamTiepTheo() 7

B ng 4 K t qu ả ế ả chạy th ử chương trình bài tập 1 8

B ng 5 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() 9

B ng 6 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() 9

B ng 7 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức RutGon() 10

B ng 8 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức RutGon(int iTu, int iMau) 10

B ng 9 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tong(PhanSo ps1, PhanSo ps2) 10

B ng 10 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Hieu(PhanSo ps1, PhanSo ps2) 11

B ng 11 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tich(PhanSo ps1, PhanSo ps2) 11

B ng 12 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Thuong(PhanSo ps1, PhanSo ps2) 12

B ng 13 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức SoSanh(PhanSo ps1, PhanSo ps2) 12

B ng 14 K t qu ả ế ả chạy th ử chương trình bài tập 2 12

B ng 15 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() 13

B ng 16 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() 14

B ng 17 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tong(SoPhuc sp1, SoPhuc sp2) 14

B ng 18 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Hieu(SoPhuc sp1, SoPhuc sp2) 14

B ng 19 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Tich(SoPhuc sp1, SoPhuc sp2) 15

B ng 20 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Thuong(SoPhuc sp1, SoPhuc sp2) 15

B ng 21 K t qu ả ế ả chạy th ử chương trình bài tập 3 15

B ng 22 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Nhap() 16

B ng 23 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức Xuat() 17

B ng 24 N i dung bên trong cả ộ ủa hướng gi i quyả ết phương thức TinhCongThemMotGiay() 17

B ng 25 K t qu ả ế ả chạy th ử chương trình bài tập 4 17

Trang 5

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

DANH M C HÌNH ỤẢNH

Hình 1 Class diagram c a l p NgayThangNam 6 ủ ớHình 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 6 Hình 3 Class diagram c a l p PhanSo 8 ủ ớHình 4 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 PhanSo 9 ủ ớHình 5 Class diagram c a l p SoPhuc 13 ủ ớHình 6 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 SoPhuc 13 ủ ớHình 7 Class diagram c a l p GioPhutGiay 16 ủ ớHình 8 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 GioPhutGiayủ ớ 16

Trang 6

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

N I DUNG BÀI LÀM

• Thuộc tính: iNgay, iThang, iNam

• Phương thức: Nhap(), Xuat(), NgayThangNamTiepTheo()

Hình 1 Class diagram c a l p NgayThangNam ủ ớ

Hình 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 ủ ớ

Phương thức của class NgayThangNam: - Phương thức Nhap():

Trang 7

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Bảng 1 N i dung bên trong cộủa hướng giải quyết phương thức Nhap()

void NgayThangNam::Nhap() { cout << "Nhap ngay thang nam: "; cin >> iNgay >> iThang >> iNam; }

- Phương thức Xuat();

Bảng 2 N i dung bên trong cộủa hướng giải quyết phương thức Xuat()

void NgayThangNam::Xuat() { cout << "Ngay, Thang, Nam:";

cout << iNgay << << iThang << << iNam << "/""/""\n"; }

- Phương thức NgayThangNamTiepTheo():

• Output (đầu ra): Ngày tháng năm được cộng thêm một ngày

iNam

Bảng 3 N i dung bên trong cộủa hướng giải quyết phương thức NgayThangNamTiepTheo()

void NgayThangNam::NgayThangNamTiepTheo() { ngay = 0; int

switch (iThang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: ngay = 31; break; case 4: case 6: case 9: case 11: ngay = 30; break; case 2:

(iNam % 400 == || (iNam % 4 == 0 && iNam % 100 != if0 0))

Trang 8

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

ngay = 29; else ngay = 28; }

(iNgay <= 0 || iNgay > ngay) {if cout << "Ngay Thang Nam khong hop le"; return;

} iNgay++;

(iNgay > ngay) iNgay = , iThang++;if1 (iThang > 12) iThang = , iNam++;if1 NgayThangNam::Xuat(); }

- K t qu ế ả chạy th ử chương trình:

Bảng 4 K t quếả chạy thử chương trình bài tập 1

Nhap ngay thang nam: 20 2 2000 Ngay, Thang, Nam:20/2/2000 Ngay, Thang, Nam:21/2/2000

Bài t p 2: Xây d ng l p phân s ậựớố

• Thuộc tính: iTu, iMau

• Phương thức: Nhap(), Xuat(), RutGon(), Tong(), Hieu(), Tich(), Thuong(), SoSanh()

Hình 3 Class diagram c a l p PhanSo ủ ớ

Trang 9

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Hình 4 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 PhanSo

Phương thức của class PhanSo: - Phương thức Nhap():

Bảng 5 N i dung bên trong cộủa hướng giải quyết phương thức Nhap()

void PhanSo::Nhap() {

cout << "Nhap tu va mau: "; cin >> iTu >> iMau; if(iMau == 0) {

; cout << "Phan so khong hop le \n"

PhanSo::Nhap();}

}

- Phương thức Xuat();

Bảng 6 N i dung bên trong cộủa hướng giải quyết phương thức Xuat()

Trang 10

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

• Hướng giải quyết: Ta chỉ việc chia iTu và iMau cho GCD(iTu, iMau)

Bảng 7 N i dung bên trong cộủa hướng giải quyết phương thức RutGon()

void PhanSo::RutGon() { int gcd = gcd(iTu, iMau); iTu = iTu / gcd; iMau = iMau / gcd; cout << "Phan so rut gon la: "; PhanSo::Xuat();

}

Bảng 8 N i dung bên trong cộủa hướng giải quyết phương thức RutGon(int iTu, int iMau)

void PhanSo::RutGon( iTu, intint iMau) { int gcd = gcd(iTu, iMau); this->iTu = iTu / gcd; this->iMau = iMau / gcd; PhanSo::Xuat(); }

- Phương thức Tong(PhanSo ps1, PhanSo ps2):

• Output (đầu ra): Tổng của 2 phân số

Bảng 9 N i dung bên trong cộủa hướng giải quyết phương thức Tong(PhanSo ps1, PhanSo ps2)

void PhanSo::Tong(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau + ps2.iTu * ps1.iMau; iMau = ps1.iMau * ps2.iMau;

Trang 11

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

cout << "Tong 2 phan : "so la; PhanSo::RutGon(iTu, iMau); }

- Phương thức Hieu(PhanSo ps1, PhanSo ps2):

• Output (đầu ra): Hiệu của 2 phân số

Bảng 10 N i dung bên trong cộủa hướng gi i quyảết phương thức Hieu(PhanSo ps1, PhanSo ps2)

void PhanSo::Hieu(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau ps2.iTu * ps1.iMau;- iMau = ps1.iMau * ps2.iMau;

cout << "Hieu 2 phan so la : "; PhanSo::RutGon(iTu, iMau); }

- Phương thức Tich(PhanSo ps1, PhanSo ps2):

• Output (đầu ra): Tích của 2 phân số

Bảng 11 N i dung bên trong cộủa hướng gi i quyảết phương thức Tich(PhanSo ps1, PhanSo ps2)

void PhanSo::Tich(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iTu;

iMau = ps1.iMau * ps2.iMau; cout << "Tich 2 phan so la : "; PhanSo::RutGon(iTu, iMau); }

- Phương thức Thuong(PhanSo ps1, PhanSo ps2):

Trang 12

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Bảng 12 N i dung bên trong cộủa hướng gi i quyảết phương thức Thuong(PhanSo ps1, PhanSo ps2)

void PhanSo::Thuong(PhanSo ps1, PhanSo ps2) { iTu = ps1.iTu * ps2.iMau;

iMau = ps1.iMau * ps2.iTu; cout << "Thuong 2 phan so la : "; PhanSo::RutGon(iTu, iMau); }

- Phương thức SoSanh(PhanSo ps1, PhanSo ps2):

• Output (đầu ra): Kết quả so sánh của 2 phân số

* c và b * d

Bảng 13 N i dung bên trong cộủa hướng gi i quyảết phương thức SoSanh(PhanSo ps1, PhanSo ps2)

void PhanSo::SoSanh(PhanSo ps1, PhanSo ps2) {

if(ps1.iTu * ps2.iMau == ps1.iMau * ps2.iTu) cout << "2 phan so bang nhau\n";

else (ps1.iTu * ps2.iMau < ps1.iMau * ps2.iTu) cout << ifps1.iTu << << ps2.iMau << "/"" be hon " << ps2.iTu << << "/"

ps2.iMau << "\n";

else (ps1.iTu * ps2.iMau > ps1.iMau * ps2.iTu) cout << ifps1.iTu << << ps2.iMau << "/"" lon hon " << ps2.iTu << << "/"

ps2.iMau << "\n"; }

Bảng 14 K t quếả chạy thử chương trình bài tập 2

Nhap tu va mau: 3 4 Nhap tu va mau: 5 6 Phan so rut gon la: 3/4 Phan so rut gon la: 5/6 Tong 2 phan so la : 19/12 Hieu 2 phan so la : 1/-12 Tich 2 phan so la : 5/8 Thuong 2 phan so la : 9/10 3/6 be hon 5/6

Bài tập 3: Xây dựng số phức bao g m

• Thuộc tính: iThuc, iAo

• Phương thức: Nhap(), Xuat(), Tong(), Hieu(), Tich(), Thuong()

Trang 13

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Hình 5 Class diagram c a lủ ớp SoPhuc

Hình 6 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 SoPhucủ ớ

Phương thức của class SoPhuc: - Phương thức Nhap():

Bảng 15 N i dung bên trong cộủa hướng gi i quyảết phương thức Nhap()

void SoPhuc::Nhap() { cout << "Nhap so phuc: "; cin >> iThuc >> iAo; }

- Phương thức Xuat();

Trang 14

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Bảng 16 N i dung bên trong cộủa hướng gi i quyảết phương thức Xuat()

void SoPhuc::Xuat() {

cout << iThuc << " + " << iAo << "i\n"; }

- Phương thức Tong():

• Output (đầu ra): Tổng 2 số phức

Bảng 17 N i dung bên trong cộủa hướng gi i quyảết phương thức Tong(SoPhuc sp1, SoPhuc sp2)

void SoPhuc::Tong(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc + sp2.iThuc; iAo = sp1.iAo + sp2.iAo; cout << "Tong 2 so phuc la: "; SoPhuc::Xuat();

}

- Phương thức Hieu():

• Output (đầu ra): Hiệu 2 số phức

Bảng 18 N i dung bên trong cộủa hướng gi i quyảết phương thức Hieu(SoPhuc sp1, SoPhuc sp2)

void SoPhuc::Hieu(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc - sp2.iThuc; iAo = sp1.iAo - sp2.iAo; cout << "Hieu 2 so phuc la: "; SoPhuc::Xuat(); }

- Phương thức Tich():

• Output (đầu ra): Tích 2 số phức

Trang 15

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

•Hướng giải quyết Cho hai số phức A(a1, a2), B(b1, b2), A * B = (a: 1*b1 – a *b22, a *b12+a2*b ) 1

Bảng 19 N i dung bên trong cộủa hướng gi i quyảết phương thức Tich(SoPhuc sp1, SoPhuc sp2)

void SoPhuc::Tich(SoPhuc sp1, SoPhuc sp2) { iThuc = sp1.iThuc * sp2.iThuc - sp1.iAo * sp2.iAo; iAo = sp1.iThuc * sp2.iAo + sp2.iThuc * sp1.iAo; cout << "Tich 2 so phuc la: ";

SoPhuc::Xuat(); }

- Phương thức Thuong():

• Hướng giải quyết: Cho hai số phức A(a1, a2), B(b1, b2), A / B = +

Bảng 20 N i dung bên trong cộủa hướng gi i quyảết phương thức Thuong(SoPhuc sp1, SoPhuc sp2)

void SoPhuc::Thuong(SoPhuc sp1, SoPhuc sp2) {

iThuc = (sp1.iThuc * sp2.iThuc + sp1.iAo * sp2.iAo) / (sp2.iThuc * sp2.iThuc + sp2.iAo * sp2.iAo);

iAo = (sp1.iAo * sp2.iThuc - sp1.iThuc * sp2.iAo) / (sp2.iThuc * sp2.iThuc + sp2.iAo * sp2.iAo);

cout << "Thuong 2 so phuc la: "; SoPhuc::Xuat();

}

Bảng 21 K t quếả chạy thử chương trình bài tập 3

Nhap so phuc: 3 4 Nhap so phuc: 4 5 Tong 2 so phuc la: 7 + 9i Hieu 2 so phuc la: -1 + -1i Tich 2 so phuc la: -8 + 31i

Thuong 2 so phuc la: 0.780488 + 0.0243902i

Trang 16

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài tập 4: Xây dựng p gilớờ phút giây

• Phương thức: Nhap(), Xuat(), TinhCongThemMotGiay()

Hình 7 Class diagram c a lủ ớp GioPhutGiay

Hình 8 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 GioPhutGiay

Phương thức của class GioPhutGiay: - Phương thức Nhap():

Bảng 22 N i dung bên trong cộủa hướng gi i quyảết phương thức Nhap()

void GioPhutGiay::Nhap() { cout << "Nhap gio phut giay: "; cin >> iGio >> iPhut >> iGiay;

Trang 17

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

}

- Phương thức Xuat();

Bảng 23 N i dung bên trong cộủa hướng gi i quyảết phương thức Xuat()

void GioPhutGiay::Xuat() {

cout << iGio << << iPhut << << iGiay << ":"":""\n"; }

- Phương thức TinhCongThemMotGiay():

• Output (đầu ra): Giờ phút giây tính cộng thêm một giây

Bảng 24 N i dung bên trong cộủa hướng gi i quyảết phương thức TinhCongThemMotGiay()

void GioPhutGiay::TinhCongThemMotGiay() { iGiay++;

if(iGiay >= 60) iPhut++, iGiay = 0; if(iPhut >= 60) iGio++, iPhut = 0;

cout << "Gio phut giay sau khi cong them 1 giay la: "; GioPhutGiay::Xuat();

}

Bảng 25 K t quếả chạy thử chương trình bài tập 4

Nhap gio phut giay: 20 59 59 20:59:59

Gio phut giay sau khi cong them 1 giay la: 21:0:0

LINK CODE

Trang 18

IT002 L– ẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

TÀI LIỆU THAM KHẢO

Ngày đăng: 16/05/2024, 16:23

Tài liệu cùng người dùng

Tài liệu liên quan