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]
11 trang |
Chia sẻ: huongnhu95 | Lượt xem: 401 | Lượt tải: 0
Tóm tắt tài liệu Giáo trình Phương pháp lập trình hướng đối tượng - Tuần 4: Bài tập - Phạm Tú San, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
= 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
}
Các file đính kèm theo tài liệu này:
- giao_trinh_phuong_phap_lap_trinh_huong_doi_tuong_tuan_4_bai.pdf