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 1

25 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 1
Tác giả Trần Quang Đề
Người hướng dẫn Nguyễn Ngọc Qui, Giáo Viên Hướng Dẫn
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ồ Chí Minh
Định dạng
Số trang 25
Dung lượng 5,52 MB

Nội dung

ccc ccc cect ecentteeeenees 20 1.4.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức..... IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG DANH MỤC BẢNG Bảng 1 Nội dung code của phương th

Trang 1

DAI HOC QUOC GIA THÀNH PHÓ HỎ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CONG NGHE PHAN MEM

MON LAP TRINH HUONG DOI TUQNG

BAI TAP THUC HANH 1

GVHD: Nguyễn Ngọc Qui

Sinh viên thực hiện: Trần Quang Đề - 23520283

Trang 2

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Ÿ Tp Hồ Chí Minh, 03/2024 II

2|Page

Trang 3

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

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

gày tháng năm 2024

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

3|Page

Trang 4

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

1.1.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức 1.1.2 Viết nội dung vào các phương thức đã khai báo -Sc sec ren 1.1.3 Gọi các phương thức trong ham bằng main() - 5s s2 21x czxrret 1.1.4 Kết quả thực thi

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

1.2.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức 1.2.2 Viết nội dung vào các phương thức đã khai báo 5 cccsctersrszszea 1.2.3 Gọi các phương thức trong hàm matn() - 5-5 2-2222 222<x‡+2>ssx +2

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

1.3.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức 1.3.2 Viết nội dung vào các phương thức đã khai báo

1.3.3 Gọi các phương thức trong hàm matn() 5-5 22-22222222 s>sss +2

1.4Bài tập 4: Xây dựng lớp Giờ Phút Glay ow ccc ccc cect ecentteeeenees 20 1.4.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thức 1.4.2 Viết nội dung vào các phương thức đã khai báo s- - cccctersrsrszea 1.4.3 Gọi các phương thức trong hàm matn() - 5-5 222522222 x+2sssx +2

4|Page

Trang 5

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

DANH MỤC BẢNG

Bảng 1 Nội dung code của phương thức ngày tháng năm tiếp theo

Bảng 2 Kết quả thực thi

Bảng 3 Gọi các phương thức trong hàm main

Bảng 4 Gọi các phương thức trong hàm main)

5|Page

Trang 6

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

Hình 2 Xây dựng lớp, khai báo các thuộc tính, phương thức

Hình 3 Nội dung code của phương thức nhập

Hình 4 Nội dung của phương thức xuất

Hình 5 Gọi các phương thức trong hàm main()

Hình ó Class dìagram của lớp PhanSo

Hình 7 Xây dựng lớp, khai báo các thuộc tính

Hình 8 Nội dung code của phương thức nhập

Hình #9 Nội dung code phương thức xuất

Hình 10 Nội dung code phương thức rút gọn

Hình 11 Nội dung code phương thức tổng

Hình 12 Nội dung code phương thức hiệu

Hình 13 Nội dung code phương thức tích

Hình 14 Nội dung code phương thức thương

Hình 15 Nội dung code phương thức so sánh

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

Hình 17 Xây dựng lớp, khai báo các thuộc tính

Hình 18 Nội dung code phương thức nhập

Hình 19 Nội dung code phương thức xuất

Hình 20 Nội dung code phương thức tổng

Hình 21 Nội dung code phương thức hiệu

Hình 22 Nội dung code phương thức tích

Hình 23 Nội dung code phương thức thương

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

Hình 25 Xây dựng lớp, khai báo các thuộc tính

Hình 2é Nội dung code phương thức nhập

Hình 27 Nội dung code phương thức xuất

Hình 28 Nội dung code phương thức tính thêm một giây

Hình 29 Gọi các phương thức trong hàm main()

6|Page

Trang 7

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

NỘI DUNG BÀI LÀM

1.1 Bài tập 1 Xây dựng lớp ngày thang nam

° - Thuộc tinh: iNgay, iThang, iNam

* Phương thức: NhapQ, Xuat (), Ngay ThangNamTiep Theo()

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

Ngay ThangNam

Hinh I Class diagram cua lop NgayThangNam

1.L1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thực

#pragma once {

iNgay, iThang, iNam;

Nhap();

Xuat();

NgayThangNamTiepTheo() ;

Hinh 2 Xdy dung lop, khai bao eae thuéc tinh, phuong thie

1.1.2 Viết nội dung vào các phương thức đã khai báo

Phương thức nhập:

7|Page

Trang 8

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

cout << iNgay << "/" << iThang << "/" << iNam << endl;

Hinh 4 Néi dung ctia phuong thức xuất

Phương thức Ngày Tháng Năm tiếp theo:

* Input: Nhập ngày tháng năm

* Output: Ngày tiếp theo của ngày được nhập

- - Phương thức giải quyết: Sử dụng câu lệnh điều kién if else de liệt kê và xử ly các trường hợp như năm nhuận, năm không nhuận, ngày cuối tháng, ngay cudi

Trang 9

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

iThang = 3;

iThang == 10) {

iNgay = iNgay + 1;

if (INgay == 32) { iNgay = 1;

else {

iNgay = iNgay + 1;

if (INgay == 31) { iNgay = 1;

Trang 10

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

24/3/2024 28/2/2000 28/2/2000

29/2/2000

1.2 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(Q), Xuat(), RutGon(), Tong(), HieuQ), TichQ, Thuong(), SoSanh()

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

10|Page

Trang 11

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

NA Si:

+ Nhap(): void + Xuat(): void + RutGon(): void + Tong(): void + Hieu(): void Sam onl @ Maree + Thuong(): void + SoSanh(Q):: void

Hinh 6 Class diagram cua lop PhanSo

1.2.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thực

Thuong(

SoSanh(

Hinh 7 Xây dựng lớp, khai báo các thuộc tính

1.2.2 Viết nội dung vào các phương thức đã khai báo

Phương thức nhập:

11|Page

Trang 12

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

::Nhap(C)

cout << "N

cin >> iTu;

cout << "Nhe cin >> iMau;

* _ Input: tử và mẫu được nhập vào bàn phím người dùng

* Output: phân số đã được rút gọn

* Phương thức: tìm ước chung lớn nhất của tử và mẫu, rồi lân lượt chia tử và mẫu cho ước chung lớn nhât Nêu mâu sô là sô âm, phương thức sẽ đảo dâu sô

đó đề đảm bảo phân sô được biêu điện đúng

12|Page

Trang 13

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

» _ Input: Nhận một tham số đối tượng “PhanSo” (ps) đề thực hiện phép cộng

* Output: Trả về kết quả của phép cộng

* Phuong thức: Khởi tạo đối tượng ketqua dé lưu kết quả Tính tử số mới của ketQua bang cách nhân tử sô của phân sô hiện tại (7u) với mâu sô của phân sô

“ps”, sau đó cộng với tích của mâu sô của phân sô hiện tại (Mau) với tử sô của phan so “ps” Tính mâu sô mới của “ketQua” băng tích của mâu so của phân sô hiện tại (Mau) với mâu sô của phân so “ps” Dùng phương thức “RutGon()”

đê rút gọn “ketQua” Trả về đôi tượng “ketQua” đã được rút gọn

13|Page

Trang 14

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

::Tong(

ketqua;

ketqua.iTu = iTu * ps.iMau + iMau * ps.iTu;

ketqua.iMau = iMau * ps.iMau;

» _ Input: Nhận một tham số đối tượng “PhanSo” (ps) đê thực hiện phép trừ

* Output: Trả vẻ kết quả của phép trừ

* _ Phương thức: Tương tự với phương thức cộng

ketqua;

ketqua.iTu = iTu * ps.iMau - iMau * ps.iTu;

ketqua.iMau = iMau * ps.iMau;

° _ Input: Nhận một tham số là một đối tượng phân số ("ps"), đại diện cho phân số cần

được nhân với phân số hiện tại

- _ Output: Trả về một đối tượng là kết quả của phép nhân

- _ Phương thức: Khởi tạo một đối tượng phân số mới ("ketQua") đề lưu trữ kết quả của phép nhân Tính tử số mới của "ketQua" bằng cách nhân tử số của phân số hiện tại với

tử số của "ps", và tính mẫu số mới của "ketQua" bằng cách nhân mẫu số của phân số hiện tại với mẫu số của "ps" Gọi phương thức "RutGon()" đề rút gọn phân số

"ketQua" Tra về đối tượng “ketQua" đã được rút gọn

14|Page

Trang 15

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Fe] pated 11 6 ketqua;

ketqua.iTu = iTu * ps.iTu;

ketqua.iMau = iMau * ps.iMau;

- _ Output: Trả về một đối tượng là kết quả của phép chia

- -_ Phương thức: Khởi tạo một đối tượng "PhanSo" mới là "ketQua" đề lưu trữ kết quả của phép chia Tính tử số mới của "ketQua" bằng cách nhân tử số của phân số hiện tại

với mẫu số của "ps" Tính mẫu số mới của "ketQua" bằng cách nhân mẫu số của phân

số hiện tại với tử số của "ps" Gọi phương thức "RutGon()" đề rút gọn phân số

"ketQua" Tra về đối tượng “ketQua" đã được rút gọn

: : Thuong(

ketqua;

ketqua.iTu = iTu * ps.iMau;

ketqua.iMau = iMau * ps.iTu;

- _ Input: Nhận một tham số là một đối tượng "PhanSo" ("ps"), đại điện cho phân số cần

so sánh với phân số hiện tại

Output: Tra vé mét s6 nguyén: -1 néu phan số hiện tại nhỏ hơn phân số "ps" 1 nếu phân sô hiện tại lớn hơn phân số "ps" 0 nêu hai phân số bằng nhau

Phuong thức: Chuyên đôi tử số và mẫu số của cả hai phân số thành giá trị thập phân bằng cách chia tử số cho mẫu số So sánh hai giá trị thập phân này Trả về kết quả so sánh dựa trên kết quả của phép so sánh giữa hai giá trị thập phân

15|Page

Trang 16

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

: :SoSanh(

valuel = >CiTu) / iMau;

if (valuel < value2) return -1;

else if (valuel > value2) return 1;

eLse return 0;

Hinh 15 N6i dung code phương thức so sánh

1.2.3 Goi các phuong thc trong ham main()

Bang 3 Gọi các phương thức trong hàm main

PhanSo rutgon1 = ps1.RutGonQ;

cout << "Rut gon phan so thu nhat: ";

rutgon1.Xuat();

cout << endl:

PhanSo rutgon2 = ps2.RutGon();

cout << "Rut gon phan so thu hai: ";

rutgon2.Xuat();

cout << endl:

PhanSo tong = ps1.Tong(ps2);

cout << "Tong hai phan so: ";

tong.Xuat();

cout << endl;

PhanSo hieu = ps1.Hieu(ps2);

cout << "Hieu hai phan so: ";

hieu.Xuat();

cout << endl;

PhanSo tich = ps1.Tich(ps2);

cout << "Tich hai phan so: ";

Trang 17

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

PhanSo thuong = ps1.Thuong(ps2);

cout << "Thuong hai phan so: ";

5/7

5/7 7/10 99/70 1/70

% 50/49 Phan so thu nhat lon hon phan so thu hai

3/2

5/9

3/2

5/9 3/2 5/9 37/18 17/18 5/6 27/10 Phan so thu nhat lon hon phan so thu hai

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

* Thudc tinh: iThuc, iAo

* Phương thức: NhapQ, Xuat(), Tong(), HieuQ, TichQ), Thuong()

17|Page

Trang 18

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

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

- iThuc, iAo: double

+Nhap() : void

+Xuat(): void

+Tong(const SoPhuc& sp): SoPhuc

+Hieu(const SoPhuc& sp): SoPhuc

+Tich(const SoPhuc& sp): SoPhuc

+Thuon(const SoPhuc& sp): SoPhuc

Hinh 16 Class diagram cua lop SoPhue

13.1 Thực hiện xây dựng lớp, khai báo các thuộc tính, phương thực

Hinh 17 Xây dựng lớp, khai báo các thuộc tính

1.3.2 Viêt nội dung vào các phương thức đã khai bảo

Phương thức nhập:

« Nhập phần thực vả phần ảo từ bàn phím/ người dùng

18|Page

Trang 19

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

+ Input (đầu vào): Giá trị của 2 số phức nhập từ ban phím

« Output (đầu ra): Tông của hai số phức

- Phương thức: Tạo số phức tổng Phần thực của số phức tông là tổng của hai phân thực, phần ảo của

số phức tông là tong hai phan ảo

tong;

tong.iThuc = iThuc + sp.iThuc;

tong.iAo = iAo + sp.iAo;

return tong;

Hình 20 Nội dưng code phương thức tông

Phương thức hiệu:

+ Input (đầu vào): Giá trị của 2 số phức nhập từ ban phím

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

- Phương thức: Tạo số phức hiệu Phần thực của số phức hiệu là hiệu của hai phân thực, phân ảo của

số phức hiệu là hiệu hai phần ảo

19|Page

Trang 20

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

: :Hieu(

hieu;

hieu 1Thuc = 1Thuc -

hieu.iAo = iAo - return hieu;

Hinh 21 Nội dung code phương thức hiệu

Phương thức tích:

+ Input (đầu vào): Giá trị của 2 số phức nhập từ ban phím

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

° Phương thức: Tạo số phức tích Phần thực của số phức tích là tích của hai phan thực trừ đi tích của hai phân ảo, phân ảo của sô phức hiệu là tích của phân thực I với phân ảo 2 cộng với tích phân thực 2 voi phan ao 1

a ernie tich;

tich.iThuc = iThuc * sp.iThuc - iAo * sp.iAo;

tich.iAo = iThuc * sp.iAo + iAo * sp.iThuc;

return tich;

Hinh 22 Nội dung code phương thức tích

Phương thức thương:

+ Input (đầu vào): Giá trị của 2 số phức nhập từ ban phím

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

- Phương thức: Tạo số phức thương Tạo một biến mẫu có giá trị bằng bình phương phân thực cộng binh phương phân ả ảo của số phức 2 Phần thực của số phức thương bằng tích 2 phân thực cộng với

tích 2 phần mẫu tat cả chia cho giá trị biến mẫu Phân ảo của số phức thương bằng tích của phân ảo số

20|Page

Trang 21

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

phức 1 với phân thực số phức 2 trừ đi tích của phân thực số phức 1 với phần ảo số phức 2 tất cả đem chia cho giá trị của biên mau

: : Thuong(

thuong;

mau = sp.iThuc * sp.iThuc + sp.iAo * sp.iAo; L

thuong iThuc = (iThuc + sp.iThuc + iAo * sp.iAo) / mau; thuong.iAo = (iAo + sp.iThuc - iThuc * sp.iAo) / mau;

return thuong;

Hinh 23 Nội dung code phương thức thương

1.3.3 Gọi các phương thức trong hàm mam()

Bang 4 Gọi các phương the trong ham main()

SoPhuc tong = sp1.Tong(sp2);

cout << "Tong hai so phuc: ";

tong.Xuat();

SoPhuc hieu = sp1.Hieu(sp2);

cout << "Hieu hai so phục: ";

hieu.Xuat();

SoPhuc tich = sp1.Tich(sp2);

cout << "Tich hai so phuc: ";

tich.Xuat();

SoPhuc thuong = sp1.Thuong(sp2);

cout << "Thuong hai so phuc: ";

21|Page

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

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

TÀI LIỆU LIÊN QUAN