Nội dung Bài tập
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 WBottleFaucetWBottleNoFaucet 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ỳ.


 Input:

-       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:

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}


=> Giá trị số lấy 3 chữ số thập phân.

    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin