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