Բանկային հաշիվներ

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