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: >, <, ==, >=
                
              
                                            
                                
            
                       
            
                 11 trang
11 trang | 
Chia sẻ: thanhle95 | Lượt xem: 725 | Lượt tải: 1 
              
            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 
}