BÀI 1: DIỆN TÍCH HÌNH HỌC (Abstract Class - bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng lớp trừu tượng Shape (Hình học) có phương thức trừu tượng getArea() (tính diện tích).

Xây dựng 2 lớp con kế thừa từ Shape:

Rectangle (Hình chữ nhật): có thuộc tính width (chiều rộng) và length (chiều dài).

Circle (Hình tròn): có thuộc tính radius (bán kính). Cho Pi = 3.14.

Cho một danh sách các hình học, hãy tính diện tích của từng hình.

Đầu vào:

Dòng đầu chứa số nguyên N (1 <= N <= 100) - số lượng hình.

N dòng tiếp theo, mỗi dòng bắt đầu bằng loại hình (1: Hình chữ nhật, 2: Hình tròn). Nếu là 1, tiếp theo là 2 số thực chiều rộng và chiều dài. Nếu là 2, tiếp theo là 1 số thực bán kính.

Đầu ra:

In ra diện tích của từng hình, làm tròn 2 chữ số thập phân.

Input:
2
1 4.0 5.0
2 3.0
Output:
Diện tích Hình chữ nhật: 20.00
Diện tích Hình tròn: 28.26

BÀI 2: PHƯƠNG TIỆN GIAO THÔNG (Interface - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng 2 giao diện:

Movable: chứa phương thức move().

Flyable: chứa phương thức fly().

Xây dựng lớp Car (Ô tô) chỉ triển khai Movable. Lớp Airplane (Máy bay) triển khai cả Movable và Flyable.

Đầu vào:

Dòng đầu chứa số N (1 <= N <= 100).

N dòng tiếp theo, mỗi dòng chứa loại phương tiện (1: Ô tô, 2: Máy bay) và Tên phương tiện (chuỗi viết liền).

Đầu ra:

In ra các hành động của phương tiện. Với ô tô, in ra "[Tên] đang di chuyển". Với máy bay, in ra "[Tên] đang di chuyển" và "[Tên] đang bay" trên 2 dòng.

Input:
2
1 VinFast
2 Boeing747
Output:
VinFast đang di chuyển
Boeing747 đang di chuyển
Boeing747 đang bay

BÀI 3: ĐỘNG VẬT VÀ THÚ CƯNG (Abstract Class & Interface - bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tạo lớp trừu tượng Animal có phương thức trừu tượng sound().

Tạo giao diện Pet có phương thức play().

Lớp Dog kế thừa Animal và triển khai Pet (sound: "Gâu gâu", play: "Chó đang chơi nhặt bóng").

Lớp Cat kế thừa Animal và triển khai Pet (sound: "Meo meo", play: "Mèo đang chơi cuộn len").

Lớp Tiger chỉ kế thừa Animal (sound: "Gầm gừ").

Đầu vào: Dòng đầu là N (1 <= N <= 100). N dòng sau là mã loại động vật (1: Dog, 2: Cat, 3: Tiger).

Đầu ra: In ra tiếng kêu và hành động chơi đùa (nếu có).

Input:
3
1
3
2
Output:
Gâu gâu
Chó đang chơi nhặt bóng
Gầm gừ
Meo meo
Mèo đang chơi cuộn len

BÀI 4: KẾ THỪA GIAO DIỆN (Interface Inheritance - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xây dựng giao diện An (phương thức eat()), Nghe (phương thức listen()).

Giao diện HanhViConNguoi kế thừa từ cả An và Nghe, bổ sung phương thức diChuyen().

Lớp Nguoi triển khai HanhViConNguoi. Hành động in ra tương ứng: "Người đang ăn", "Người đang nghe nhạc", "Người đang đi bộ".

Đầu vào: Dòng đầu là N. N dòng sau là các mã hành động cần gọi của đối tượng Nguoi (1: Ăn, 2: Nghe, 3: Di chuyển).

Đầu ra: In ra chuỗi hành động tương ứng bằng Tiếng Việt.

Input:
3
2
1
3
Output:
Người đang nghe nhạc
Người đang ăn
Người đang đi bộ

BÀI 5: HỆ THỐNG THANH TOÁN (Abstract Class Encapsulation - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Lớp trừu tượng PhuongThucThanhToan có phương thức trừu tượng thanhToan(double soTien).

Lớp TienMat và TheNganHang kế thừa và ghi đè phương thức này. Giao dịch qua Thẻ ngân hàng sẽ bị tính thêm 1.5% phí giao dịch.

Đầu vào: Dòng đầu là N. N dòng sau gồm mã thanh toán (1: Tiền mặt, 2: Thẻ) và Số tiền.

Đầu ra: In ra số tiền thực tế phải thanh toán (gồm cả phí nếu có), làm tròn 1 chữ số.

Input:
2
1 500000
2 1000000
Output:
Thanh toán tiền mặt: 500000.0 VNĐ
Thanh toán qua thẻ: 1015000.0 VNĐ

BÀI 6: MÁY IN ĐA NĂNG (Multiple Interfaces)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Hệ thống có 3 interface: InAn (inTaiLieu()), Scan (scanTaiLieu()), Fax (guiFax()).

Lớp MayInThuong chỉ triển khai InAn. Lớp MayDaNang triển khai cả 3 interface.

Đầu vào: Dòng 1 chứa N. N dòng sau chứa mã máy (1: Máy in thường, 2: Máy đa năng) và lệnh yêu cầu (A: In, B: Scan, C: Fax).

Đầu ra: Nếu máy hỗ trợ lệnh, in ra "Đang thực hiện". Nếu máy không hỗ trợ (ví dụ Máy in thường bị gọi lệnh Scan), in ra "Không hỗ trợ".

Input:
3
1 A
1 B
2 C
Output:
Đang thực hiện
Không hỗ trợ
Đang thực hiện

BÀI 7: HÌNH CHỮ NHẬT VÀ HÌNH VUÔNG (Hierarchy - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Lớp Rectangle có width, length và phương thức getArea(), getPerimeter().

Lớp Square kế thừa Rectangle. Trong constructor của Square chỉ nhận 1 tham số side, và dùng super(side, side) để khởi tạo.

Đầu vào: Dòng 1 là N. N dòng sau chứa mã (1: Hình chữ nhật + 2 cạnh, 2: Hình vuông + 1 cạnh).

Đầu ra: In ra "Diện tích: [S], Chu vi: [P]" của từng hình. (Làm tròn 1 chữ số).

Input:
2
1 4.0 5.0
2 3.0
Output:
Diện tích: 20.0, Chu vi: 18.0
Diện tích: 9.0, Chu vi: 12.0

BÀI 8: QUẢN LÝ NHÂN VIÊN ĐA HÌNH (bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Lớp trừu tượng Employee có phương thức tinhLuong().

FullTimeEmployee: lương = Lương cơ bản + Phụ cấp.

PartTimeEmployee: lương = Số giờ * 50000.

Tạo một mảng đối tượng kiểu Employee (Đa hình) để quản lý và tính tổng lương của tất cả nhân viên.

Đầu vào: Dòng 1 là N (số nhân viên). N dòng sau: 1 là FullTime (kèm lương cơ bản và Phụ cấp), 2 là PartTime (kèm số giờ làm).

Đầu ra: Dòng cuối in ra: "Tổng quỹ lương: [Tổng]".

Input:
2
1 5000000 1000000
2 40
Output:
Tổng quỹ lương: 8000000.0

BÀI 9: DỊCH VỤ THUÊ BAO (Trừu tượng hóa - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Giao diện ThueBao yêu cầu phương thức kiemTraHan().

Lớp DienThoai và Internet triển khai ThueBao. Dữ liệu nhập vào là số ngày còn lại. Nếu <= 0 in ra "Đã hết hạn", ngược lại in ra "Hợp lệ".

Đầu vào: Dòng đầu tiên là N. N dòng sau chứa loại dịch vụ (1: Điện thoại, 2: Internet) và số ngày còn lại.

Đầu ra: In ra trạng thái của dịch vụ tương ứng.

Input:
2
1 5
2 -2
Output:
Điện thoại: Hợp lệ
Internet: Đã hết hạn

BÀI 10: TỔNG DIỆN TÍCH (Polymorphic Array - Bài 7)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tổng hợp bài toán Hình học. Tạo một mảng đối tượng Shape (gồm cả Circle, Rectangle, Square). Sử dụng tính đa hình để duyệt qua mảng, gọi phương thức getArea() và tính tổng diện tích của TẤT CẢ các hình trong danh sách.

Đầu vào: Dòng 1 là N. N dòng sau: 1: Rectangle (w, h), 2: Circle (r), 3: Square (a). Pi = 3.14.

Đầu ra: In ra tổng diện tích của tất cả các hình trong mảng, làm tròn 2 chữ số thập phân.

Input:
3
1 2.0 3.0
2 2.0
3 4.0
Output:
Tổng diện tích: 34.56