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 ư

29 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 1
Tác giả Trần Lê Uyên Thy
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 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ố Thành Phố Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 1,94 MB

Nội dung

Bài tập 1: Xây dựng lớp ngày tháng năm bao gồm: • Thuộc tính: iNgay, iThang, iNam • Phương thức: Nhap, Xuat, NgayThangNamTiepTheo Yêu cầu: Thực hiện xây dựng lớp, vẽ class diagram và kh

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

CHƯƠNG 1: XÂY DỰNG L ỚP NGÀY THÁNG NĂM. 8

Class Diagram 8

Khai báo các phương thức và thuộc tính 9

Nội dung các phương thức 9

Input và Output 12

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

Kết quả 13

File code 13

CHƯƠNG 2 XÂY DỰNG LỚP PHÂN SỐ : 14

Class Diagram 14

Khai báo các phương thức và thuộc tính 15

Nội dung các phương thức 15

Input và Output 18

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

Kết quả 20

File code 20

CHƯƠNG 3: XÂY DỰNG LỚP SỐ PHỨC 21

Class Diagram 21

Khai báo các phương thức và thuộc tính 22

Nội dung các phương thức 22

Input và Output 24

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

Trang 4

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

Kết quả 25

File code 25

CHƯƠNG 4 XÂY DỰNG LỚP GIỜ PHÚT GIÂY : 26

Class Diagram 26

Khai báo các phương thức và thuộc tính 27

Nội dung các phương thức 27

Input và Output 28

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

Kết quả 29

File code 29

Trang 5

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

DANH M C B Ụ ẢNG :

CHƯƠNG 1 : XÂY DỰNG L ỚP NGÀY THÁNG NĂM. 8

9

9

9

10

12

13

CHƯƠNG 2: XÂY DỰNG LỚP PHÂN SỐ 14

15

15

15

16

16

16

16

17

17

17

19

CHƯƠNG 3: XÂY DỰNG LỚP SỐ PHỨC 21

22

22

22

Trang 6

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

24

23

23

23

25

CHƯƠNG 4: XÂY DỰNG LỚP GIỜ PHÚT GIÂY 26

27

27

27

28

29

29

Trang 7

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

DANH M C HÌNH Ụ ẢNH

CHƯƠNG 1: XÂY DỰ NG L ỚP NGÀY THÁNG NĂM. 8

8

13

CHƯƠNG 2: XÂY DỰNG LỚP PHÂN SỐ 14

14

20

CHƯƠNG 3: XÂY DỰNG LỚP SỐ PHỨC 21

21

25

CHƯƠNG 4: XÂY DỰNG LỚP GIỜ PHÚT GIÂY 26

26

29

Trang 8

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

NỘI DUNG BÀI LÀM

Chương 1: Xây dựng l ớp ngày tháng năm.

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

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

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

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:

- Chọn diagram của lớp Ngaythangnam

Hình 1.1: Diagram của lớp Ngaythangnam

Trang 9

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

Khai báo các phương thức và thuộc tính:

- Code của lớp Ngaythangnam bao gồm các thuộc tính và phương thức:

Nội dung các phương thức:

- Phương thức nhập của Ngaythangnam:

void Ngaythangnam::Nhap() {

cout << "Ngay: "; cin >> ingay;

cout << "Thang: "; cin >> ithang;

cout << "Nam: "; cin >> inam;

}

- Phương thức xuất của Ngaythangnam:

Trang 10

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

- Phương thức kiểm tra của Ngaythangnam:

else if (ithang == 4 || ithang == 6 || ithang == 9 || ithang == 11) {

if (ingay <= 0 || ingay > 30) return false;

}

else if (ithang == 2) {

if (inam % 4 == 0 && inam%100 != 0) {

if (ingay <= 0 || ingay > 29) return false;

Trang 11

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

- Phương thức ngày tháng năm tiếp theo:

ithang = 3;

} else ingay++;

}

else {

if (ingay == 28) {ingay = 1;

ithang = 3;

} else ingay++;

Trang 12

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

Input và Output

- Input: Ngày tháng năm đã nhập

- Output: Ngày tháng năm được cộng thêm m t ngày ộ

- Hướng x ử lý của ngày tháng năm tiếp theo:

+ Đối với các tháng 1, 3, 5, 7, 8, 10:

• Nếu ngày nh p vào là 31 thì tháng c ng thêm 1 và ngày tr thành 1 ậ ộ ở

• Nếu ngày nh p vào là các ngày khác ( lậ ớn hơn 0 và bé hơn 31 ) thì chỉ mỗi ngày được cộng thêm 1

+ Đối với các tháng 4, 6, 9, 11:

• Nếu ngày nh p vào là 30 thì tháng c ng thêm 1 và ngày tr thành 1 ậ ộ ở

• Nếu ngày nhâp vào là các ngày khác ( lớn hơn 0 và bé hơn 30 ) thì chỉ mỗi ngày c ng thêm 1 ộ

+ Đối v i tháng 2: ớ

• Nếu là năm nhuận:

▪ Nếu ngày nh p vào là 29 thì tháng c ng thêm 1 và ngày tr ậ ộ ở thành 1

▪ Nếu ngày nhâp vào là các ngày khác ( lớn hơn 0 và bé hơn 29 ) thì chỉ m i ngày c ng thêm 1 ỗ ộ

• Nếu là năm không nhuận:

▪ Nếu ngày nh p vào là 28 thì tháng c ng thêm 1 và ngày tr ậ ộ ở thành 1

▪ Nếu ngày nhâp vào là các ngày khác ( lớn hơn 0 và bé hơn 28 ) thì chỉ m i ngày c ng thêm 1 ỗ ộ

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

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

Trang 13

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

Kết quả:

Hình 1.2: K t qu cế ả ủa chương trình

File code: Click

Trang 14

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

Chương 2: Xây dựng lớp phân số

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

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:

- Chọn diagram của lớp PhanSo:

Trang 15

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

Khai báo các phương thức và thuộc tính:

- Code của lớp Ngaythangnam bao gồm các thuộc tính và phương thức:

PhanSo Tong(PhanSo& a);

PhanSo Hieu(PhanSo& a);

PhanSo Tich(PhanSo& a);

PhanSo Thuong(PhanSo& a);

void SoSanh(PhanSo a);

float gettu();

bool KT();

};

Bảng 2.1: Thuộc tính và phương thức của lớp PhanSo

Nội dung các phương thức:

- Phương thức nhập của PhanSo:

void PhanSo::Nhap() {

cout << "Nhap phan so: " << endl; cin >> iTu >> iMau;

}

Bảng 2.2: Phương thức nhập của PhanSo

- Phương thức xuất của PhanSo:

Trang 16

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

- Phương thức rút gọn của PhanSo:

int gcd1(int a, int b)

Bảng 2.4: Phương thức rút gọn của PhanSo

- Phương thức tổng của PhanSo:

PhanSo PhanSo::Tong(PhanSo& a) {

PhanSo sum;

sum.iTu = iTu * a.iMau + iMau * a.iTu;

sum.iMau = iMau * a.iMau;

return sum;

}

Bảng 2.5: Phương thức tổng của PhanSo

- Phương thức hiệu của PhanSo:

PhanSo PhanSo::Hieu(PhanSo& a) {

PhanSo diff;

diff.iTu = iTu * a.iMau - iMau * a.iTu;

diff.iMau = iMau * a.iMau;

return diff;

}

Bảng 2.6: Phương thức hiệu của PhanSo

- Phương thức tích của PhanSo:

PhanSo PhanSo::Tich(PhanSo& a) {

PhanSo pro;

pro.iTu = this->iTu * a.iTu;

Trang 17

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

- Phương thức lấy tử của PhanSo:

float PhanSo::gettu() {

return this->iTu;

}

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

PhanSo PhanSo::Thuong(PhanSo& a) {

PhanSo res;

res.iTu = this->iTu * a.iMau;

res.iMau = this->iMau * a.iTu;

return res;

}

- Phương thức so sánh của PhanSo:

Trang 18

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

Input và Output

- Input: Phân số đã nhập

- Output:

• Phân số đã rút gọn

• Tổng của hai phân số

• Hiệu của hai phân số

• Tích của hai phân số

• Thương của hai phân số

• Tổng của hai phân số:

▪ Tử: Lấy tử của phân số 1 nhân với mẫu của phân số 2 cộng với mẫu của phân số 2 nhân với mẫu của phân số 1

▪ Mẫu: Lấy mẫu phân số 1 nhân với mẫu của phân số 2

• Hiệu của hai phân số:

▪ Tử: Lấy tử của phân số 1 nhân với mẫu của phân số 2 cộng với mẫu của phân số 2 nhân với mẫu của phân số 1

▪ Mẫu: Lấy mẫu phân số 1 nhân với mẫu của phân số 2

• Tích của hai phân số:

▪ Tử: Lấy tử phân số 1 nhân với tử của phân số 2

▪ Mẫu: Lấy mẫu phân số 1 nhân với mẫu phân số 2

• Thương của hai phân số:

▪ Tử: Lấy tử của phân số 1 nhân với mẫu của phân số 2

▪ Mẫu: Lấy mẫu của phân số 2 nhân với tử của phân số 1

• So sánh hai phân số:

Trang 19

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

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

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

cout << "Tong cua hai phan so la: ";

PhanSo tong = p1.Tong(p2);

tong.RutGon();

tong.Xuat();

cout << "Hieu cua hai phan so la: ";

PhanSo hieu = p1.Hieu(p2);

hieu.RutGon();

hieu.Xuat();

cout << "Tich cua hai phan so la: ";

PhanSo tich = p1.Tich(p2);

tich.RutGon();

tich.Xuat();

if (p2.gettu() == 0) cout << "Ket qua khong hop le" << endl;

else {

cout << "Thuong cua hai phan so la: ";

PhanSo thuong = p1.Thuong(p2);

Trang 20

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

Kết quả

Hình 2.2: K t qu cế ả ủa chương trình

File code: Click

Trang 21

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

Chương 3: Xây dựng lớp số phức

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

• Thuộc tính: iThuc, iAo

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

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:

- Chọn diagram của lớp SoPhuc:

Hình 3.1: Diagram của lớp SoPhuc

Trang 22

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

Khai báo các phương thức và thuộc tính:

- Code của lớp SoPhuc bao gồm các thuộc tính và phương thức:

SoPhuc Tong(SoPhuc& a);

SoPhuc Hieu(SoPhuc& a);

SoPhuc Tich(SoPhuc& a);

SoPhuc Thuong(SoPhuc& a);

};

Bảng 3.1: Thuộc tính và phương thức của lớp SoPhuc

Nội dung các phương thức:

- Phương thức nhập của SoPhuc:

void SoPhuc::Nhap() {

cout << "Nhap so phuc: ";

cin >> iThuc >> iAo;

}

- Phương thức xuất của SoPhuc:

Trang 23

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

- Phương thức tổng của SoPhuc:

SoPhuc SoPhuc::Tong(SoPhuc& a) {

SoPhuc b;

b.iThuc = iThuc + a.iThuc;

b.iAo = iAo + a.iAo;

return b;

}

- Phương thức hiệu của SoPhuc:

SoPhuc SoPhuc::Hieu(SoPhuc& a) {

SoPhuc c;

c.iThuc = iThuc - a.iThuc;

c.iAo = iAo - a.iAo;

return c;

}

- Phương thức tích của SoPhuc:

SoPhuc SoPhuc::Tich(SoPhuc& a) {

SoPhuc b;

b.iThuc = iThuc * a.iThuc - iAo * a.iAo;

b.iAo = iThuc * a.iAo + iAo * a.iThuc;

return b;

}

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

SoPhuc SoPhuc::Thuong(SoPhuc& a) {

SoPhuc b;

b.iThuc = (iThuc*a.iThuc + iAo*a.iAo)/(a.iThuc*a.iThuc + a.iAo*a.iAo); b.iAo = (iAo * a.iThuc - iThuc * a.iAo) / (a.iThuc * a.iThuc + a.iAo * a.iAo)return b;

}

Trang 24

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

• Thương hai số phức:

▪ Phần thực:

Trang 25

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

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

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

int main() {

SoPhuc a, b;

a.Nhap();

b.Nhap();

cout << "Tong cua hai so phuc la: ";

SoPhuc tong = a.Tong(b);

tong.Xuat();

cout << "Hieu cua hai so phuc la: ";

SoPhuc hieu = a.Hieu(b);

hieu.Xuat();

cout << "Tich cua hai so phuc la: ";

SoPhuc tich = a.Tich(b);

tich.Xuat();

cout << "Thuong cua hai so phuc la: ";

SoPhuc thuong = a.Thuong(b);

Trang 26

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

Chương 4: Xây dựng lớp giờ phút giây

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

• Thuộc tính: iGio, iPhut, iGiay

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

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:

Chọn diagram của lớp GioPhutGiay:

Hình 4.1: Diagram của lớp GioPhutGiay

Trang 27

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

Khai báo các phương thức và thuộc tính:

- Code của lớp GioPhutGiay bao gồm các thuộc tính và phương thức:

Bảng 4.1: Thuộc tính và phương thức của lớp GioPhutGiay

Nội dung các phương thức:

- Phương thức nhập của GioPhutGiay:

void GioPhutGiay::Nhap() {

cout << "Nhap thoi gian: "; cin >> iGio >> iPhut >> iGiay;

}

Bảng 4.2: Phương thức nhập của GioPhutGiay

- Phương thức xuất của GioPhutGiay:

void GioPhutGiay::Xuat() {

cout << iGio << ":" << iPhut << ":" << iGiay << endl } ;

Bảng 4.3: Phương thức xuất của GioPhutGiay

- Phương thức kiểm tra của GioPhutGiay:

Trang 28

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

- Phương thức tính cộng thêm một giây của GioPhutGiay:

} else iGio++;

- Input: Giờ phút giây đã nhập

- Output: Giờ phút giây c ng thêm m t giâyộ ộ

- Hướng x ử lý của ngày tháng năm tiếp theo:

• Nếu gi ờ đã nhập là 23 và phút là 59, giây là 59 thì s ẽ xuất ra gi m i b ng ờ ớ ằ

0, phút b ng 0 và giây b ng 0.ằ ằ

• Nếu phút đã nhập là 59, và giây là 59 thì giờ sẽ cộng 1, phút bằng 0 và giây b ng 0.ằ

• Nếu giây b ng 59 thì phút c ng 1.ằ ộ

Trang 29

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

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

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

Ngày đăng: 11/02/2025, 16:19

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

TÀI LIỆU LIÊN QUAN