Բանկային հաշիվներ
Ենթադրենք՝ դուք առաջնակարգ բանկում ծրագրային ապահովման մաստագետ եք: Բանկը նպատակ է դրել՝ բարելավելու իր backend (սերվերներ, տվյալների շտեմարաններ, ծրագրի արտաքին տեսքի հետ կապ չունեցող) համակարգը, և ձեր խնդիրն է՝ նախագծել և ստեղծել նոր class-ներ՝ տարբեր տեսակի բանկային հաշիվներ ներկայացնելու համար:
Բանկն իր հաճախորդներին առաջարկում է երկու տեսակի հաշիվներ՝ ընթացիկ և խնայողական: Երկու տեսակի հաշիվներն էլ հաճախորդներին հնարավորություն են տալիս գումար մուտքագրել և գումար դուրս բերել: Բայց հաշիվներից յուրաքանչյուրն ունի իր առանձնահատկությունները: Չեկային հաշիվներն ունեն օվերդրաֆտի սահմանաչափ, որը թույլ է տալիս հաճախորդներին գումար հանել իրենց ընթացիկ մնացորդից՝ չհատելով օվերդրաֆտի սահմանաչափը: Խնայողական հաշիվները տոկոսներ են ստանում՝ ըստ տարեկան տոկոսադրույքի:
Ձեզ խնդրում են ստեղծել Python-ի երեք class՝ BankAccount, CheckingAccount և SavingsAccount: Դրանցից բոլորը պետք է ստեղծվելուց ունենան սկզբնական balance արժեք, որը կլինի այդ հաշվին եղած սկզբնական գումարը։
BankAccountclass-ը պետք է ունենա երկու մեթոդ՝depositևwithdraw:depositeմեթոդը պետք է ավելացնի մնացորդը դեպոզիտ արվող գումարի չափով:withdrawմեթոդը պետք է նվազեցնի մնացորդը՝ դուրսբերման ենթակա գումարի չափով: Գործողությունը կատարելուց հետո երկուսն էլ պետք է տպեն վերջնական հաշվեկշիռը՝ հետևյալ ձևաչափով՝Balance: <X>։ Եթե հաշվի վրա բավարար միջոցներ չկան, ծրագիրը պետք է տպի՝Insufficient funds.(անբավարար միջոցներ)։CheckingAccountclass-ը պետք է ժառանգիBankAccount-ից և ավելացնի լրացուցիչ ատրիբուտ՝overdraft_limit:CheckingAccount-ումwithdrawմեթոդը պետք է փոփոխվի, որպեսզի հաճախորդները կարողանան գումար հանել իրենց ընթացիկ մնացորդից՝ չհատելով օվերդրաֆտի սահմանաչափը: Եթե դուրս բերվող գումարը գերազանցում է օվերդրաֆտի սահմանաչափը, ծրագիրը պետք է տպի՝Withdrawal exceeds overdraft limit.։SavingsAccountclass-ը նույնպես պետք է ժառանգիBankAccount-ից: Այն պետք է ավելացնի հավելյալ ատրիբուտ՝annual_percentage_yieldև մեթոդ՝calculate_returns, որը հաշվարկում է խնայված գումարի եկամտաբերությունը՝ հիմնվելովannual_percentage_yield-ի վրա:calculate_returnsմեթոդը պետք է ելքում տպի շահույթը՝ հետևյալ ձևաչափով՝Returns: X։
Հաշիվների մնացորդը երբեք չպետք է բացասական լինի (բացառությամբ CheckingAccount-ի, որտեղ մնացորդը կարող է լինել բացասական՝ չգերազանցելով օվերդրաֆտի սահմանաչափը):
Մուտք | Ելք |
|---|---|
| Balance: 700 |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB