Bài giảng Phương pháp lập trình hướng đối tượng - Tuần 4: Bài tập - Phạm Tú San

Bài tập 4.4 Xây dựng lớp Time có những phương thức sau (Nhóm tạo hủy) Khởi tạo mặc định vào thời điểm 0:0:0. Khởi tạo từ giờ, phút, giây cho trước. Khởi tạo từ giây tuyệt đối trong ngày. Khởi tạo từ một đối tượng Time khác. (Nhóm truy xuất thông tin) Thông báo giờ, phút, giây. Thông báo giây tuyệt đối trong ngày.5 Bài 4.4 (tt) Xây dựng lớp Time (tiếp theo) (Nhóm xử lý nghiệp vụ) So sánh thứ tự với một thời điểm khác. Tính khoảng cách đến thời điểm khác (đơn vị giây). Cộng giờ, phút, giây. (Nhóm toán tử) Toán tử so sánh: >, <, ==, >=

pdf11 trang | Chia sẻ: thanhle95 | Lượt xem: 422 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Phương pháp lập trình hướng đối tượng - Tuần 4: Bài tập - Phạm Tú San, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Tuần 04: Bài tập Bài 4.3 Đối tượng “mảng số nguyên” có 2 thuộc tính là mảng động chứa các đối tượng Số Nguyên và số phần tử hiện có trong mảng. Xây dựng lớp với các phương thức sao cho thực hiện được đoạn code ở slide kế bên. Cho khai báo lớp MangSoNguyen như sau: Class MangSoNguyen { private: int *GiaTri; int SoPhanTu; }; void main() { MangSoNguyen m1; // NULL, 0 phan tu MangSoNguyen m2(7); // 7 phan tu, gia tri 0 int a[100]; int n=2; a[0] = 2; a[1] = 5; MangSoNguyen m3(a,n); MangSoNguyen m4(m2); MangSoNguyen m5; m5=m2; m1.Nhap(); m1.Xuat(); cin>>m2; cout<<m2; cout<<m2.LayPhanTuTai(7); // a[7]; m3.CapNhatPhanTuTai(7,8); // a[7]=8; m3.ThemPhanTu(7,8); // a[7]=8; m2.XoaPhanTu(100); // Xoa a[100] cout<<m4.TimLonNhat(); cout<<m1.TimNguyenToLonNhat(); m2.SapTang(); m4.SapChanTang(); cout<<m3.TongLe(); } Bài tập 4.4 Xây dựng lớp Time có những phương thức sau (Nhóm tạo hủy) Khởi tạo mặc định vào thời điểm 0:0:0. Khởi tạo từ giờ, phút, giây cho trước. Khởi tạo từ giây tuyệt đối trong ngày. Khởi tạo từ một đối tượng Time khác. (Nhóm truy xuất thông tin) Thông báo giờ, phút, giây. Thông báo giây tuyệt đối trong ngày. 5 Bài 4.4 (tt) Xây dựng lớp Time (tiếp theo) (Nhóm xử lý nghiệp vụ) So sánh thứ tự với một thời điểm khác. Tính khoảng cách đến thời điểm khác (đơn vị giây). Cộng giờ, phút, giây. (Nhóm toán tử) Toán tử so sánh: >, =, <=, !=. Toán tử nhập xuất: >>, <<. Bài 4.5 Hãy cho biết đoạn chương trình trên có những lỗi gì khi biên dịch? Giải thích Đề xuất cách sửa lỗi (không sửa hàm main) Giả sử đã sửa hết lỗi, cho biết màn hình sẽ xuất ra những gì khi thực thi đoạn lệnh trong hàm main class A { private: int mI; public: A(int i){ mI = i; cout<<”tao A”; } ~A(){cout<<”huy A”;} }; void main() { A a; cout<<“gia tri: ”<<a.mI<<endl; } Khai báo các lớp và phương thức cần thiết để thực thi đoạn chương trình sau void main() { TamGiac a(2, 3, 4, 5, 6, 7); a.Xuat(); float dt = a.DienTich(); cout<<“dt tam giac: ”<<dt<<endl; Diem O = a.TrongTam(); cout<<“trong tam: ”<<O<<endl; Diem D; cout<<“Nhap diem D”; D.Nhap(); float f = D.KhoangCach(O); cout<<“Khoang cach tu diem ”<<O<<“toi diem ”<<D<<“la: ”<<f<<endl; } Bài 4.6 Bài 4.7 Hãy khai báo lớp phân số và viết các hàm cần thiết sao cho có thể đếm được số lượng phân số được tạo ra void main() { PhanSo a; PhanSo b(2, 1); int n = PhanSo::SoLuongPhanSoHienTai(); cout<<n; } Bài 4.8 Viết lớp MangPhanSo cho phép quản lý 1 mảng các phân số, sử dụng vector và cho phép thực hiện các thao tác sau: Thêm, xóa, cập nhật phân số tại một vị trí bất kì Nhập, xuất mảng phân số void main() { MangPhanSo a; a.Nhap(); PhanSo b(1, 2); a.ThemPhanSo(b); a.XoaPSTheoViTri(2); a.Xuat(); } Bài 4.9 Một trang trại nọ chuyên chăn nuôi gà. Mỗi con gà có độ tuổi (tháng), cân nặng (kg) và giới tính. Cứ ăn 1kg thức ăn thì gà sẽ tăng 0.1 kg. Gà mái có độ tuổi trên 3 tháng thì sẽ có khả năng đẻ trứng và mỗi ngày đẻ 1 trứng Gà mới nở sẽ có cân nặng là 0.1kg, giới tính ngẫu nhiên void main() { ConGa a; for(int i =0;i<3;i++){ a.ChoAn(10); //cho an 10 kg thuc an a.TangTuoi(1); //tăng tuổi của gà lên 1 } int a = a.DeTrung(); //trả ra số trứng gà đẻ trong ngày } Bài 4.9 (tt) Khai báo lớp NongTrai quản lý một đàn gà (sử dụng vector) cho phép thực hiện đoạn code sau, biết Mỗi ngày nông trại cho 1 con gà ăn 0.05kg thức ăn void main() { NongTrai a; ConGa b(3, 2.5, 0); //gà mái 3 tháng tuổi nặng 2.5kg a.Them(b); a.NuoiGa(30); //nuôi gà trong 30 ngày float kl = a.TongKhoiLuongGa(); int sotrung = a.ThuTrung(); //thu trứng gà đẻ trong 1 ngày }