[Buổi 28][Kế thừa][HW] Bài 1: Account → SavingsAccount


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Account → SavingsAccount

Bối cảnh

Một ngân hàng có lớp cơ sở Account lưu balance và lớp dẫn xuất SavingsAccount bổ sung interestRate. Khi báo cáo cuối kỳ, tài khoản tiết kiệm cần tính balance sau khi cộng lãi theo phần trăm. Homework Easy nhằm củng cố inheritance theo quan hệ is-a: SavingsAccount vẫn là một Account nên tái sử dụng balance từ base, chỉ bổ sung dữ liệu/rule riêng của tài khoản tiết kiệm.

Không cần virtual ở B28. Hãy tập trung constructor của derived gọi constructor base và method của derived sử dụng phần state kế thừa đúng cách. Kết quả format hai chữ số để phân biệt rõ phép tính số thực.

Yêu cầu

  1. Account giữ balance và getBalance().
  2. SavingsAccount kế thừa Account, thêm rate.
  3. Method projected() = balance*(1+rate/100).
  4. In projected với 2 chữ số.

Input

Một dòng balance rate.

Output

Một số 2 decimals.

Ràng buộc

0≤balance≤1e12, 0≤rate≤100.

Ví dụ 1

Input

1000 10

Output

1100.00

Giải thích

Balance1000 và rate10% nên lãi100, số dư sau kỳ1100. Derived method đọc balance kế thừa từ Account rồi áp rule riêng. Format fixed hai chữ số cho output 1100.00.

Ví dụ này cũng kiểm tra đúng luồng kế thừa: phần state của lớp cha được khởi tạo và tái sử dụng, phần riêng của lớp con chỉ bổ sung behavior/dữ liệu cần thiết. Kết quả cuối vì thế phải phản ánh đồng thời dữ liệu inherited và dữ liệu derived, không có field nào bị khai báo lại hoặc bỏ quên.

Ví dụ 2

Input

0 50

Output

0.00

Giải thích

Balance0 dù rate50% vẫn cho lãi0 và số dư0. Method không tạo giá trị từ rate nếu base balance bằng0, nên output 0.00.

Ví dụ này cũng kiểm tra đúng luồng kế thừa: phần state của lớp cha được khởi tạo và tái sử dụng, phần riêng của lớp con chỉ bổ sung behavior/dữ liệu cần thiết. Kết quả cuối vì thế phải phản ánh đồng thời dữ liệu inherited và dữ liệu derived, không có field nào bị khai báo lại hoặc bỏ quên.

Thông tin học tập

  • Module: M08
  • Buổi: B28
  • Loại bài: HOMEWORK
  • Độ khó: Easy
  • Concepts: inheritance, method reuse, derived behavior
  • Giới hạn kiến thức: B01-B28
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo