銀行口座

あなたは一流銀行のソフトウェアエンジニアだと想像してください。銀行はバックエンドシステムの改善に取り組んでおり、あなたの役割はさまざまな種類の銀行口座を表現する新しいクラスを設計・実装することです。
銀行は当座預金口座と普通預金口座の2種類の口座を提供しています。どちらの口座も顧客が預金と引き出しを行うことができますが、それぞれ固有の特徴があります。当座預金口座には当座貸越限度額が設定されており、顧客は現在の残高を超えてその限度額まで引き出すことが可能です。普通預金口座は年利に基づいて利息を得ます。
あなたのタスクは、BankAccountCheckingAccountSavingsAccount の3つのPythonクラスを作成することです。これらすべては初期の balance(残高)で初期化されます。
  1. BankAccount クラスは2つのメソッド、depositwithdraw を持つべきです。deposit メソッドは預金額だけ残高を増やします。withdraw メソッドは引き出し額だけ残高を減らします。どちらのメソッドも、操作後の最終残高を Balance: <X> の形式で出力します。もし十分な資金がない場合、プログラムは Insufficient funds. と出力します。
  1. CheckingAccount クラスは BankAccount を継承し、追加の属性として overdraft_limit(当座貸越限度額)を加えます。CheckingAccountwithdraw メソッドはオーバーライドされ、顧客が現在の残高を超えて当座貸越限度額まで引き出すことを可能にします。当座貸越限度額を超えた場合、プログラムは Withdrawal exceeds overdraft limit. と出力します。
  1. SavingsAccount クラスも BankAccount を継承します。追加の初期化属性として annual_percentage_yield(年利)を加え、annual_percentage_yield に基づいて預金の利息を計算する calculate_returns メソッドを追加します。calculate_returns メソッドは利息を Returns: X の形式で出力します。
どの口座の残高も決して負の値になってはいけません(CheckingAccount は当座貸越限度額まで負になることができます)。
入力
出力
check = CheckingAccount(500, 100); check.deposit(200); check.withdraw(800); saving = SavingsAccount(500, 0.05); saving.calculate_returns()
Balance: 700 Balance: -100 Returns: 25
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue