- Mã:
- 19201_OOP_Final03
- Tên:
- 19201_OOP_Final03
- Dạng thi:
- oi
- Thang điểm:
- 3 điểm
- Giới hạn thời gian:
- 1 giây
- Giới hạn bộ nhớ:
- 256 MB
- Được tạo bởi:
- khiet
LƯU Ý:
- GHI ĐÚNG STT, MÃ LỚP khi đăng ký. Nếu sai bị trừ 50% tổng điểm làm bài. KHÔNG DÙNG INTERNET VÀO BẤT KỲ TRANG WEB KHÁC (ngoại trừ trang upcoder.hcmup.edu.vn). Sinh viên vi phạm bị trừ 50% tổng điểm và ngừng làm bài.
- Sinh viên copy bài và cho bạn copy dưới bất kỳ hình thức nào bị hệ thống chấm phát hiện đạt điểm 0 toàn bộ bài thi. Do đó sinh viên tự ý thức bảo vệ bài cá nhân của mình.
Người ta quản
lý thông tin các bình nước (WBottle) có mã
loại (string), tên loại (string),
dung tích lít (int), ngày sản xuất (string: viết liền dạng ddmmyyyy) và phương thức tính giá bán trả về giá bán loại bình này (double). Khi đến các nhãn hàng thì vỏ
bình được chia làm hai loại: bình có vòi và bình không vòi.
- Bình
có vòi (WBottleFaucet) có xoay được hay không (bool) và dạng vòi (int: thuộc dạng
vòi bấm=1, vòi bật=2, vòi van=3) và giá bán được tính nhau sau: trung bình 2$ cho
1 lít, nếu là dạng có xoay thì giá bán được tăng lên 10% và từng dạng vòi: dạng
vòi bấm không tăng, vòi bật là 3% và vòi van là 5% giá bán.
- Bình
không vòi (WBottleNoFaucet) loại nắp đậy (int: thuộc loại nút biển = 1, nút nhựa=2)
và giá bán được tính theo loại như sau: 1$/lit loại nút biển, 2$/lit loại nút
nhựa.
Xây dựng lại các lớp bình nước (WBottle), bình có vòi (WBottleFaucet), bình không vòi
(WBottleNoFaucet) và thiết lập mối quan hệ cần thiết giữa
các lớp này. Trong đó lớp WBottle phải là lớp trừu
tượng. Yêu cầu:
-
Quá tải hàm xuất cho 2 lớp WBottleFaucet và WBottleNoFaucet theo định dạng
o WBottleFaucet {maloai:tenloai:dungtich:ngaysx:giaban:“haveFaucet”}
o WBottleNoFaucet {maloai:tenloai:dungtich:ngaysx:giaban:“noFaucet”}
- Xây dựng phương thức tính giá bán cho Wbottle (được mô tả ở đầu bài) theo đúng kỹ thuật kế thừa – đa hình), và cho 2 lớp
kế thừa WbottleFaucet, WbottleNoFaucet.
- Quá tải toán tử cộng (+) WBottle để trả về tổng giá bán của 2 Wbottle bất kỳ.
- Dòng
1: Số nguyên N là số lượng các WBottle
- Các
dòng tiếp theo nhập thông tin một đối tượng dựa theou ký tự đầu, trong đó ‘Y’
là WBottleFaucet và ‘N’ là WbottleNoFaucet và:
o WBottleFaucet: nhập thông tin theo thứ tự mã loại, tên loại, dung tích, ngày sản xuất, có xoay (1 hoặc 0), dạng vòi.
o WBottleNoFaucet: nhập thông tin theo thứ tự mã loại, tên loại, dung tích, ngày sản xuất, dạng nắp.
Output:
- Dòng 1: xuất ra tổng giá tiền của danh sách WBottle trên
- n dòng tiếp theo: Xuất ra thông tin
các WBottle theo định dạng.
Input |
Output |
3 N b01 lavie 5 01102019 2 Y b02 aqua 19 15102019 1 2 N b03 vihawa 10 20082019 1 |
63.054 {b01:lavie:5:01102019:10.000:noFaucet} {b02:aqua:19:15102019:43.054:haveFaucet} {b03:vihawa:10:20082019:10.000:noFaucet} |
Theme :
Mời bạn soạn code