Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: Multi-type vehicle rental system management

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 6: Lập trình hướng đối tượng (2): kế thừa, trừu tượng, đa hình — khóa Lập trình Java

    A rental service offers 3 types of vehicles: Car, Bike, Truck. Each type has a different fee formula based on the number of rental days.

    1. Build an abstract class Vehicle with:
      • plate (String) — license plate
      • model (String) — model name
      • abstract method double rentalFee(int days)
    2. Class Car extends Vehicle:
      • dailyRate (double)
      • rentalFee(days) = dailyRate * days
      • If days >= 7, apply a 10% discount.
    3. Class Bike extends Vehicle:
      • dailyRate (double)
      • rentalFee(days) = dailyRate * days * 0.6 (40% cheaper than a car)
    4. Class Truck extends Vehicle:
      • dailyRate (double)
      • loadKg (double) — cargo weight
      • rentalFee(days) = dailyRate * days + loadKg * 50 (load surcharge)
    5. In main:
      • Read N vehicles. Each vehicle: <type> <plate> <model> <dailyRate> [<loadKg>] (loadKg only for TRUCK).
      • Then read M rental commands: <plate> <days>.
      • For each rental, print: <plate> <fee> (2 decimal places).
      • Last line: TOTAL <total fee> (2 decimal places).
    • Định dạng đầu vào:
      • Line 1: N
      • N vehicle lines: CAR <plate> <model> <dailyRate> or BIKE <plate> <model> <dailyRate> or TRUCK <plate> <model> <dailyRate> <loadKg>
      • Next line: M — number of rental commands
      • M lines: <plate> <days>
    • Ràng buộc đầu vào:
      • 1 ≤ days ≤ 365
      • dailyRate, loadKg ≤ 10⁶
      • Plates are unique
    • Định dạng đầu ra:
      • M lines: <plate> <fee> (2 decimal places)
      • Last line: TOTAL <sum>

    Ví dụ:

    Đầu vào:

    3
    CAR 29A1 Vios 500000
    BIKE 29B2 SH 200000
    TRUCK 29C3 Hino 800000 1000
    3
    29A1 3
    29B2 5
    29C3 2
    

    Đầu ra:

    29A1 1500000.00
    29B2 600000.00
    29C3 1650000.00
    TOTAL 3750000.00
    

    Giải thích:

    Car 500K×3=1.5M (3 ngày <7 không giảm). Bike 200K×5×0.6 = 600K. Truck 800K×2 + 1000×50 = 1.6M+50K = 1.65M. TOTAL = 3.75M.

    Đầu vào:

    1
    CAR 50A123 Camry 1000000
    1
    50A123 10
    

    Đầu ra:

    50A123 9000000.00
    TOTAL 9000000.00
    

    Giải thích:

    10 ngày ≥ 7 nên giảm 10%: 1000000×10×0.9 = 9000000.

    Đầu vào:

    2
    BIKE B1 Wave 100000
    BIKE B2 Exciter 150000
    2
    B1 3
    B2 7
    

    Đầu ra:

    B1 180000.00
    B2 630000.00
    TOTAL 810000.00
    

    Đầu vào:

    1
    TRUCK T1 Big 1000000 5000
    1
    T1 1
    

    Đầu ra:

    T1 1250000.00
    TOTAL 1250000.00
    

    Giải thích:

    Truck 1 ngày: 1M + 5000×50 = 1.25M.

    Đầu vào:

    3
    CAR C1 X 300000
    CAR C2 Y 400000
    CAR C3 Z 500000
    3
    C1 7
    C2 14
    C3 6
    

    Đầu ra:

    C1 1890000.00
    C2 5040000.00
    C3 3000000.00
    TOTAL 9930000.00
    

    Giải thích:

    C1: 7 ngày → giảm 10%. C2: 14 ngày → giảm. C3: 6 ngày → không giảm. Test biên ngưỡng 7.

    Đầu vào:

    1
    CAR X1 Mio 100000
    1
    X1 365
    

    Đầu ra:

    X1 32850000.00
    TOTAL 32850000.00
    

    Giải thích:

    Thuê dài hạn 365 ngày.

    Đầu vào:

    3
    CAR C1 a 100000
    BIKE B1 b 100000
    TRUCK T1 c 100000 0
    3
    C1 7
    B1 7
    T1 7
    

    Đầu ra:

    C1 630000.00
    B1 420000.00
    T1 700000.00
    TOTAL 1750000.00
    

    Giải thích:

    Cùng dailyRate, cùng số ngày — so công thức 3 loại: Car 7×100K×0.9 = 630K; Bike 7×100K×0.6 = 420K; Truck 7×100K + 0×50 = 700K.

    Chủ đề

    🧩 Lập trình hướng đối tượng☕ JavaJavaJava: OOPTất cả môn học

    Đang tải editor...