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 x 1

18 0 0
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 đề Môn Lập Trình Hướng Đối Tượng Bài Tập Thực Hành X
Tác giả Nguyễn Công Đức
Người hướng dẫn GVHD: Nguyễn Ngọc Quí
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập Thực Hành
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 1,02 MB

Nội dung

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 1

ĐẠI H C QU C GIA THÀNH PH H CHÍ MINH Ọ Ố Ố Ồ

KHOA CÔNG NGH Ệ PHẦN MỀM

Sinh viên thực hiện: Nguyễn Công Đức - 23520307

Trang 2

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

……., ngày…… tháng……năm 2024

Người nhận xét

(Ký tên và ghi rõ họ tên)

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 != if 0

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++; if 1

(iThang > 12) iThang = , iNam++; if 1

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()

void PhanSo::Xuat() {

cout << iTu << << iMau << "/" "\n" ;

}

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

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, int int 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 << if

ps1.iTu << << ps2.iMau << "/" " be hon " << ps2.iTu << << "/"

ps2.iMau << "\n" ;

else (ps1.iTu * ps2.iMau > ps1.iMau * ps2.iTu) cout << if

ps1.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 *b2 2,

a *b1 2+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 =

+

− +

+

2 2 2 1 2 1 2 1 2

2

2

1

2 2

1

1* * , * *

b b b a a b b

b

b a

b

a

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 gi lớ ờ 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

w