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 xây dựng lớp ngày tháng năm bao gồm

18 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 đề Xây dựng lớp ngày tháng năm bao gồm
Tác giả Nguyễn Cụng Đức
Người hướng dẫn Nguyộn Ngoc Qui, GVHD
Trường học TRUONG DAI HOC CONG NGHE THONG TIN
Chuyên ngành MON LAP TRINH HUONG DOI TUONG
Thể loại Bài tập thực hành
Năm xuất bản 2024
Thành phố Tp. H6 Chi Minh
Định dạng
Số trang 18
Dung lượng 1,86 MB

Nội dung

TUQNG DANH MỤC HÌNH ẢNH 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 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...

Trang 1

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

MON LAP TRINH HUONG DOI TUONG

BAI TAP THUC HANH X

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

90% Tp H6 Chi Minh, 02/2024 soce

Trang 2

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

NHAN XET CUA GIAO VIÊN HƯỚNG DẪN

., 9à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 DO! TUQNG

MỤC LỤC

1.2 Bài tập 2: Xây dựng lớp phân só -2¿©++¿222E+++22E+++2E222222222zrtrrxeerrre §

1.4 Bài tập 4: Xây dựng lớp giờ phút Gidy oc ceeceeeeteteeteeeeseteeeeeeeeeeeeeaeeees l6

Trang 4

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

DANH MỤC BẢNG

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

een 7

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

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

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

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

Bang 12 Ndi dung bên trong của hướng giải quyết phương thirc Thuong(PhanSo ps1,

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

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

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

Bang 18 Ndi dung bên trong của hướng giải quyết phương thức Hieu(SoPhuc sp1, SoPhuc CxiáaiáaiiiiiiiiiiaaaẳảẳaảảÝỶÝỶẢỶẮẮ _L_ 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

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

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

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

Trang 5

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

DANH MỤC HÌNH ẢNH

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

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

Trang 6

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

NỘI DUNG BÀI LÀM

1.1 Bài tập 1: Xây dựng lớp ngày tháng năm bao gồm

» Thuộc tinh: iNgay, iThang, iNam

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() Class diagram của lớp Ngay ThangNam

NgayThangNam

- iNgay, ïThang, iNam: int

+ Nhap(): void + Xuat(): void +NgayThangNamTiepTheo(): void

Hình 1 Class diagram cửa lớp Ngay ThangNam

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 Ngay ThangNam

Hình 2 Thực hiện xây dựng lớp, khai báo các thuộc tinh, phương thức của lớp Ngay ThangNam

Phương thức của class NgayThangNam:

- Phuong thirc Nhap():

- Nội dung bén trong cua hudng giai quyét

Trang 7

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

Bảng 1 Nội dung bên trong czø #zớng giải quyếi phương thức Nhap() NgayThangNam::Nhap() {

cout << a

cin >> iNgay >> iThang >> iNam;

Phuong thirc Xuat();

- Nội dung bén trong cua hudng giai quyét

Bảng 2 Nội dung bên trong c2 zzớng giải quyế! phương (hức Xuat() NgayThangNam:

cout << lễ Cout << iNgay << << iThang << << iNam <<

Phương thức Ngay ThangNamTiepTheo():

- Input (đầu vào): Ngày tháng năm được nhập từ bàn phím/ người dùng

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

- Hướng giải quyết: Ta tìm xem tháng và năm đó có bao nhiêu ngày (ngay) Nếu iNgay <= 0 hoặc >= ngay thì ngày tháng năm đó không hợp lệ và † dừng phương thức

Nếu hợp lệ thì ta cộng thêm 1 vào iNgay, néu iNgay > ngay thì ta set iNgay vẻ 1 và cộng thêm 1 vào iThang, néu ¡Thang > 12 thì ta set ïThang về 1 và cộng thêm 1 vào

iNam

- Nội dung bên trong của hướng giải quyét

Bảng 3 Nội dung bên trong cửø ướng giải quyếi phương (hức NgayThangNamTiepTheo() NgayThangNam: :NgayThangNamTiepTheo() {

ngay = 0;

a œ Đì \Q

Seneca

nee NOs

°

(iNam 3 400 == 0 || (iNam % 4 == 0 && iNam % 100 !=

Trang 8

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

ngay = 29;

ngay = 28;

0 || 1Ngay >

cout <<

i ẢiNgay++;

(iNgay > ngay) iNgay 1, iThang++;

(iThang > 12) iThang 1, 1Nam++;

NgayThangNam: :Xuat();

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

Bảng 4 Kết quả chạy thử chương rì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

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

+ Thuộc tính: ïTu, iMau

+ Phương thirc: Nhap(), Xuat(), RutGon(), Tong(), Hieu(), Tich(), Thuong(), SoSanh() 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() Class diagram của lớp PhanSo

PhanSo

- iTu, iMau: int

+ Nhap(): void + Xuat(): void + RutGon(): void +RutGon(int iTu, int iMau): void +Tong(PhanSo ps1, PhanSo ps2): void +Hieu(PhanSo ps1, PhanSo ps2):void +Tich(PhanSo ps1, PhanSo ps2): void +Thuong(PhanSo ps1, PhanSo ps2): void

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

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 Ngay ThangNam

Trang 9

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

using namespace std;

cLass PhanSo {

public:

aah 1nt 1Mau;

public:

void

void (PhanSo psi, PhanSo ps2);

void (PhanSo psi, PhanSo ps2);

OF ()

Hình 4 Thực hiện xây dựng lớp, khai báo các thuộc đính, phương thức của lớp PhanSo

Phương thức của class PhanSo:

- Phuong thirc Nhap():

- Nội dung bên trong của hướng giải quyết:

Bảng 5 Nội dung bên trong czø #zớng giải quyềi phương thức Nhap() PhanSo::Nhap() {

cout "Nhap tu va mau:

cin iTu >> iMau;

La a

(iMau == 0) { cout << "Phan so khong hop le \n";

PhanSo::Nhap();

- Phuong thirc Xuat();

- Nội dung bên trong của hướng giải quyết:

Bảng 6 Nội dung bên trong c2 zzớng giải quyế! phương thức Xuat() PhanSo::Xuat() {

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

- Phuong thirc RutGon():

+ Input (đầu vào): Phân só được nhập từ bàn phím/ người dùng

Trang 10

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

* Output (dau ra): Phan s6 da duoc rut gọn

* Huéng giai quyét: Ta chi viéc chia iTu va iMau cho GCD(iTu, iMau)

- Nội dung bên trong của hướng giải quyết:

Bảng 7 Nội dung bên trong cử zướng giải quyếi phương thức RutGon() PhanSo::RutGon() {

gcd = _ gcd(1Tu, iMau);

iTu = iTu / gc

iMau = iMau / gcd;

cout Phans

- Phuong thirc RutGon(int iTu, int iMau):

+ Input (đầu vào): Phân só được nhập từ bàn phím/ người dùng

* Output (dau ra): Phan s6 da duoc rut gọn

* Hướng giải quyết: Tương tự như phương thức RutGon(), phuong thức này chỉ dùng

đề rút gọn các phân số ở các phương thức khác

- Nội dung bên trong của hướng giải quyết:

Bảng 8 Nội dung bên trong cửø zướng giải quyếi phương (hức RutGon(int ïTu, int iMau) ::RutGon ( uo 1Mau) {

= gcd(iTu, iMau);

->iTu = iTu / gcd;

->iMau = iMau / ged;

PhanSo: :Xuat();

- Phuong thirc Tong(PhanSo ps1, PhanSo ps2):

- Input (đầu vào): 2 phân số được nhập từ bàn phím/ người dùng

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

- Hướng giải quyết Ta áp dụng công thức a /b +c /d= (a * dđ+c * b)/(b * đ) sau đó

rút gọn phân só đáp án

- Nội dung bên trong của hướng giải quyết:

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

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

iMau = psl.iMau * ps2.iMau;

10

Trang 11

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

cout <<

PhanSo::RutGon(iTu, iMau);

- Phuong thirc Hieu(PhanSo ps1, PhanSo ps2):

- Input (đầu vào): 2 phân số được nhập từ bàn phím/ người dùng

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

« Hướng giải quyết: Ta áp dụng công thức a / b - c/d =(a* d-c*b)/(b * đ) sau đó

rút gọn phân só đáp án

- Nội dung bên trong của hướng giải quyết:

Bảng 10 Nói dung bên trong cửa zướng giải quyết phương thức Hieu(PhanSo ps1, PhanSo ps2) PhanSo: :Hieu (PhanSo psl, PhanSo ps2) {

iTu = psl.iTu * ps2.iMau - ps2.iTu * psl.iMau;

iMau = psl.iMau * ps2.iMau;

:RutGon(iTu, iMau);

- Phuong thirc Tich(PhanSo ps1, PhanSo ps2):

- Input (đầu vào): 2 phân số được nhập từ bàn phím/ người dùng

* Output (dau ra): Tich cua 2 phan so

* Huéng giai quyét: Ta Ap dung céng thitc a/b * c/d=(a* c)/(b * đ) sau đó rút gọn

phan só đáp án

- Nội dung bên trong của hướng giải quyết:

Bảng 11 Nói dung bên trong czø #ướng giải quyế: phương thức Tìch(PhanSo ps1, PhanSo ps2) PhanSo::Tich(PhanSo psl, PhanSo ps2) {

iTu = psl.iTu * ps2.iTu;

iMau = psl.iMau * ps2.iMau;

cout :RutGon(iTu, iMau);

- Phuong thirc Thuong(PhanSo ps1, PhanSo ps2):

- Input (đầu vào): 2 phân số được nhập từ bàn phím/ người dùng

+ Output (dau ra): Thuong cua 2 phan sé

+ Huéng giai quyét: Ta Ap dung công thức a / b + c/ đ= (a * đ) /(b * c) sau đó rút gọn

phân só đáp án

- Nội dung bên trong của hướng giải quyết:

11

Trang 12

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

Bang 12 Nội dung bên trong cửa /ớng giải quyế: phương thức Thuong(PhanSo ps1, PhanSo ps2) PhanSo: :Thuong (PhanSo psi, PhanSo ps2) {

iTu = psl.iTu * ps2.iMau;

iMau = psl.iMau * ps2.iTu;

cout Phan :RutGon(iTu, iMau);

- Phuong thirc SoSanh(PhanSo ps1, PhanSo ps2):

- Input (đầu vào): 2 phân số được nhập từ bàn phím/ người dùng

« Output (đầu ra): Kết quả so sánh của 2 phan sé

« Hướng giải quyết: t dùng tính chất khi so sánh 2 phân số a / b và c / d đó là so sánh a

*cvab*d

- Nội dung bên trong của hướng giải quyết:

Bang 13 Nội dung bên trong c2 zzóng giải quyết phương thức SoSanh(PhanSo ps1, PhanSo ps2)

ca"

32.iMau ca"

SN n ‹‹

Sanh(PhanSo psl, PhanSo ps2) { -iTu * ps2.iMau == psl.iMau * ps2.iTu) cout <<

a

(psl.iTu * ps2.iMau < psl.iMau * ps2.iTu) ps2.iMau << ps2.iTu <<

(psl.iTu * ps2.iMau > psi.iMau * ps2.iTu) ps2.iMau << ps2.iTu <<

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

Bang 14 Kết quả chạy thứ chương trình bai tap 2

Va mau

Va mau

ru£

ru£

phan

phan phan

2 phan so la

hon 5/6

gon gon

so la

so la

so la

3/4 5/6 19/12 1/-12 5/8 9/10

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

+ Thuộc tính: ïThuc, iAo

* Phương thức: NhapQ, Xuat(), Tong(Q), HieuQ, Tich(, ThuongQ)

cout cout

12

Trang 13

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

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() Class diagram của lớp SoPhuc

SoPhuc

- iThuc, iAo: double + Nhap(): void + Xuat(): void +Tong(SoPhuc sp1, SoPhuc sp2): void +Hieu(SoPhuc sp1, SoPhuc sp2):void +Tich(SoPhuc sp1, SoPhuc sp2): void +Thuong(SoPhuc sp1, SoPhuc sp2): void

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

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

, SoPhuc

„ SoPhuc

„ SoPhuc

(SoPhuc , SoPhuc

Hình 6 Thực hiện xây dựng lớp, khai báo các thuộc tinh, phuong thc cua |6p SoPhuc

Phương thức của class SoPhuc:

- Phuong thirc Nhap():

- Nội dung bên trong của hướng giải quyết:

Bang 15 Nội dung bên trong cửz ;zớng giải quyếi phương thức Nhap() SoPhuc::N

cout cin >> iThuc >> iAo;

- Phuong thi Xuat();

13

Trang 14

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

- Nội dung bên trong của hướng giải quyết:

Bang 16 Nội dung bên trong œ2 /zớng giải quyết phương thức XuatÔ

Phương thức Tong():

- Input (đầu vào): 2 số phức được nhập từ bàn phím/ người dùng

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

- Hướng giải quyết: Cho hai só phức A(a1, a2), B(b1, b2), A + B = (a:+b:, az+ba)

Ta chỉ việc áp dụng công thức trên

- Nội dung bên trong của hướng giải quyết:

Bảng 17 Nói dung bên trong cửa zướng giải quyết phương thức Tong(SoPhuc sp1, SoPhuc sp2) SoPhuc::Tong(SoPhuc spl, SoPhục p2) {

iThuc = spl.iThuc + sp2.iThuc;

iAo = spl.iAo + sp2.iAo;

cout <

SoPhuc

Phuong thirc Hieu():

- Input (đầu vào): 2 số phức được nhập từ bàn phím/ người dùng

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

« Hướng giải quyết: Cho hai só phức A(a1, a2), B(b1, b2), A- B = (a¡-bi, aa-ba)

Ta chỉ việc áp dụng công thức trên

- Nội dung bên trong của hướng giải quyết:

Bang 18 Nói dung bên trong của zzớng giải quyếi phương (hức Hieu(SoPhuc sp1, SoPhuc sp2) SoPhuc::Hieu(SoPhuc spl, SoPhuc sp2) {

iThuc = spl.iThuc - sp2.iThuc;

iAo = spl.iAo — sp2.iAo;

cout <

Phương thức Tich():

- Input (đầu vào): 2 số phức được nhập từ bàn phím/ người dùng

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

14

Trang 15

IT002 - LẬP TRÌNH HƯỚNG DO! TUQNG

«Hướng giải quyết: Cho hai số phức A(al, a2), B(bI1, b2), A * B = (ai*bi - az?ba,

a:”*ba+az”b4)

Ta chỉ việc áp dụng công thức trên

- Nội dung bên trong của hướng giải quyết:

Bang 19 Nói dung bên trong cửa zzóng giải quyếi phương (hức Tìch(SoPhuc sp1, SoPhuc sp2) SoPhuc::Tich(SoPhuc spl, SoPhuc sp2) {

iThuc = spl.iThuc * sp2.iThuc - spl.iAo * sp iAo = spl.iThuc * sp2.iAo + sp2.iThuc * spl.iAo;

loioibiss<

SoPhuc: :Xuat ();

- Phuong thc Thuong():

- Input (đầu vào): 2 số phức được nhập từ bàn phím/ người dùng

« Output (đầu ra): Thương 2 số phức

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

a"b+a, b b a,—a, *b,

2 2 2

be +b b, + b

Ta chỉ việc áp dụng công thức trên

- Nội dung bên trong của hướng giải quyết:

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

huong(SoPhuc spl, SoPhuc sp2) { (spl.iThuc * sp2.iThuc + spl.iAo * sp2.iAo) / (sp2.iThuc * sp2.iThuc + sp2.iAo * sp2.iAo);

iAo = (spl.iAo * sp2.iThuc - spl.iThuc * sp2.iAo) / (sp2.iThuc

* sp2.iThuc + sp2 A22 ie cout

SoPhuc:

- Két qua chay tht chuong trinh:

Bảng 21 Kết quả chạy thứ chương trinh bai tap 3

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

so phuc la: 0.780488 + 0.0243902i

15

Ngày đăng: 08/10/2024, 16:32

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

TÀI LIỆU LIÊN QUAN